Vous êtes sur la page 1sur 33

SQL: Manipulation et contraintes d’intégrité

Mme Ba Aminata Ngom

Université Cheikh Anta diop


(U. C.A.D)
Faculté des Sciences et Techniques
(F. S. T.)
Département de Mathématiques et Informatique
(D. M. I.)
Laboratoire d’Algèbre de Cryptologie de Géométrie Algèbrique et Applications
(L. A. C. G. A. A.)

March 29, 2021

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
1 / 33
Math
Table des matières
1 Introduction
2 Présentation du langage SQL
Définition
Objets Manipulés
Formation d’une Requête SQL
Les Vues
Modification des relations
3 Gestion de tables et des vues
Gestion des tables
Les vues
4 Gestion des données
Insertion:INSERT INTO
Suppresssion:DELETE FROM
MODIFICATION (UPDATE)
5 Conclusion
Mme Ba Aminata Ngom (Université CheikhSQL:
Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
2 / 33
Math
Introduction
Le langage SQL est l’un des éléments qui ont contribué au
développement et au succès de l’approche relationnelle dans le
monde des bases de données.

En effet, la normalisation internationale du langage garantit la


pérennité et la stabilité des données ainsi que des développements qui
leur sont associés, indépendamment du SGBD et du langage utilisés.

Nous allons aborder les concepts et la syntaxe du langage SQL, et


présente les trois grandes familles d’opérations que le langage permet
d’exprimer à savoir L’interrogation et la recherche dans les tables.
La gestion de tables et de vues munies des contraintes associées.
Ces instructions concernent la table et sa structure et constituent la
partie LDD (Langage de Description des Données) de SQL. La
manipulation de données. Ces instructions concernent les données
contenues dans la table et constituent la partie LMD (Langage de
Manipulation des Données) de SQL.
Mme Ba Aminata Ngom (Université CheikhSQL:
Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
3 / 33
Math
SQL

1 SQL: Structured Query Language


2 langage complet de gestion de bases de données relationnelles
3 langage de manipulation des données: SELECT, INSERT,
UPDATE, DELETE
4 langage de définition des structures de données: CREATE,
ALTER, DROP
5 langage de contrôle de l’accès aux données: GRANT, REVOKE

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
4 / 33
Math
SQL

Objets Manipulés
Le SQL utilise des identificateurs pour désigner les objets qu’il
manipule. Ces objets peuvent être:
1 des tables,
2 des vues,
3 des colonnes,
4 des indexes,
5 des constantes, des variables, etc...

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
5 / 33
Math
SQL

Les différentes clauses SELECT


Il en existe au total 6, les quatre dernières étant facultatives:
1 SELECT
2 FROM
3 WHERE
4 GROUP BY
5 HAVING
6 ORDER BY
DISTINCT permet d’éliminer les doublons, AS permet de nommer une
colonne résultante.

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
6 / 33
Math
SQL
Liste des opérateurs possibles en SQL
1 L’égalité : WHERE exp1 = exp2
2 La différence : WHERE exp1 <> exp2
3 L’infériorité : WHERE exp1 < exp2
4 La supériorité : WHERE exp1 > exp2
5 Inférieur ou égal : WHERE exp1 <= exp2
6 Supérieur ou égal : WHERE exp1 >= exp2
7 Entre deux limites (bornes incluses) : WHERE exp1 BETWEEN
exp2 AND exp3
8 Commençant par : WHERE exp1 LIKE exp2
9 Ne commençant pas par : WHERE exp1 NOT LIKE exp2
10 Compris dans : WHERE exp1 IN (exp2, exp3, ...)
11 Non compris dans : WHERE exp1 NOT IN (exp2, exp3, ...)
12 Valeur nulle : WHERE exp IS NULL
Mme Ba Aminata Ngom (Université CheikhSQL:
Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
7 / 33
Math
SQL

Structure de base
Une requête SQL typique est de la forme:

SELECT A1........An
FROM r1..........rm
WHERE P

Les Ai sont des attributs, les rj sont des noms de relations et P est un
prédicat.

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
8 / 33
Math
SQL

SELECT
La clause SELECT correspond à la projection de l’algèbre.
Ex:

SELECT Titre from film

SELECT Prix HT * 1.206 AS Prix TTC FROM produit

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.March
S. T.)Département
29, 2021 de
9 / 33
Math
SQL

WHERE
La clause WHERE Correspond au prédicat de sélection dans l’algèbre.
Ex:

SELECT DISTINCT Titre


from film
WHERE Réalisateur = "Bergman"
AND Acteur = "Stewart"

SELECT Num
FROM compte
WHERE Solde BETWEEN 0 AND 10000

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 10
de/ 33
Math
SQL

FROM
Elle correspond au produit cartésien de l’algèbre.
Ex:

SELECT Titre, Réalisateur


from film, programme
WHERE Film.titre = programme.titre
AND programme.NomCiné = "UCG"

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 11
de/ 33
Math
SQL

Les variables n-uplets


Elles sont définies dans la clause FROM.
Ex:

SELECT Titre, Réalisateur


from film AS f, programme AS p
WHERE f.titre = p.titre
AND p.NomCiné = "UCG"

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 12
de/ 33
Math
SQL

ORDER BY
Cette clause permet de trier les résultats de requête.
Ex:

SELECT *
FROM programme
WHERE NomCiné="UGC"
ORDER BY Horaire ASC, Titre DESC

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 13
de/ 33
Math
SQL

Les fonctions d’aggrégats


Ce sont des fonctions qui agissent sur des ensembles de valeurs. On
distingue :

AVG : la valeur moyenne de l’ensemble


MIN : la valeur minimale
MAX : la valeur maximale
SUM : le total des valeurs de l’ensemble
COUNT : le nombre de valeur dans l’ensemble
EX:

SELECT COUNT( DISTINCT Titre) FROM Programme

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 14
de/ 33
Math
SQL

GROUP BY
Les attributs apparaissant dans la clause SELECT en dehors des
aggrégats doivent être associés à la clause GROUP BY.
EX:

SELECT NomCiné, COUNT(DISTINCT Titre)


FROM Programme
GROUP BY NomCiné

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 15
de/ 33
Math
SQL

Aggrégats et la clause HAVING


Le prédicat associé à la clause HAVING est testé après la formation
des groupes définis dans la clause GROUP BY.

SELECT NomCiné,
COUNT(DISTINCT Titre) FROM Programme
GROUP BY NomCiné
HAVING COUNT(DISTINCT Titre) > 3

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 16
de/ 33
Math
SQL

Requêtes imbriquées
SQL fournit un mécanisme qui permet d’imbriquer les requêtes.
Ex:
SELECT Titre
FROM Programme
WHERE NomCiné="UGC"
And Titre NOT IN (SELECT Titre FROM Programme WHERE
NomCiné="Trianon")

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 17
de/ 33
Math
SQL

Test d’absence de doublons


La clause UNIQUE permet de tester si une sous requête contient des
doublons.
Ex:

SELECT p.Titre
FROM programme p
WHERE UNIQUE (SELECT p1.Titre FROM programme p1
WHERE p.Titre=p1.Titre)

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 18
de/ 33
Math
SQL

Les Vues
Permettent de définir des relations virtuelles dans le but de cacher
certaines informations à des utilisateurs, de faciliter l’expression de
certaines requêtes, d’améliorer la présentation de certaines données.
Une vue est définie par une expression de la forme :

CREATE VIEW V AS requête


Ex:

CREATE VIEW EmpGen AS


(SELECT NumE, Dept, Adresse FROM Emp)
SELECT * FROM EmpGen WHERE Dept = 5

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 19
de/ 33
Math
SQL

Modification des relations: la suppression


Ex: Supprimer du programme tous les films programmés à l’UGC où
un des acteurs est DiCaprio.

DELETE FROM programme


WHERE NomCiné = "UGC" AND EXISTS ( SELECT Titre FROM
film WHERE programme.Titre = film.Titre AND film.Acteur
="DiCaprio")

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 20
de/ 33
Math
SQL

Modification des relations: l’insertion


Ex: Insérer un n-uplet dans la relation "compte":

INSERT INTO compte (Num, Solde, Nom)


VALUES (511, 1000, "Dupont")

Ex: Insérer un n-uplet avec un solde inconnu.

INSERT INTO compte (Num, Solde, Nom)


VALUES (511, Null, "Dupont")

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 21
de/ 33
Math
SQL

Modification des relations: la mise à jour


Ex: Rajouter 1 pour cent à tous les comptes dont le solde est inférieur
à 500.

UPDATE compte
SET Solde = Solde * 1.01
WHERE Solde < 500

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 22
de/ 33
Math
Gestion de tables et de vues
Présentation générale
Pour pouvoir gérer une table, il faut au préalable disposer des droits
sur la base de données qui la contient.La création d’une table est une
opération importante qu’il faut entreprendre avec soin. C’est lors de
cette étape que l’on définit le type de données, la clé, les index
éventuels et qu’il convient d’imposer des contraintes de validation
garantissant la bonne qualité des informations entrées dans la table.

Le nom de la table ou d’une colonne ne doit pas dépasser 128


caractères. Les tables peuvent être créées de manière temporaire :
elles seront donc effacées à la fin de la session de l’utilisateur à l’aide
du mot clé TEMPORARY.
Les tables peuvent être issues directement du résultat d’une requête
en utilisant le mot clé AS : c’est particulièrement commode pour
pouvoir disposer de résultats intermédiaires en fin de vérification, lors
d’une série de manipulations sur une table.
Mme Ba Aminata Ngom (Université CheikhSQL:
Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 23
de/ 33
Math
Gestion de tables

Exemple

Figure: Create Table

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 24
de/ 33
Math
Gestion de tables
Type de données

Figure: Type de données SQL


Mme Ba Aminata Ngom (Université CheikhSQL:
Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 25
de/ 33
Math
Gestion de tables
Suppréssion, Modification
La commande DROP TABLE permet de supprimer une table. Si la
table est référencée dans une autre table (par exemple, contrainte
d’intégrité référentielle), le SGBD refuse en général de la supprimer : il
utilise l’option RESTRICT par défaut. Si l’on désire tout de même la
supprimer ainsi que tous les objets qui lui sont liés, il faut alors utiliser
l’option CASCADE.

La commande ALTER TABLE permet de modifier la structure de la


table, c’est-à-dire d’ajouter, de supprimer ou de modifier des colonnes.

Exemple: DROP TABLE voiture;


DROP TABLE voiture cascade;
ALTER TABLE voiture ADD COLUMN enplus INT;
ALTER TABLE voiture DROP COLUMN Couleur;
ALTER TABLE voiture ADD COLUMN Teinte CHAR(60);
Mme Ba Aminata Ngom (Université CheikhSQL:
Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 26
de/ 33
Math
Les Vues

Une vue est le résultat d’une requête que l’on peut manipuler de la
même façon qu’une table. On peut considérer une vue comme une
table dynamique dont le contenu est recalculé à chaque utilisation. On
utilise les vues pour des raisons de commodité.Il n’est pas nécessaire
que certains utilisateurs voient le modèle complet qui est parfois
complexe ou encore de sécurité/confidentialité en restreignant l’accès
à certaines données. Dans cette optique, les vues viennent en
complément de la gestion des droits d’accès.

exemple:
CREATE VIEW personnebis (NumAch, Nom, Age)
AS
SELECT NumAch, Nom, Age
FROM personne ;

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 27
de/ 33
Math
Gestion des données

Les commandes SQL qui sont présentées sur cette partie concernent
non plus la gestion de la structure des tables, mais celle des
contenus. On dispose classiquement de trois opérations : l’insertion,
la suppression et la mise à jour, pour gérer les données d’une table.

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 28
de/ 33
Math
Gestion des données

INSERTION: INSERT INTO


L’insertion d’enregistrements dans une table peut se réaliser de
plusieurs manières :
1 enregistrement par enregistrement (INSERT INTO)
2 en insérant la réponse à une requête SQL (INSERT INTO)
La commande pour insérer des données est de la forme suivante :
INSERT INTO <nom de la table> [ liste des colonnes ] VALUES <liste
des valeurs>

exemple: INSERT INTO voiture


(NumVoit, Marque, Couleur)
VALUES (10,’Triumph’,’Bleue’);

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 29
de/ 33
Math
Gestion des données

SUPPRESSION (DELETE FROM)


L’opération de suppression permet de supprimer un ensemble
d’enregistrements (lignes) que l’on identifiera avec une expression
identique aux conditions de sélection vues précédemment.

Attention, si l’on ne spécifie aucune condition, tous les


enregistrements sont supprimés.

Exemple:
DELETE FROM voiture
WHERE Couleur=’Rouge’;

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 30
de/ 33
Math
Gestion des données

MODIFICATION (UPDATE)
Pour cette opération, il faut préciser:
1 la (les) colonne(s) concernée(s) ;
2 la (les) nouvelle(s) valeur(s) ;
3 les enregistrements pour lesquels on modifiera ces valeurs.
De même que précédemment, on identifiera les enregistrements
concernés par une expression de sélection. La valeur modifiée peut
être statique ou calculée à partir des valeurs d’autres colonnes.

Exemple: Modification du nom d’une ville dans la table ’personne’.


UPDATE personne
SET Ville=’Paris-Centre’
WHERE Ville=’Paris’;

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 31
de/ 33
Math
Conclusion
Le langage SQL permet:
1 La gestion de tables et de vues munies des contraintes
associées (LDD, Langage de Description des Données). Ces
instructions concernent la table et sa structure.
création CREATE TABLE/VIEW <nom de la table>
destruction DROP TABLE/VIEW <nom de la table>
modification ALTER TABLE/VIEW <nom de la table>
2 La manipulation de données (LMD, Langage de Manipulation
des Données). Ces instructions concernent les données
contenues dans les tables.
insertion INSERT INTO <nom de la table> (<liste de colonnes>
<liste de valeurs>)
modification UPDATE <nom de la table> SET <colonne=valeur>
WHERE <critère>
supression DELETE FROM <nom de la table> WHERE <critère>
3 L’interrogation et la recherche dans les tables.
Mme Ba Aminata Ngom (Université CheikhSQL:
Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 32
de/ 33
Math
Conclusion

Figure: Synthèse des commandes SQL

Mme Ba Aminata Ngom (Université CheikhSQL:


Anta Manipulation
diop(U. C.A.D)Faculté
et contraintes
des Sciences
d’intégrité
et Techniques(F.
March
S. T.)Département
29, 2021 33
de/ 33
Math

Vous aimerez peut-être aussi