Académique Documents
Professionnel Documents
Culture Documents
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Prof : A. SRAI
Faculté des Sciences et Techniques
d'Al Hoceima (FSTH)
2021/2022
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
1 Introduction
2 Parties du SQL
3 Requêtes imbriquées
4 Clause With
5 Modification de la base de
données
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Définition (SQL)
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Objectif
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
SELECT : interrogation
INSERT : insertion
UPDATE : mise à jour
DELETE : suppression
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Création de table
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Contraintes d'intégrités
Types de Contraintes d'intégrités
primary key (A1, ..., An )
foreign key (Am, ..., An ) references r
not null
SQL empêche toute mise à jour de la base de données
qui viole une contrainte d'intégrité
Exemple :
1 create table Enseignant (
2 I D c ha r ( 5) ,
3 nom v a r c ha r ( 20) not nul l ,
4 nom_ de pt v a r c ha r ( 20) ,
5 s a l a i r e nume r i c ( 8 , 2) ,
6 pr i ma r y k ey ( I D) ,
7 f o r e i g n key ( nom_dept) r e f e r e n c e s d e p a r t e m e n t ) ;
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Suppression de la table
1 rd r o p t a b l e r
Modification de la table
1 ALTER TABLE e m p l o y e ADD ( L i b e l l e V A R C H A R 2 ( 2 0 ) )
MODIFY ( e m p l o i V A R C H A R 2 ( 2 0 ) N O T N U L L ) ;
1 a l t e r t a b l e r drop A D
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Example
ALTER TABLE Customers
1 ADD Email varchar(255);
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Example
ALTER TABLE Customers
1 DROP COLUMN Email;
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Example
ALTER TABLE Persons
1 MODIFY DateOfBirth year;
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
1 s e l e c t A1 , A2 , . . . , An
2 f r om r 1 , r 2 , . . . ,
3 r mwhere P
Ai : représente un attribut
ri : représente une relation
P : est un prédicat.
Le résultat d’une requête SQL est une relation.
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Clause SELECT
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Clause WHERE
La clause WHERE spécifie les conditions que le résultat
doit satisfaire (Correspond au prédicatsélectionde
l’algèbre relationnelle.)
Exemple : Lister tous les enseignants de
département Informatique.
1 s e l e c t nom
2 from E n s e i g n a n t
3 whe r e nom_ de pt = " I nf or ma t i que "
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Clause WHERE
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Clause FROM
La clause from répertorie les relations impliquées dans
la requeteCorrespond à l’opération produit cartésienne
de l’ algèbre relationnelle.
Pour génére toutes les paires enseignant-etudiant
par exemple :
1 select *
2 from E n s e i g n a n t , Etudiant
Produit cartésien n’est pas très utile en général sauf s’il est
combiner avec la clause WHERE (opération de sélection
en algèbre relationnelle).
SQL permet de renommer les relations aussi avec
l’opérateur as.
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
1
select *
from P i l o t e W H E R E
2
plnom LIKE 'M%';
3
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Valeur Null
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Sous-requêtes imbriquées
SQL fournit un mécanisme pour l’imbrication des sous-
requêtes. Une sous-requêtes est une expression de
sélection depuis où qui est imbriquée dans une autre requête.
L’imbrication peut être effectuée dans la requête SQL suivante
1 s e l e c t A1 , A2 , . . . , An
2 f r om r 1 , r 2 , . . . , r m
3 where P
comme suit :
clause From : ne peutêtre remplacépar n’importe quelle
sous-requêtevalide
La clause Where : P peutêtre remplacée par une expression de
la forme : B <opération> (sous-requête) B est un attribut et
<opération>à définir ultérieurement.
la clause select : ne peutêtre remplacépar une sous-requête
qui génère une valeurunique
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Opérateur in et not in
Exemple : Trouver les cours disponible en automne
2020 et printemps 2021
1 select d i s t i n c t id_cours
2 from s e c t i o n
3 whe r e s e me s t e r e = ’ Aut omne ’ a nd a nne e = 2020
4 a nd i d _ c o u r s i n ( s e l e c t i d _ c o u r s
5 from s e c t i o n
6 whe r e s e me s t e r e = ’ pr i nt e mps ’
a nd annee = 2 0 2 1 ) ;
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
1 s e l e c t nom
2 from E n s e i g n a n t
3 whe r e s a l a i r e > a l l ( s e l e c t
4 s a l a i r e from E n s e i g n a n t
5 whe r e nom_ de pt = ’ Bi ol og i e ’ ) ;
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
1 select id_cours
2 from s e c t i o n a s S
3 whe r e s e me s t e r e = ’ a ut omne ’ a nd a nne e = 2020
4 a nd e x i s t s ( select *
5 from s e c t i o n a s T
6 whe r e s e me s t e r e = ’ pr i nt e mps ’ a nd a nne e = 2021
7
a nd S . i d_ c our s = T . i d_ c our s ) ;
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Clause With
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Cours SQL / BD
Plan
Introduction
Parties du SQL
Requêtes imbriquées
Clause With
Modification de la base de donn´ees
Suppression :
1 d e l e t e from E n s e i g n a n t
2 whe r e nom_ de pt = ’ F i na nc e ’ ;
Insertion :
1 i n s e r t i n t o c o u r s ( i d , t i t r e , nom_dept , h o r r a i r e )
2 v a l ue s ( ’ CS 437 ’ , ’ S GBD’ , ’ i nf or ma t i que ’ ,
3 4) ;
i n s e r t i n t o t a b l e 1 s e l e c t * from t a b l e 1
Mise à jour :
1 update E n s e i g n a t
2 set s a l a i r e = s a l a i r e * 1.05
3 where s a l a i r e < 7 0 0 0 0 ;
Cours SQL / BD