Bases de Données - Chapitre 4
Bases de Données - Chapitre 4
Bases de Données - Chapitre 4
BASLAM 106
CHAP. 4 : LANGAGE
SQL (STRUCTURED QUERY
LANGUAGE)
Plan
• Généralités
• Langage de Définition des Données (LDD)
• Langage de Manipulation des données
LMD
Cours : Bases de Données – Prof : M. BASLAM 108
Etapes de conception
Généralités
• SQL (Structured Query Language)
• Interface de communication entre un développeur
et un SGBD relationnel.
• Langage non procédural.
Généralités
• SQL permet :
• de définir le schéma de la base de données (LDD)
• de gérer la base de données (LDD) : sécurité, organisation
physique
• de charger les tables relationnelles (LMD)
• de manipuler les données stockées (LMD)
... ... …
Cours : Bases de Données – Prof : M. BASLAM 114
Clé secondaire :
Attributs qui font référence à une ligne dans une autre table.
CREATE TABLE Film (
idFilm INTEGER NOT NULL,
nom VARCHAR (50) NOT NULL,
année INTEGER NOT NULL,
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (ideFilm),
Référence FOREIGN KEY (idMES) REFERENCE Artiste,
la clé FOREIGN KEY (codePays) REFERENCE Pays);
primaire Le SGBD vérifiera, pour toute modification pouvant affecter le
de la table lien entre les deux tables, que la valeur de idMES correspond
Artiste bien à une ligne de Artiste.
Cours : Bases de Données – Prof : M. BASLAM 122
SELECT nom_du_champ
FROM nom_du_tableau ;
Cours : Bases de Données – Prof : M. BASLAM 128
Table Client
Cours : Bases de Données – Prof : M. BASLAM 129
Table client
Cours : Bases de Données – Prof : M. BASLAM 130
Table client
Cours : Bases de Données – Prof : M. BASLAM 131
Table client
Cours : Bases de Données – Prof : M. BASLAM 133
Syntaxe:
SELECT nom_colonnes
FROM nom_table
WHERE condition ;
Cours : Bases de Données – Prof : M. BASLAM 134
SELECT nom_colonnes
FROM nom_table
WHERE condition1 AND condition2;
• OR : vérifie quant a lui que la condition1 OU la condition2 est vrai.
SELECT nom_colonnes FROM nom_table
WHERE condition1 OR condition2;
SELECT nom_colonne
FROM table
WHERE nom_colonne IN ( valeur1, valeur2, valeur3, ... );
Cours : Bases de Données – Prof : M. BASLAM 137
SELECT prenom
FROM utilisateur
WHERE prenom = 'Maurice' OR prenom = 'Marie' OR prenom =
'Thimote' ;
SELECT prenom
FROM utilisateur
WHERE prenom IN ( 'Maurice', 'Marie', 'Thimote' );
Cours : Bases de Données – Prof : M. BASLAM 138
SELECT *
FROM adresse
WHERE addr_ville IN ( 'Paris', 'Graimbouville' );
Table adresse
Cours : Bases de Données – Prof : M. BASLAM 139
SELECT *
FROM adresse
WHERE addr_ville IN ( 'Paris', 'Graimbouville' );
Table adresse
Cours : Bases de Données – Prof : M. BASLAM 140
Syntaxe:
SELECT *
FROM table
WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2' ;
Cours : Bases de Données – Prof : M. BASLAM 141
SELECT *
FROM utilisateur
WHERE date_inscription BETWEEN ’2012-04-01′ AND ’2012-04-20′ ;
Table utilisateur
Cours : Bases de Données – Prof : M. BASLAM 142
Syntaxe:
Table achat
Cours : Bases de Données – Prof : M. BASLAM 144
Syntaxe:
SELECT colonne1, fonction(colonne2)
FROM nom_table
GROUP BY colonne1
HAVING fonction(colonne2) operateur valeur ;
Cours : Bases de Données – Prof : M. BASLAM 146
Syntaxe:
SELECT colonne1, colonne2
FROM table
ORDER BY colonne1 ;
Cours : Bases de Données – Prof : M. BASLAM 148
Syntaxe:
UPDATE nom_table
SET nom_colonne_1 = 'nouvelle valeur'
WHERE condition ;
Cours : Bases de Données – Prof : M. BASLAM 150
Exemple :
Syntaxe:
DELETE FROM table
WHERE condition ;
Cours : Bases de Données – Prof : M. BASLAM 154
Table utilisateur
Cours : Bases de Données – Prof : M. BASLAM 155
CHAP. 4 : LANGAGE
SQL (SUITE):
Plan
• Langage de Manipulation des Données
(suite)
• Les Jointures entre tables
• Introduction
• Modélisation d’une relation
• Qu’est ce qu’une jointure?
• Les Jointures Internes
• Les Jointures Externes
Cours : Bases de Données – Prof : M. BASLAM 157
Syntaxe:
CASE
WHEN a=b THEN 'A egal a B'
WHEN a>b THEN 'A superieur a B'
ELSE 'A inferieur a B'
END
Cours : Bases de Données – Prof : M. BASLAM 158
Le CASE peut être utilisé dans n’importe quelle instruction ou clause, telle
que SELECT, UPDATE, DELETE, WHERE, ORDER BY ou HAVING.
UPDATE achat
SET quantite = (
CASE
WHEN surcharge < 1 THEN quantite + 1
WHEN surcharge > 1 THEN quantite - 1
ELSE quantite
END
);
Cours : Bases de Données – Prof : M. BASLAM 161
UPDATE achat
SET quantite = (
CASE
WHEN surcharge < 1 THEN quantite + 1
WHEN surcharge > 1 THEN quantite - 1
ELSE quantite
END
Table achat );
Cours : Bases de Données – Prof : M. BASLAM 162
Union de 2 ensembles :
A = Résultat de la première requête
B = Résultat de la deuxième requête
Cours : Bases de Données – Prof : M. BASLAM 163
Table magasin2_client
Cours : Bases de Données – Prof : M. BASLAM 164
Intersection de 2 ensembles :
A = Résultat de la première requête
B = Résultat de la deuxième requête
Cours : Bases de Données – Prof : M. BASLAM 166
Table magasin2_client
Cours : Bases de Données – Prof : M. BASLAM 167
Syntaxe:
Table magasin2_client
Cours : Bases de Données – Prof : M. BASLAM 170
OUVRAGES
Cote Titre NbExem Année Thème Editeur NomAuteur PreAuteur
OUVRAGES AUTEUR
Cote Titre NbExem Année Thème #NumAut NumAut NomAuteur PreAuteur
ECRIT
#Cote #NumAut
Cours : Bases de Données – Prof : M. BASLAM 173
• Problème : champ nom est dans les deux tables, donc ça ne fonctionnera pas car
ce n'est pas claire si on veut le nom de la personne ou du jeu .
• Solution : marquer le nom de la table devant le nom du champ:
Sonic Younes
Zelda Ahmed
Mario Ahmed
NULL Laila
Cours : Bases de Données – Prof : M. BASLAM 185