0% ont trouvé ce document utile (0 vote)
46 vues99 pages

Introduction au langage SQL et ses commandes

Le document décrit les principales commandes du langage SQL pour la définition et la manipulation de données dans une base de données relationnelle, notamment la création, modification et suppression de bases de données et de tables.

Transféré par

abdessamed630
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
46 vues99 pages

Introduction au langage SQL et ses commandes

Le document décrit les principales commandes du langage SQL pour la définition et la manipulation de données dans une base de données relationnelle, notamment la création, modification et suppression de bases de données et de tables.

Transféré par

abdessamed630
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CHAPITRE 3

LE LANGAGE SQL

Dr. A. F. Tandjaoui
ESGEE Oran
Cycle préparatoire
Informatique 4
Structured Query Language


Sert à gérer les bases de données relationnelles


Basé sur l’algèbre relationnelle
Terminologie

Requête : ordre donné à la BDD et ayant comme
résultat un changement d'état de la BDD ou un
affichage de résultats.

Clause : partie d'une requête.

Contrainte : règle qui permet de limiter le type de
données à insérer dans une table.
Langage de définition de donnée Langage de manipulation de donnée
(LDD) (LMD)

Créer CREATE Insérer INSERT

Modifier ALTER Mettre à jour UPDATE

Supprimer DROP Supprimer DELETE

Interroger SELECT

Bases de ou Tables Données


donnés
Symboles

BLABLA : "blabla" est un mot clé du langage SQL ;

[blabla] : "blabla" est optionnel. Les crochets ([])
ne devront pas apparaître dans la requête.

<blabla> : "blabla" est à remplacer par un terme
indiqué dans la requête. Les chevrons (<>) ne
devront pas apparaitre dans la requête.
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Créer une base de données

Syntaxe :
CREATE DATABASE <nom_bdd>; Nom de la base de
données à créer

Exemple :
CREATE DATABASE bac; ●
SQL sensible à la casse ?

Oui : pour les noms de BDDs, tables, attributs

Non : pour ses mots clés

Utiliser une BDD : USE <nom_bdd> ;

Afficher les BDDs disponibles : SHOW DATABASES; ;
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Supprimer une base de données

Syntaxe : Nom de la base de


DROP DATABASE <nom_bdd>; données à supprimer

Exemple :
DROP DATABASE bac;
Types de données
Créer CREATE ●
INT : entiers

LDD

FLOAT : flottants
Modifier ALTER ●
CHAR(<n>) : chaînes de
caractères de taille fixe
Supprimer DROP
prédéterminée n (n<=255)

VARCHAR(<n>) : chaînes
Créer une table de caractères de taille
Nom de la variable avec un maximum
Syntaxe :
CREATE TABLE <nom_table>(
table à créer de n caractères
<att1> <type_att_1>, (n<=65535)
<att2> <type_att_2>, ●
DATE : dates
... ●
TIME : heure
<attn> <type_attn>,
[PRIMARY KEY(<cle_primaire>),]
[FOREIGN KEY(<cle_etrangere_1>) REFERENCES <nom_autre_table_1>(<att_autre_table_1>),]
[FOREIGN KEY(<cle_etrangere_2>) REFERENCES <nom_autre_table_2>(<att_autre_table_2>),]
...
[FOREIGN KEY(<cle_etrangere_m>) REFERENCES <nom_autre_table_m>(<att_autre_table_m>)]
);
Types de données
Créer CREATE ●
INT : entiers

LDD

FLOAT : flottants
Modifier ALTER ●
CHAR(<n>) : chaînes de
caractères de taille fixe
Supprimer DROP
prédéterminée n (n<=255)

VARCHAR(<n>) : chaînes
Créer une table de caractères de taille
Noms des variables avec un
Syntaxe :
CREATE TABLE <nom_table>(
attributs de la maximum de n caractères
<att1> <type_att_1>, table (n<=65535)
<att2> <type_att_2>, ●
DATE : dates
... ●
TIME : heure
<attn> <type_attn>,
[ PRIMARY KEY(<cle_primaire>) ,]
[ FOREIGN KEY(<cle_etrangere_1>) REFERENCES <nom_autre_table_1>(<att_autre_table_1>),]
[ FOREIGN KEY(<cle_etrangere_2>) REFERENCES <nom_autre_table_2>(<att_autre_table_2>),]
...
[ FOREIGN KEY(<cle_etrangere_m>) REFERENCES <nom_autre_table_m>(<att_autre_table_m>)]
);
Types de données
Créer CREATE ●
INT : entiers

LDD

FLOAT : flottants
Modifier ALTER ●
CHAR(<n>) : chaînes de
caractères de taille fixe
Supprimer DROP
prédéterminée n (n<=255)

VARCHAR(<n>) : chaînes
Créer une table de caractères de taille
Types des variables avec un
Syntaxe :
CREATE TABLE <nom_table>(
attributs de la maximum de n caractères
<att1> <type_att_1>, table (n<=65535)
<att2> <type_att_2>, ●
DATE : dates
... ●
TIME : heure
<attn> <type_att_n>,
[ PRIMARY KEY(<cle_primaire>),]
[ FOREIGN KEY(<cle_etrangere_1>) REFERENCES <nom_autre_table_1>(<att_autre_table_1>),]
[ FOREIGN KEY(<cle_etrangere_2>) REFERENCES <nom_autre_table_2>(<att_autre_table_2>),]
...
[ FOREIGN KEY(<cle_etrangere_m>) REFERENCES <nom_autre_table_m>(<att_autre_table_m>)]
);
Si la clé primaire est
Créer CREATE composée de plusieurs
attributs, il seront séparés

LDD
Modifier ALTER par des virgules

Supprimer DROP

Créer une table


Clé primaire
Syntaxe :
CREATE TABLE <nom_table>(
de la table
<att1> <type_att_1>,
<att2> <type_att_2>,
...
<attn> <type_att_n>,
[ PRIMARY KEY(<cle_primaire>),]
[ FOREIGN KEY(<cle_etrangere_1>) REFERENCES <nom_autre_table_1>(<att_autre_table_1>),]
[ FOREIGN KEY(<cle_etrangere_2>) REFERENCES <nom_autre_table_2>(<att_autre_table_2>),]
...
[ FOREIGN KEY(<cle_etrangere_m>) REFERENCES <nom_autre_table_m>(<att_autre_table_m>)]
);
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Créer une table


Clés étrangères
Syntaxe :
CREATE TABLE <nom_table>(
de la table
<att1> <type_att_1>,
<att2> <type_att_2>,
...
<attn> <type_att_n>,
[ PRIMARY KEY(<cle_primaire>),]
[ FOREIGN KEY(<cle_etrangere_1>) REFERENCES <nom_autre_table_1>(<att_autre_table_1>),]
[ FOREIGN KEY(<cle_etrangere_2>) REFERENCES <nom_autre_table_2>(<att_autre_table_2>),]
...
[ FOREIGN KEY(<cle_etrangere_m>) REFERENCES <nom_autre_table_m>(<att_autre_table_m>)]
);
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Créer une table


Tables d’origine des
Syntaxe :
CREATE TABLE <nom_table>(
clés étrangères
<att1> <type_att_1>,
<att2> <type_att_2>,
...
<attn> <type_att_n>,
[ PRIMARY KEY(<cle_primaire>),]
[ FOREIGN KEY(<cle_etrangere_1>) REFERENCES <nom_autre_table_1>(<att_autre_table_1>),]
[ FOREIGN KEY(<cle_etrangere_2>) REFERENCES <nom_autre_table_2>(<att_autre_table_2>),]
...
[ FOREIGN KEY(<cle_etrangere_m>) REFERENCES <nom_autre_table_m>(<att_autre_table_m>)]
);

Affichage du schéma d’une table créée :
Créer CREATE DESCRIBE <nom_table>;

Affichage de toutes les tables de la BDD :

LDD
SHOW TABLES ;
Modifier ALTER ●
Obtention des noms des contraintes d’une table :
SHOW CREATE TABLE <nom_table>;
Supprimer DROP

Créer une table Noms des attributs


Syntaxe : dans les tables
CREATE TABLE <nom_table>( d’origine des clés
<att1> <type_att_1>, étrangères
<att2> <type_att_2>,
...
<attn> <type_att_n>,
[ PRIMARY KEY(<cle_primaire>),]
[ FOREIGN KEY(<cle_etrangere_1>) REFERENCES <nom_autre_table_1>(<att_autre_table_1>),]
[ FOREIGN KEY(<cle_etrangere_2>) REFERENCES <nom_autre_table_2>(<att_autre_table_2>),]
...
[ FOREIGN KEY(<cle_etrangere_m>) REFERENCES <nom_autre_table_m>(<att_autre_table_m>)]
);
Exemple : création des tables de la BDD bac :
Créer CREATE ●
Etablissement(numEta, nomEta, ville)

LDD

Bachelier(numBach, nom, prenom, ville, moyenne)
Modifier ALTER ●
Filière(numFilière, intitulé)

Postuler(numEta*, numBach*, numFiliere*)

Supprimer DROP

CREATE TABLE Etablissement ( CREATE TABLE Filiere (


numEta INT , numFiliere INT ,
nomEta VARCHAR(20) , intitule VARCHAR(20) ,
ville VARCHAR(10) , PRIMARY KEY(numFiliere)
PRIMARY KEY(numEta) );
); CREATE TABLE Postuler (
CREATE TABLE Bachelier ( numBach INT ,
numBach INT , numEta INT ,
nom VARCHAR(20) , numFiliere INT ,
prenom VARCHAR(20) , PRIMARY KEY(numEta, numBach, numFiliere),
ville VARCHAR(10) , FOREIGN KEY(numBach) REFERENCES Bachelier (numBach),
moyenne FLOAT , FOREIGN KEY(numEta) REFERENCES Etablissement (numEta),
PRIMARY KEY(numBach) FOREIGN KEY(numFiliere) REFERENCES Filiere (numFiliere)
); );
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Modifier le nom d’une table Ancien nom de la


table
Syntaxe :
ALTER TABLE <ancien_nom> Nouveau nom de la
RENAME TO <nouveau_nom>; table

Exemple :
ALTER TABLE bachelier
RENAME TO etudiant;

Le type de l’attribut doit rester inchangé
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Modifier le nom d’un attribut


Nom de la table
Syntaxe :
ALTER TABLE <nom_table>
CHANGE <ancien_nom> <nouveau_nom> <type>;
Type de
Ancien nom Nouveau nom l’attribut
Exemple : de l’attribut de l’attribut
ALTER TABLE bachelier
CHANGE ville wilaya VARCHAR(10);
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Modifier le type d’un attribut

Syntaxe : Nom de la table


ALTER TABLE <nom_table>
MODIFY COLUMN <att> <nouveau_type>;
Nom de Nouveau type
Exemple : l’attribut de l’attribut
ALTER TABLE bachelier
MODIFY COLUMN prenom VARCHAR(25);
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Ajouter un attribut à une table


Nom de la table
Syntaxe :
ALTER TABLE <nom_table>
ADD <nouvel_att> <type_nouvel_att>;
Nom du nouvel Type du nouvel
Exemple : l’attribut l’attribut
ALTER TABLE bachelier
ADD dateNaissance DATE;
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Ajouter une clé primaire à une table


Nom de la table
Syntaxe :
ALTER TABLE <nom_table>
ADD PRIMARY KEY(<cle_primaire>);
Nouvelle clé
primaire
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Ajouter une clé étrangère à une table

Syntaxe : Nom de la table


Nouvelle clé
ALTER TABLE <nom_table> étrangère

ADD FOREIGN KEY(<cle_etrangere>)


REFERENCES <nom_autre_table>(<att_autre_table>);

Nom de l’attribut dans


Table d’origine de la la table d’origine de la
clé étrangère clé étrangère
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Supprimer un attribut
Nom de la table
Syntaxe :
ALTER TABLE <nom_table>
DROP COLUMN <att> ; Nom de
l’attribut à
Exemple : supprimer

ALTER TABLE bachelier


DROP COLUMN dateNaissance;
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Supprimer la clé primaire d’une table


Nom de la table
Syntaxe :
ALTER TABLE <nom_table>
DROP PRIMARY KEY;

Obtention des noms des contraintes d’une table :
Créer CREATE SHOW CREATE TABLE <nom_table>;

LDD
Modifier ALTER

Supprimer DROP

Supprimer une clé étrangère d’une table

Syntaxe : Nom de la table


ALTER TABLE <nom_table>
DROP FOREIGN KEY <nom_contrainte>;

Nom de la contrainte
qui décrit la clé
étrangère
Créer CREATE

LDD
Modifier ALTER

Supprimer DROP

Supprimer une table


Nom de la table à
Syntaxe : supprimer

DROP TABLE <nom_table>;



Chaque tuple doit être écrit sous la forme
Insérer INSERT (val_att_1, val_att_2,...val_att_m), en
respectant l’ordre des m attributs du schéma de

LMD
la table
Mettre à jour UPDATE ●
Le séparateur des FLOAT est le point, ex. 3.14

Les valeurs de type CHAR et VARCHAR doivent
Supprimer DELETE être mises entre quottes, ex. ’chaine’,

Les valeurs de type DATE doivent être mis entre
Interroger SELECT quottes. Leur format est ’aaaa-mm-jj’,

Les valeurs de type TIME doivent être mises
entre quottes. Leur format est ’hh:mm:ss’,
Insérer des données Nom de la table

Le mot clé NULL permet de laisser la valeur d’un
attribut vide.
Syntaxe : Exemple:
INSERT INTO <nom_table> INSERT INTO Etablissement
VALUES <tuple_1>, VALUES(01,’Univ Alger 1’,’Alger’);
<tuple_2>,
...
<tuple_n>; Tuples à insérer

Chaque tuple doit être écrit sous la forme
Insérer INSERT (val_att_1, val_att_2,...val_att_m), en
respectant l’ordre des m attributs du schéma de

LMD
la table
Mettre à jour UPDATE ●
Le séparateur des FLOAT est le point, ex. 3.14

Les valeurs de type CHAR et VARCHAR doivent
Supprimer DELETE être mises entre quottes, ex. ’chaine’,

Les valeurs de type DATE doivent être mis entre
Interroger SELECT quottes. Leur format est ’aaaa-mm-jj’,

Les valeurs de type TIME doivent être mises
entre quottes. Leur format est ’hh:mm:ss’,
Insérer des données Nom de la table

Le mot clé NULL pemret de laisser la valeur d’un
attribut vide.
Syntaxe : Exemple:
INSERT INTO <nom_table> INSERT INTO Etablissement
VALUES <tuple_1>, VALUES(02,’ESGEE Oran’,’Oran’),
<tuple_2>, (03,’Univ Oran 1’,’Oran’);
...
<tuple_n>; Tuples à insérer

Chaque tuple doit être écrit sous la forme
Insérer INSERT (val_att_1, val_att_2,...val_att_m), en
respectant l’ordre des m attributs du schéma de

LMD
la table
Mettre à jour UPDATE ●
Le séparateur des FLOAT est le point, ex. 3.14

Les valeurs de type CHAR et VARCHAR doivent
Supprimer DELETE être mises entre quottes, ex. ’chaine’,

Les valeurs de type DATE doivent être mis entre
Interroger SELECT quottes. Leur format est ’aaaa-mm-jj’,

Les valeurs de type TIME doivent être mises
entre quottes. Leur format est ’hh:mm:ss’,
Insérer des données Nom de la table

Le mot clé NULL pemret de laisser la valeur d’un
attribut vide.
Syntaxe : Exemple:
INSERT INTO <nom_table> INSERT INTO Bachelier
VALUES <tuple_1>, VALUES (01,’Belaid’,’Houda’,
<tuple_2>, ’Mascara’,15.35,’2003-12-03’);
...
<tuple_n>; Tuples à insérer

Chaque tuple doit être écrit sous la forme
Insérer INSERT (val_att_1, val_att_2,...val_att_m), en
respectant l’ordre des m attributs du schéma de

LMD
la table
Mettre à jour UPDATE ●
Le séparateur des FLOAT est le point, ex. 3.14

Les valeurs de type CHAR et VARCHAR doivent
Supprimer DELETE être mises entre quottes, ex. ’chaine’,

Les valeurs de type DATE doivent être mis entre
Interroger SELECT quottes. Leur format est ’aaaa-mm-jj’,

Les valeurs de type TIME doivent être mises
entre quottes. Leur format est ’hh:mm:ss’,
Insérer des données Nom de la table

Le mot clé NULL pemret de laisser la valeur d’un
attribut vide.
Syntaxe : Exemple:
INSERT INTO <nom_table> INSERT INTO Bachelier
VALUES <tuple_1>, VALUES (02,’Ammar’,’Ali’,’Meliana’,
<tuple_2>, 10.01,NULL);
...
<tuple_n>; Tuples à insérer
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Mettre à jour des données


Syntaxe : Nom de la table
UPDATE <nom_table>
SET <att_1>=<val_1>,
<att_2>=<val_2>, Attributs pour lesquelles
... ont veut mettre à jour des
valeurs
<att_n>=<val_n>
[WHERE <condition>];
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Mettre à jour des données


Syntaxe : Nom de la table
UPDATE <nom_table>
SET <att_1>=<val_1>,
<att_2>=<val_2>,
... Nouvelles valeurs
<att_n>=<val_n> Condition de la
[WHERE <condition>]; mise à jour

Clause WHERE optionelle
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à NULL les dates de naissance
de tous les bacheliers :
SET <att_1>=<val_1>, UPDATE Bachelier
<att_2>=<val_2>, SET dateNaissance = NULL;
...
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Houda Mascara 15.35 NULL Table
02 Ammar Ali Meliana 10.01 NULL Bachelier
03 Berrahou Malika Oran 12 NULL après la
04 Maaziz Houda Tlemcen 11.58 NULL
mise à jour

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à NULL les dates de naissance
SET <att_1>=<val_1>, de tous les bacheliers :
<att_2>=<val_2>, UPDATE Bachelier
... SET dateNaissance = NULL;
<att_n>=<val_n>
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Modifier la ville du bachelier n°4 en lui affectant la
valeur ‘Blida’ :
SET <att_1>=<val_1>, UPDATE Bachelier
<att_2>=<val_2>, SET ville = ‘Blida’
... WHERE numBach = 4;
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Houda Mascara 15.35 2000-02-15 Table
02 Ammar Ali Meliana 10.01 2003-05-25
Bachelier
03 Berrahou Malika Oran 12 NULL
après la
mise à jour
04 Maaziz Houda Blida 11.58 2004-02-29

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Modifier la ville du bachelier n°4 en lui affectant la
SET <att_1>=<val_1>, valeur ‘Blida’ :
<att_2>=<val_2>, UPDATE Bachelier
... SET ville = ‘Blida’
<att_n>=<val_n> WHERE numBach = 4;
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons classiques : < ,> , <= ,>= ,
=, !=

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Supprimer le prénom de tous les bacheliers qui
n’habitent pas à ‘Meliana’ :
SET <att_1>=<val_1>, UPDATE Bachelier
<att_2>=<val_2>, SET prenom = NULL
... WHERE ville != ‘Meliana’;
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid NULL Mascara 15.35 2000-02-15 Table
02 Ammar Ali Meliana 10.01 2003-05-25
Bachelier
03 Berrahou NULL Oran 12 NULL
après la
mise à jour
04 Maaziz NULL Tlemcen 11.58 2004-02-29

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Supprimer le prénom de tous les bacheliers qui
SET <att_1>=<val_1>, n’habitent pas à ‘Meliana’ :
<att_2>=<val_2>, UPDATE Bachelier
... SET prenom = NULL
<att_n>=<val_n> WHERE ville != ‘Meliana’;
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons classiques : < ,> , <= ,>= ,
=, !=

LMD

Opérateur binaire LIKE pour comparer des chaînes de caractères
Mettre à jour UPDATE à des schémas. Dans ces schémas :

le caractère % peut remplacer n’importe quelle chaîne,
Supprimer DELETE ●
le caractère _ peut remplacer n’importe quel caractère.

Interroger SELECT

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Transformer le prénom en ‘Mohamed’ pour tous les
bacheliers dont le nom commence par ‘B’ :
SET <att_1>=<val_1>, UPDATE Bachelier
<att_2>=<val_2>, SET prenom = ‘Mohamed’
... WHERE nom LIKE ‘B%’ ;
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Mohamed Mascara 15.35 2000-02-15
Table
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
après la
03 Berrahou Mohamed Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Transformer le prénom en ‘Mohamed’ pour tous les
SET <att_1>=<val_1>, bacheliers dont le nom commence par ‘B’ :
<att_2>=<val_2>, UPDATE Bachelier
... SET prenom = ‘Mohamed’
<att_n>=<val_n> WHERE nom LIKE ‘B%’ ;
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons classiques : < ,> , <= ,>= ,
=, !=

LMD

Opérateur binaire LIKE pour comparer des chaînes de caractères
Mettre à jour UPDATE à des schémas. Dans ces schémas :

le caractère % peut remplacer n’importe quelle chaîne,
Supprimer DELETE ●
le caractère _ peut remplacer n’importe quel caractère.

Interroger SELECT

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à NULL les prénoms qui sont de
longueur égale à 3 caractères :
SET <att_1>=<val_1>, UPDATE Bachelier
<att_2>=<val_2>, SET prenom = NULL
... WHERE prenom LIKE ‘___’ ;
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Houda Mascara 15.35 2000-02-15 Table
02 Ammar NULL Meliana 10.01 2003-05-25
Bachelier
03 Berrahou Malika Oran 12 NULL
après la
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à NULL les prénoms qui sont de longueur égale
SET <att_1>=<val_1>, à 3 caractères :
<att_2>=<val_2>, UPDATE Bachelier
... SET prenom = NULL
<att_n>=<val_n> WHERE prenom LIKE ‘___’ ;
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons classiques : < ,> , <= ,>= ,
=, !=

LMD

Opérateur binaire LIKE pour comparer des chaînes de caractères
Mettre à jour UPDATE à des schémas. Dans ces schémas :

le caractère % peut remplacer n’importe quelle chaîne,
Supprimer DELETE ●
le caractère _ peut remplacer n’importe quel caractère.

Opérateurs binaires IN et NOT IN pour vérifier l’appartenance ou
non d’une valeur à un ensemble de valeurs.
Interroger SELECT

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à jour le prénom à la valeur ‘Malika’ pour les
bacheliers dont le numéro appartient à l’ensemble
SET <att_1>=<val_1>, {1,2} :
<att_2>=<val_2>, UPDATE Bachelier
... SET prenom = ‘Malika’
WHERE numBach IN (1,2) ;
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Malika Mascara 15.35 2000-02-15
Table
Bachelier
02 Ammar Malika Meliana 10.01 2003-05-25
après la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à jour le prénom à la valeur ‘Malika’ pour les
SET <att_1>=<val_1>, bacheliers dont le numéro appartient à l’ensemble
<att_2>=<val_2>, {1,2} :
UPDATE Bachelier
...
SET prenom = ‘Malika’
<att_n>=<val_n>
WHERE numBach IN (1,2) ;
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons classiques : < ,> , <= ,>= ,
=, !=

LMD

Opérateur binaire LIKE pour comparer des chaînes de caractères
Mettre à jour UPDATE à des schémas. Dans ces schémas :

le caractère % peut remplacer n’importe quelle chaîne,
Supprimer DELETE ●
le caractère _ peut remplacer n’importe quel caractère.

Opérateurs binaires IN et NOT IN pour vérifier l’appartenance ou
non d’une valeur à un ensemble de valeurs.
Interroger SELECT

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à jour le prénom à la valeur ‘Malika’ pour les
bacheliers dont le numéro n’appartient pas à
SET <att_1>=<val_1>, l’ensemble {1,2} :
<att_2>=<val_2>, UPDATE Bachelier
... SET prenom = ‘Malika’
WHERE numBach NOT IN (1,2) ;
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Houda Mascara 15.35 2000-02-15 Table
02 Ammar Ali Meliana 10.01 2003-05-25
Bachelier
03 Berrahou Malika Oran 12 NULL
après la
mise à jour
04 Maaziz Malika Tlemcen 11.58 2004-02-29

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à jour le prénom à la valeur ‘Malika’ pour les
SET <att_1>=<val_1>, bacheliers dont le numéro n’appartient pas à
<att_2>=<val_2>, l’ensemble {1,2} :
UPDATE Bachelier
...
SET prenom = ‘Malika’
<att_n>=<val_n>
WHERE numBach NOT IN (1,2) ;
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons classiques : < ,> , <= ,>= ,
=, !=

LMD

Opérateur binaire LIKE pour comparer des chaînes de caractères
Mettre à jour UPDATE à des schémas. Dans ces schémas :

le caractère % peut remplacer n’importe quelle chaîne,
Supprimer DELETE ●
le caractère _ peut remplacer n’importe quel caractère.

Opérateurs binaires IN et NOT IN pour vérifier l’appartenance ou
non d’une valeur à un ensemble de valeurs.
Interroger SELECT ●
Opérateurs unaires IS NULL et IS NOT NULL pour vérifier si une
valeur est NULL ou non.
Mettre à jour des données
Syntaxe : Exemple:
UPDATE <nom_table> Mettre à NULL les noms de famille des bacheliers
dont la date de naissance n’est pas précisée :
SET <att_1>=<val_1>, UPDATE Bachelier
<att_2>=<val_2>, SET prenom = NULL
... WHERE dateNaissance IS NULL ;
<att_n>=<val_n>
[WHERE <condition>];
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Houda Mascara 15.35 2000-02-15 Table
02 Ammar Ali Meliana 10.01 2003-05-25
Bachelier
03 NULL Malika Oran 12 NULL
après la
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

Mettre à jour des données


Syntaxe : Exemple:
UPDATE <nom_table> Mettre à NULL les noms de famille des bacheliers dont
SET <att_1>=<val_1>, la date de naissance n’est pas précisée
<att_2>=<val_2>, UPDATE Bachelier
... SET nom = NULL
<att_n>=<val_n> WHERE dateNaissance IS NULL ;
[WHERE <condition>];

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons classiques : < ,> , <= ,>= ,
=, !=

LMD

Opérateur binaire LIKE pour comparer des chaînes de caractères
Mettre à jour UPDATE à des schémas. Dans ces schémas :

le caractère % peut remplacer n’importe quelle chaîne,
Supprimer DELETE ●
le caractère _ peut remplacer n’importe quel caractère.

Opérateurs binaires IN et NOT IN pour vérifier l’appartenance ou
non d’une valeur à un ensemble de valeurs.
Interroger SELECT ●
Opérateurs unaires IS NULL et IS NOT NULL pour vérifier si une
valeur est NULL ou non.
Plusieurs conditions peuvent être combinées avec AND (et
Mettre à jour des données

logique) et du OR (ou logique).


Syntaxe : Exemple: Mettre à jour la date de naissance (à
UPDATE <nom_table> 31/12/2002) et la ville (Bejaia) du bachelier numéro 2
dans le cas où sa ville est NULL ou que son prénom
SET <att_1>=<val_1>, contient la chaîne ’li’ :
<att_2>=<val_2>, UPDATE Bachelier
SET dateNaissance =’2002-12-31’,
... ville=’Bejaia’
<att_n>=<val_n> WHERE (numBach = 2) AND ((ville IS NULL) OR
[WHERE <condition>]; (prenom LIKE ’%li%’));
numBach nom prenom ville moyenne dateNaissance
Table
01 Belaid Houda Mascara 15.35 2000-02-15
Bachelier
02 Ammar Ali Meliana 10.01 2003-05-25
avant la
03 Berrahou Malika Oran 12 NULL
mise à jour
04 Maaziz Houda Tlemcen 11.58 2004-02-29

numBach nom prenom ville moyenne dateNaissance


01 Belaid Houda Mascara 15.35 2000-02-15 Table
02 Ammar Ali Bejaia 10.01 2002-12-31 Bachelier
03 Berrahou Malika Oran 12 NULL après la
04 Maaziz Houda Tlemcen 11.58 2004-02-29
mise à jour

Mettre à jour des données


Syntaxe : Exemple: Mettre à jour la date de naissance (à 31/12/2002) et
UPDATE <nom_table> la ville (Bejaia) du bachelier numéro 2 dans le cas où sa ville
SET <att_1>=<val_1>, est NULL ou que son prénom contient la chaîne ’li’ :
<att_2>=<val_2>, UPDATE Bachelier
... SET dateNaissance=’2002-12-31’,ville=’Bejaia’
<att_n>=<val_n> WHERE (numBach = 2) AND ((ville IS NULL) OR
[WHERE <condition>]; (prenom LIKE ’%li%’));

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons

LMD
classiques : < ,> , <= ,>= , =, !=
Mettre à jour UPDATE ●
Opérateur binaire LIKE pour comparer des
chaînes de caractères à des schémas. Dans ces
schémas :
Supprimer DELETE

le caractère % peut remplacer n’importe quelle
chaîne,
Interroger SELECT ●
le caractère _ peut remplacer n’importe quel
caractère.

Supprimer des tuples : ●


Opérateurs binaires IN et NOT IN pour vérifier
l’appartenance ou non d’une valeur à un
Syntaxe : ensemble de valeurs.
DELETE FROM <nom_table> ●
Opérateurs unaires IS NULL et IS NOT NULL
pour vérifier si une valeur est NULL ou non.
[WHERE <condition>]; ●
Plusieurs conditions peuvent être combinées
avec AND (et logique) et du OR (ou logique).

Condition de la
suppression Nom de la table

Clause WHERE optionelle
Insérer INSERT ●
Opérateurs binaires de comparaisons

LMD
classiques : < ,> , <= ,>= , =, !=
Mettre à jour UPDATE ●
Opérateur binaire LIKE pour comparer des
chaînes de caractères à des schémas. Dans ces
schémas :
Supprimer DELETE

le caractère % peut remplacer n’importe quelle
chaîne,
Interroger SELECT ●
le caractère _ peut remplacer n’importe quel
caractère.

Supprimer des tuples : ●


Opérateurs binaires IN et NOT IN pour vérifier
l’appartenance ou non d’une valeur à un
Syntaxe : ensemble de valeurs.
DELETE FROM <nom_table> ●
Opérateurs unaires IS NULL et IS NOT NULL
pour vérifier si une valeur est NULL ou non.
[WHERE <condition>]; ●
Plusieurs conditions peuvent être combinées
avec AND (et logique) et du OR (ou logique).
Exemple :
Supprimer tous les bacheliers d’Oran :
DELETE FROM bachelier
WHERE ville=’Oran’ ;
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL Table
02 Ammar Ali Meliana 10.01 2002-12-31
Bachelier
03 Berrahou Malika Oran 12 NULL
avant la
suppression
04 Maaziz Houda Tlemcen 11.58 NULL

numBach nom prenom ville moyenne dateNaissance Table


01 Belaid Houda Mascara 15.35 NULL Bachelier
02 Ammar Ali Meliana 10.01 2002-12-31 après la
04 Maaziz Houda Tlemcen 11.58 NULL suppression

Exemple :
Supprimer tous les bacheliers d’Oran :
DELETE FROM bachelier
WHERE ville=’Oran’ ;
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL Table
02 Ammar Ali Meliana 10.01 2002-12-31
Bachelier
03 Berrahou Malika Oran 12 NULL
avant la
suppression
04 Maaziz Houda Tlemcen 11.58 NULL

Table
numBach nom prenom ville moyenne dateNaissance Bachelier
après la
suppression

Exemple :
Supprimer tous les bacheliers :
DELETE FROM bachelier ;

SELECT permet d’obtenir une nouvelle table
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT
Attributs/schéma de la
Interroger les données d’une table : nouvelle relation.
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table> Nom de la table à interroger
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];

SELECT permet d’obtenir une nouvelle relation
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT
Permet de garder tous les
Interroger les données d’une table : attributs de la table original
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table> Nom de la table à interroger
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];

SELECT permet d’obtenir une nouvelle relation
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT
Permet d’éliminer les
Interroger les données d’une table : doublons
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table> Nom de la table à interroger
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];

SELECT permet d’obtenir une nouvelle relation
Insérer INSERT

LMD
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Interroger les données d’une table :


Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table> Condition que devront respecter les tuples
obtenus dans la nouvelle table
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
permet d’ordonner les tuples obtenus par
ordre croissant (ASC) ou décroissant
(DESC) en fonction de l’attribut att.

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : afficher tout le contenu de la table Bachelier :
SELECT *
FROM Bachelier ;
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL Contenu de
02 Ammar Ali Meliana 10.01 2002-12-31 la table
03 Berrahou Malika Oran 12 NULL
Bachelier
04 Maaziz Houda Tlemcen 11.58 NULL

numBach nom prenom ville moyenne dateNaissance


01 Belaid Houda Mascara 15.35 NULL
02 Ammar Ali Meliana 10.01 2002-12-31 Résultat
03 Berrahou Malika Oran 12 NULL de la requête
04 Maaziz Houda Tlemcen 11.58 NULL

Exemple : afficher tout le contenu de la table Bachelier :


SELECT *
FROM Bachelier ;

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : les prénoms de tous les bacheliers en gardant les doublons
SELECT prenom
FROM Bachelier ;
moyenn dateNaissanc
numBach nom prenom ville
e e
Contenu de
01 Belaid Houda Mascara 15.35 NULL
la table
02 Ammar Ali Meliana 10.01 2002-12-31
Bachelier
03 Berrahou Malika Oran 12 NULL
04 Maaziz Houda Tlemcen 11.58 NULL

prenom

Houda

Ali
Résultat
de la requête
Malika

Houda

Exemple : les prénoms de tous les bacheliers en gardant les doublons


SELECT prenom
FROM Bachelier ;

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : les prénoms de tous les bacheliers en supprimant les doublons
SELECT DISTINCT prenom
FROM Bachelier ;
dateNaissanc
numBach nom prenom ville moyenne
e
Contenu de
01 Belaid Houda Mascara 15.35 NULL
la table
02 Ammar Ali Meliana 10.01 2002-12-31
Bachelier
03 Berrahou Malika Oran 12 NULL
04 Maaziz Houda Tlemcen 11.58 NULL

prenom

Houda
Résultat
Ali
de la requête
Malika

Exemple : les prénoms de tous les bacheliers en supprimant les doublons


SELECT DISTINCT prenom
FROM Bachelier ;

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : les bacheliers dont la moyenne est supérieure ou égale à 12
SELECT *
FROM Bachelier
WHERE moyenne >= 12;
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL Contenu de
02 Ammar Ali Meliana 10.01 2002-12-31 la table
03 Berrahou Malika Oran 12 NULL Bachelier
04 Maaziz Houda Tlemcen 11.58 NULL

numBach nom prenom ville moyenne dateNaissance


Résultat
01 Belaid Houda Mascara 15.35 NULL
de la requête
03 Berrahou Malika Oran 12 NULL

Exemple : les bacheliers dont la moyenne est supérieure ou égale à 12


SELECT *
FROM Bachelier
WHERE moyenne >= 12;

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : les bachelier dont le prénom se termine par "da" :
SELECT *
FROM Bachelier
WHERE prenom LIKE ’%da’;
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL
Contenu de
la table
02 Ammar Ali Meliana 10.01 2002-12-31
Bachelier
03 Berrahou Malika Oran 12 NULL
04 Maaziz Houda Tlemcen 11.58 NULL

numBach nom prenom ville moyenne dateNaissance


Résultat
01 Belaid Houda Mascara 15.35 NULL
de la requête
04 Maaziz Houda Tlemcen 11.58 NULL

Exemple : les bachelier dont le prénom se termine par "da" :


SELECT *
FROM Bachelier
WHERE prenom LIKE ’%da’;

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : les bacheliers dont la moyenne est supérieure à 10, ordonnés selon leur prénom par ordre
croissant puis selon leur nom par ordre décroissant :
SELECT * FROM Bachelier
WHERE moyenne > 10
ORDER BY prenom ASC , nom DESC;
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL Contenu de
02 Ammar Ali Meliana 10.01 2002-12-31 la table
03 Berrahou Malika Oran 12 NULL Bachelier
04 Maaziz Houda Tlemcen 11.58 NULL

numBach nom prenom ville moyenne dateNaissance


02 Ammar Ali Meliana 10.01 2002-12-31
Résultat
04 Maaziz Houda Tlemcen 11.58 NULL de la requête
01 Belaid Houda Mascara 15.35 NULL
03 Berrahou Malika Oran 12 NULL

Exemple : les bacheliers dont la moyenne est supérieure à 10, ordonnés selon leur prénom par ordre
croissant puis selon leur nom par ordre décroissant :
SELECT * FROM Bachelier
WHERE moyenne > 10
ORDER BY prenom ASC , nom DESC;

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le nom, prénom et la moyenne des bacheliers sur 10 au lieu de 20 :
SELECT nom , prenom , moyenne/2
FROM Bachelier
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL Contenu de
02 Ammar Ali Meliana 10.01 2002-12-31 la table
03 Berrahou Malika Oran 12 NULL Bachelier
04 Maaziz Houda Tlemcen 11.58 NULL

nom prenom moyenne/2


Belaid Houda 7.675
Résultat
Ammar Ali 5.005 de la requête
Berrahou Malika 6
Maaziz Houda 5.79

Exemple : le nom, prénom et la moyenne des bacheliers sur 10 au lieu de 20 :


SELECT nom , prenom , moyenne/2
FROM Bachelier

SELECT permet d’obtenir une nouvelle table
Insérer INSERT ●
Sans préciser ORDER BY, l’ordre des tuples

LMD
obtenu est aléatoire et peut différer d’une
exécution à une autre.
Mettre à jour UPDATE

Plusieurs attributs peuvent être spécifiés dans la
clause ORDER BY.
Supprimer DELETE

Il est possible de renommer les attributs ou les
tables en utilisant le mot clé AS.
Interroger SELECT ●
Le résultat d’une requête SELECT est une
nouvelle table. De ce fait, la requête SELECT
peut être elle même imbriquée dans une autre
Interroger les données d’une table : requête en tant que table
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le nom, prénom et la moyenne des bacheliers sur 10 au lieu de 20 :
SELECT nom , prenom , (moyenne/2) AS ’moy’
FROM Bachelier
numBach nom prenom ville moyenne dateNaissance
01 Belaid Houda Mascara 15.35 NULL Contenu de
02 Ammar Ali Meliana 10.01 2002-12-31 la table
03 Berrahou Malika Oran 12 NULL Bachelier
04 Maaziz Houda Tlemcen 11.58 NULL

nom prenom moy


Ammar Ali 5.005
Résultat
Maaziz Houda 5.79 de la requête
Belaid Houda 7.675
Berrahou Malika 6

Exemple : le nom, prénom et la moyenne des bacheliers sur 10 au lieu de 20 :


SELECT nom, prenom, (moyenne/2) AS ’moy’
FROM Bachelier

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Produit cartésien :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,..., <att_n>|*}
FROM <table_1>, <table_2>, ... <table_m>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Tables entre lesquelles un
produit cartésien sera appliqué

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Produit cartésien :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table_1>, <table_2>, ... <table_m>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le numéro, le nom et le prénom de tous les bacheliers et le numéro des filières auxquelles
chacun a postulé
SELECT [Link], nom, prenom, numFiliere
FROM Bachelier, Postuler
WHERE [Link] = [Link] ;
Table Bachelier Table Postuler
numBach nom prenom ville moyenne dateNaissance numBach numEta numFiliere
01 Belaid Houda Mascara 15.35 NULL
01 01 01
02 Ammar Ali Meliana 10.01 2002-12-31
01 02 03
03 Berrahou Malika Oran 12 NULL
01 03 04
04 Maaziz Houda Tlemcen 11.58 NULL
02 01 05
Résultat de la requête
03 01 05
[Link] nom prenom numFiliere
03 03 02
01 Belaid Houda 01
01 Belaid Houda 03
01 Belaid Houda 04 Remarque: la bachelière n°4 ne
02 Ammar Ali 05 s’affiche pas dans le résultat
03 Berrahou Malika 05
puisqu’elle n’a postulé à aucune
filière
03 Berrahou Malika 02

Exemple : le numéro, le nom et le prénom de tous les bacheliers et le numéro des filières auxquelles
chacun a postulé
SELECT [Link], nom, prenom, numFiliere
FROM Bachelier, Postuler
WHERE [Link] = [Link] ;

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Jointure :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table_1> JOIN <table_2> ON <condition_1>
[WHERE <condition_2>]
[ORDER BY <att> {ASC|DESC}];
Tables de la jointure Condition de la
jointure

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Jointure :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>, <att_2> ,... , <att_n>|*}
FROM <table_1> JOIN <table_2> ON <condition_1>
[WHERE <condition_2>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le numéro, le nom et le prénom de tous les bacheliers et le numéro des filières auxquelles
chacun a postulé :
SELECT [Link] , nom , prenom , numFiliere
FROM Bachelier JOIN Postuler ON [Link] = [Link] ;
Table Bachelier Table Postuler
numBach nom prenom ville moyenne dateNaissance numBach numEta numFiliere
01 Belaid Houda Mascara 15.35 NULL
01 01 01
02 Ammar Ali Meliana 10.01 2002-12-31
01 02 03
03 Berrahou Malika Oran 12 NULL
01 03 04
04 Maaziz Houda Tlemcen 11.58 NULL
02 01 05
Résultat de la requête
03 01 05
[Link] nom prenom numFiliere
03 03 02
01 Belaid Houda 01
01 Belaid Houda 03
01 Belaid Houda 04 Remarque: la bachelière n°4 ne
02 Ammar Ali 05 s’affiche pas dans le résultat
03 Berrahou Malika 05 puisqu’elle n’a postulé à aucune
03 Berrahou Malika 02 filière

Exemple : le numéro, le nom et le prénom de tous les bacheliers et le numéro des filières auxquelles
chacun a postulé
SELECT [Link] , nom , prenom , numFiliere
FROM Bachelier JOIN Postuler ON [Link] = [Link] ;

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Jointure :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>, <att_2> ,... , <att_n>|*}
FROM <table_1> JOIN <table_2> ON <condition_1>
[WHERE <condition_2>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le nom et prénoms des bacheliers avec une moyenne égale à 12 et le numéro des filières
auxquelles chacun a postulé :
SELECT nom , prenom , numFiliere
FROM Bachelier JOIN Postuler ON [Link] = [Link]
WHERE moyenne =12;
Table Bachelier Table Postuler
numBach nom prenom ville moyenne dateNaissance numBach numEta numFiliere
01 Belaid Houda Mascara 15.35 NULL 01 01 01
02 Ammar Ali Meliana 10.01 2002-12-31
01 02 03
03 Berrahou Malika Oran 12 NULL
01 03 04
04 Maaziz Houda Tlemcen 11.58 NULL
02 01 05
03 01 05
Résultat de la requête
03 03 02
nom prenom numFiliere
Berrahou Malika 05
Berrahou Malika 02

Exemple : le nom et prénoms des bacheliers avec une moyenne égale à 12 et le numéro des filières
auxquelles chacun a postulé :
SELECT nom , prenom , numFiliere
FROM Bachelier JOIN Postuler ON [Link] = [Link]
WHERE moyenne =12;

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Jointure naturelle :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table_1> NATURAL JOIN <table_2>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Tables de la jointure
naturelle

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Jointure naturelle :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table_1> NATURAL JOIN <table_2>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le nom et prénom des bacheliers avec une moyenne égale à 12 et le numéro des filières
auxquelles chacun a postulé :
SELECT nom , prenom , numFiliere
FROM Bachelier NATURAL JOIN Postuler
WHERE moyenne =12;
Table Bachelier Table Postuler
numBach nom prenom ville moyenne dateNaissance numBach numEta numFiliere
01 Belaid Houda Mascara 15.35 NULL
01 01 01
02 Ammar Ali Meliana 10.01 2002-12-31
01 02 03
03 Berrahou Malika Oran 12 NULL
01 03 04
04 Maaziz Houda Tlemcen 11.58 NULL
02 01 05
03 01 05
Résultat de la requête
03 03 02
nom prenom numFiliere
Berrahou Malika 05
Berrahou Malika 02

Exemple : le nom et prénoms des bacheliers avec une moyenne égale à 12 et le numéro des filières
auxquelles chacun a postulé :
SELECT nom , prenom , numFiliere
FROM Bachelier NATURAL JOIN Postuler
WHERE moyenne =12;

Un attribut commun « att » entre deux tables
Insérer INSERT « table_i » et « table_j » est désigné
respectivement par « table_i.att » et

LMD
« table_j.att » dans la requête
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Jointure naturelle :
Syntaxe :
SELECT [ DISTINCT ] {<att_1>,<att_2>,...,<att_n>|*}
FROM <table_1> NATURAL JOIN <table_2>
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le nom et le prénom des bacheliers avec une moyenne égale à 12 et l’intitulé des filières
auxquelles chacun a postulé :
SELECT nom , prenom , intitule
FROM Bachelier NATURAL JOIN Postuler NATURAL JOIN Filiere
WHERE moyenne =12;
Table Bachelier Table Postuler
numBach nom prenom ville moyenne dateNaissance numBach numEta numFiliere
01 Belaid Houda Mascara 15.35 NULL
01 01 01
02 Ammar Ali Meliana 10.01 2002-12-31
01 02 03
03 Berrahou Malika Oran 12 NULL
01 03 04
04 Maaziz Houda Tlemcen 11.58 NULL
02 01 05
03 01 05
Résultat de la requête
03 03 02
nom prenom intitulé
Berrahou Malika Droit Relation Filiere
Berrahou Malika MI numFiliere intitule
01 Architecture
02 MI
03 Prepa ST
Exemple : le nom et le prénom des bacheliers avec une moyenne 04 ST
égale à 12 et l’intitulé des filières auxquelles chacun a postulé :
05 Droit
SELECT nom , prenom , intitule
FROM Bachelier NATURAL JOIN Postuler NATURAL JOIN Filiere
WHERE moyenne =12;

L’opérateur de division étudié en algèbre
Insérer INSERT relationnelle n’a pas d’équivalent direct en SQL.

LMD

Il est toutefois possible d’obtenir son résultat en
utilisant la double négation.
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Division
Exemple : numéros des bacheliers qui ont postulé à toutes les universités :
— Obtenir les numéros des bacheliers qui n’ont pas postulé à tous les établissements ;
— Obtenir les numéros des bacheliers qui n’apparaissent pas dans l’étape précédente.
SELECT numBach
FROM Bachelier
WHERE numBach NOT IN (
SELECT numBach
FROM Bachelier , Etablissement
WHERE ( numBach , [Link] ) NOT IN (
SELECT numBach , numEta FROM Postuler ) );

Les fonctions d’agrégation : clauses à associer
Insérer INSERT au SELECT afin d’obtenir des résultats
d’opérations statistiques sur un ensemble de

LMD
tuples :
Mettre à jour UPDATE ▶
COUNT() : retourne le nombre de tuples dans
une table ou de valeurs non nulles dans une
colonne ;
Supprimer DELETE

MAX() : retourne la valeur maximum d’une
colonne ;
Interroger SELECT ▶
MIN() : retourne la valeur minimum d’une
colonne ;
Fonctions d’agrégation : ▶
SUM() : retourne la somme sur un ensemble
Syntaxe : de tuple ;
SELECT < fonction >({ < attr >|*}) ▶
AVG() : retourne une moyenne sur un
FROM <table> ensemble de tuples ;
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le nombre d’établissements dans la BDD :
SELECT COUNT(*)
FROM Etablissement ;
Table Etablissement Résultat de la requête
numEta nomEta ville COUNT(*)
Univ Alger 3
01 Alger
1
02 ESGEE Oran Oran
03 Univ Oran 1 Oran

Exemple : le nombre d’établissements dans la BDD :


SELECT COUNT(*)
FROM Etablissement ;

Les fonctions d’agrégation : clauses à associer
Insérer INSERT au SELECT afin d’obtenir des résultats
d’opérations statistiques sur un ensemble de

LMD
tuples :
Mettre à jour UPDATE ▶
COUNT() : retourne le nombre de tuples dans
une table ou de valeurs non nulles dans une
colonne ;
Supprimer DELETE

MAX() : retourne la valeur maximum d’une
colonne ;
Interroger SELECT ▶
MIN() : retourne la valeur minimum d’une
colonne ;
Fonctions d’agrégation : ▶
SUM() : retourne la somme sur un ensemble
Syntaxe : de tuple ;
SELECT < fonction >({ < attr >|*}) ▶
AVG() : retourne une moyenne sur un
FROM <table> ensemble de tuples ;
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : le nombre d’établissements qui se trouvent à Oran :
SELECT COUNT(*)
FROM Etablissement
WHERE ville=’Oran’ ;
Table Etablissement Résultat de la requête
numEta nomEta ville COUNT(*)
Univ Alger 2
01 Alger
1
02 ESGEE Oran Oran
03 Univ Oran 1 Oran

Exemple : le nombre d’établissements qui se trouvent à Oran :


SELECT COUNT(*)
FROM Etablissement
WHERE ville=’Oran’;

Les fonctions d’agrégation : clauses à associer
Insérer INSERT au SELECT afin d’obtenir des résultats
d’opérations statistiques sur un ensemble de

LMD
tuples :
Mettre à jour UPDATE ▶
COUNT() : retourne le nombre de tuples dans
une table ou de valeurs non nulles dans une
colonne ;
Supprimer DELETE

MAX() : retourne la valeur maximum d’une
colonne ;
Interroger SELECT ▶
MIN() : retourne la valeur minimum d’une
colonne ;
Fonctions d’agrégation : ▶
SUM() : retourne la somme sur un ensemble
Syntaxe : de tuple ;
SELECT < fonction >({ < attr >|*}) ▶
AVG() : retourne une moyenne sur un
FROM <table> ensemble de tuples ;
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : la meilleure moyenne entre les bacheliers :
SELECT MAX(moyenne)
FROM Bachelier ;
Table Bachelier Résultat de la requête
numBach nom prenom ville moyenne dateNaissance MAX(moyenne)
01 Belaid Houda Mascara 15.35 NULL 15.35
02 Ammar Ali Meliana 10.01 2002-12-31
03 Berrahou Malika Oran 12 NULL
04 Maaziz Houda Tlemcen 11.58 NULL

Exemple : la meilleure moyenne entre les bacheliers :


SELECT MAX(moyenne)
FROM Bachelier ;

Les fonctions d’agrégation : clauses à associer
Insérer INSERT au SELECT afin d’obtenir des résultats
d’opérations statistiques sur un ensemble de

LMD
tuples :
Mettre à jour UPDATE ▶
COUNT() : retourne le nombre de tuples dans
une table ou de valeurs non nulles dans une
colonne ;
Supprimer DELETE

MAX() : retourne la valeur maximum d’une
colonne ;
Interroger SELECT ▶
MIN() : retourne la valeur minimum d’une
colonne ;
Fonctions d’agrégation : ▶
SUM() : retourne la somme sur un ensemble
Syntaxe : de tuple ;
SELECT < fonction >({ < attr >|*}) ▶
AVG() : retourne une moyenne sur un
FROM <table> ensemble de tuples ;
[WHERE <condition>]
[ORDER BY <att> {ASC|DESC}];
Exemple : la meilleure moyenne entre les bacheliers ayant postulé à au moins un établissement à
Alger :
Table Postuler
Table Bachelier numBach numEta numFiliere
numBach nom prenom ville moyenne dateNaissance 01 01 01
01 Belaid Houda Mascara 15.35 NULL 01 02 03
02 Ammar Ali Meliana 10.01 2002-12-31
01 03 04
03 Berrahou Malika Oran 12 NULL
02 01 05
04 Maaziz Houda Tlemcen 11.58 NULL
03 01 05
Table Etablissement
03 03 02
numEta nomEta ville
Univ Alger Résultat de la requête
01 Alger
1
MAX(moyenne)
02 ESGEE Oran Oran
15.35
03 Univ Oran 1 Oran
Exemple : la meilleure moyenne entre les bacheliers ayant postulé à au moins un établissement à
Alger :
SELECT MAX (moyenne)
FROM ( Bachelier NATURAL JOIN Postuler )
JOIN Etablissement ON [Link] = [Link]
WHERE [Link] = ‘Alger’ ;

La clause GROUP BY permet de regrouper les
Insérer INSERT tuples selon la valeur d’une ou de plusieurs
colonnes,puis d’appliquer les fonctions

LMD
d’agrégation sur chaque groupe.
Mettre à jour UPDATE

Supprimer DELETE

Interroger SELECT

Fonctions d’agrégation :
Syntaxe :
SELECT <att_1>,<att_2>,...,<att_n>,<fonction>({<attr>|*})
FROM <table>
[WHERE <condition>]
[GROUP BY <att_1’>,< att_2’>,...,<att_n’>]
[ORDER BY <att’> {ASC|DESC}];
Exemple : la moyenne des moyennes des bacheliers pour chaque ville, et avec les noms des villes
ordonnées alphabétiquement
Table Bachelier Résultat de la requête
numBach nom prenom ville moyenne dateNaissance ville AVG(moyenne)
01 Belaid Houda Mascara 15.35 NULL Blida 14.5
02 Ammar Ali Meliana 10.01 2002-12-31 Mascara 15.35
03 Berrahou Malika Oran 12 NULL Meliana 10.01
04 Maaziz Houda Tlemcen 11.58 NULL Oran 11
05 Moussa Rahim Blida 14.5 2001-11-20 Tlemcen 11.58
06 Senhadji Maroua Oran 10,00 2002-05-09

Exemple : la moyenne des moyennes des bacheliers pour chaque ville, et avec les noms des villes
ordonnées alphabétiquement :
SELECT ville , AVG(moyenne)
FROM Bachelier
GROUP BY ville
ORDER BY ville ASC ;
Fin !

Vous aimerez peut-être aussi