Académique Documents
Professionnel Documents
Culture Documents
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 1 / 56
1 Introduction à SQL
3 ORDRES LMD
Insert, update, delete
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 2 / 56
Introduction à SQL
Le langage SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 3 / 56
Définition de shémas d’une BD
Création de Tables
Syntaxe:
CREATE TABLE nom table
( colonne1 type1 [CONTRAINTE DE COLONNE1],
colonne2 type2 [CONTRAINTE DE COLONNE3],
colonne3 type3 [CONTRAINTE DE COLONNE3]
);
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 4 / 56
Définition de shémas d’une BD
Contraintes de colonnes
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 5 / 56
Définition de shémas d’une BD
Création de Tables-Exemples
• Pilote(numpil, nompil,adr,sal)
• Avion((numav,nomav,cap,loc)
• Vol(numvol,#numpil,#numav,villedep,datedep,datearr,villearr,hdep,harr)
CREATE TABLE Pilote (
numpil INT constraint pk numpil primary key,
nompil CHAR(20) NOT NULL,
adr CHAR(50) NOT NULL,
sal DEC(8,3) DEFAULT 0 );
CREATE TABLE Avion (
numav INT constraint pk numav primary key,
nomav CHAR(20) NOT NULL,
cap INT NOT NULL,
loc CHAR(20) );
CREATE TABLE Vol (
numvol INT constraint pk numvol primary key,
numpil INT constraint fk numpil references Pilote(numpil),
numav INT constraint fk numav references Avion(numav),
villedep CHAR(30) NOT NULL,
villearr CHAR(30) NOT NULL,
hdep DEC(2,2) CHECK (hdep BETWEEN 1 AND 24),
harr DEC(2,2) CHECK (harr BETWEEN 1 AND 24));
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 6 / 56
Définition de shémas d’une BD
• Syntaxe:
DROP TABLE nom table ;
• Exemple:
• DROP TABLE Avion;
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 7 / 56
Définition de shémas d’une BD
Syntaxe:
ALTER TABLE Nom Table Altération;
• Différents types d’altérations sont possibles :
• Ajout d’une colonne (ADD COLUMN).
• Modification de la définition d’une colonne (ALTER COLUMN).
• Suppression d’une colonne (DROP COLUMN).
• Ajout d’une contrainte (ADD CONSTRAINT).
• Suppression d’une contrainte (DROP CONSTRAINT).
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 8 / 56
Définition de shémas d’une BD
Exemples:
ALTER TABLE Employe ADD Adresse VARCHAR(50);
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 9 / 56
ORDRES LMD Insert, update, delete
INSERT
• Dans le cas où la liste de colonnes n’est pas spécifiée, tous les
attributs de la relation doivent être fournis dans l’ordre de déclaration.
Si seulement certaines colonnes sont spécifiées, les autres sont
insérées avec la valeur nulle.
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 10 / 56
ORDRES LMD Insert, update, delete
INSERT
• Exemple:
INSERT INTO PILOTE (NUMPIL, NOMPIL, ADR, SAL)
VALUES (12345, ”Martin”, ”Pascal”, 5000);
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 11 / 56
ORDRES LMD Insert, update, delete
UPDATE
DELETE
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 13 / 56
ORDRES LMD Insert, update, delete
DELETE
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 14 / 56
Interrogation de données sous SQL
Requêtes simples
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 15 / 56
Interrogation de données sous SQL
• Exemple:
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 17 / 56
Interrogation de données sous SQL
• Exemple:
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 18 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 19 / 56
Interrogation de données sous SQL
SELECT nom
FROM employés
WHERE salaire>= 1000 AND ville LIKE ”A%”;
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 20 / 56
Interrogation de données sous SQL
SELECT nom
FROM employés
WHERE ville IN (”TOULOUSE”, ”MARSEILLE”);
SELECT nom
FROM employés
WHERE ville = ’TOULOUSE’ OR ville=’MARSEILLE’;
NOT IN sera équivalent à
WHERE Ville !=’TOULOUSE’ AND ville !=’MARSEILLE’;
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 21 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 22 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 23 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 24 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 25 / 56
Interrogation de données sous SQL
Alias de Table:
• Utilisation de préfixes désignant les tables.
• Permet de simplifier les interrogations.
• Améliore les performances.
• Evite les ambiguı̈tés sur les noms de colonnes.
• Exemple:
SELECT e.nom, s.libel
FROM employés e, services s
WHERE e.numService = s.numService;
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 26 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 28 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 29 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 31 / 56
Interrogation de données sous SQL
L’opérateur EXISTS
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 33 / 56
Interrogation de données sous SQL
L’opérateur EXISTS
• Exemple:
Personne (idpers, nompers, adr, poste, salaire, date emp,#idserv)
Service (idpers, nompers, ville)
• Donner les noms des services ayant au moins un employé embauché
après le 01/01/05.
• SELECT nomserv
FROM service S
WHERE EXISTS (SELECT∗
FROM personne P
WHERE date emb>”01/01/05”
AND S. idserv=P.idserv);
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 34 / 56
Interrogation de données sous SQL
L’opérateur EXISTS
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 35 / 56
Interrogation de données sous SQL
L’opérateur EXISTS
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 36 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 38 / 56
Interrogation de données sous SQL
L’opérateur UNION
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 39 / 56
Interrogation de données sous SQL
L’opérateur INTERSECT
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 40 / 56
Interrogation de données sous SQL
L’opérateur MINUS
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 41 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 42 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 43 / 56
Interrogation de données sous SQL
Agrégats
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 44 / 56
Interrogation de données sous SQL
• Syntaxe:
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 45 / 56
Interrogation de données sous SQL
Création de groupes
• Exemple:
Pour obtenir le coût total de chaque client en regroupant les
commandes des mêmes clients, il faut utiliser la requête suivante:
SELECT client, SUM(tarif)
FROM achat GROUP BY client;
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 46 / 56
Interrogation de données sous SQL
• Syntaxe:
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 47 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 48 / 56
Interrogation de données sous SQL
• Lister les salaires totaux par service. Et garder ceux dont le salaire
moyen dépasse 900:
SELECT nomserv,SUM(salaire)
FROM personne p, services s
WHERE p.idserv=s.idserv
GROUP BY nomserv
HAVING AVG(salaire)>900;
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 49 / 56
Interrogation de données sous SQL
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 50 / 56
Interrogation de données sous SQL
Synthèse
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 51 / 56
Interrogation de données sous SQL
Division en SQL
• Quels sont les articles qui sont disponibles dans toutes les couleurs?
• Extraire les couleurs manquants pour les articles.
• Ne pas sélectionner les articles ayant des couleurs manquant.
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 52 / 56
Interrogation de données sous SQL
Division en SQL
1) Extraire les couleurs manquants pour l’article T-shirt par exemple?
(Select *
FROM couleur cl
WHERE NOT EXISTS
( SELECT *
FROM article ar
WHERE ar.designation=”T-shirt”
AND cl.couleur=ar.couleur));
⇒ Si la requête ne fournit pas d’enregistrement. Alors, la condition est vraie.
Dans ce cas, la couleur sur la quelle on pointe va être sélectionnée.
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 53 / 56
Interrogation de données sous SQL
Division en SQL
2) Ne pas sélectionner les articles ayant des couleurs manquant.
Division en SQL
Exercice
Safa BETTOUMI ZOGHLAMI CM3 : Structured Query Language SQL September 15, 2023 56 / 56