Académique Documents
Professionnel Documents
Culture Documents
Mohammed KHALIL
1/184
2/184
3/184
4/184
5/184
6/184
Une structure
Simple: prix, nom, date
Complexe: personne, document, image
Une sémantique
Le solde d’un compte courant
Une photo de Rabat réalisée par le satellite X
7/184
Une structure
Simple: prix, nom, date
Complexe: personne, document, image
Une sémantique
Le solde d’un compte courant
Une photo de Rabat réalisée par le satellite X
7/184
Des utilisateurs:
Interrogent les données:
Quelle était la température à Mohammedia le 1er janvier
2013 ?
Mettent à jour les données.
Créditer le compte de M. Karim de 1000 DHs.
Un propriétaire:
Responsable de la création d’une donnée.
Définit les règles pour son identification et son intégrité:
La température de l’air est comprise entre -30◦ et +40◦ C.
Le salaire de l’année n est supérieur au salaire de l’année
n-1.
Accorde des droits d’utilisation. 8/184
Des utilisateurs:
Interrogent les données:
Quelle était la température à Mohammedia le 1er janvier
2013 ?
Mettent à jour les données.
Créditer le compte de M. Karim de 1000 DHs.
Un propriétaire:
Responsable de la création d’une donnée.
Définit les règles pour son identification et son intégrité:
La température de l’air est comprise entre -30◦ et +40◦ C.
Le salaire de l’année n est supérieur au salaire de l’année
n-1.
Accorde des droits d’utilisation. 8/184
9/184
10/184
11/184
12/184
13/184
14/184
15/184
16/184
17/184
18/184
19/184
20/184
21/184
22/184
23/184
24/184
25/184
26/184
27/184
28/184
29/184
29/184
29/184
Syntaxe
CREATE TABLE nom_table (
nom_col1 type1,
nom_col2 type2,
...);
30/184
31/184
31/184
31/184
31/184
32/184
33/184
Contraintes d’intégrité
35/184
36/184
Syntaxe
ALTER TABLE nom_table
ADD Constraint nom_contrainte contrainte;
Exemple
Alter table commande
Add constraint fk_cm_ncli foreign key (NUMCLI) references CLIENT
(NUMCLI);
37/184
38/184
39/184
Syntaxe
DROP TABLE nom_table;
40/184
Exemple
DROP TABLE CLIENT;
41/184
Exemple
DROP TABLE CLIENT;
41/184
Syntaxe
ALTER TABLE nom_table
ADD (
nom_colonne type [contrainte],
...);
42/184
Exemple
alter table PRODUIT
add POIDS decimal(4,2);
43/184
Exemple
alter table PRODUIT
add POIDS decimal(4,2);
43/184
Syntaxe
ALTER TABLE nom_table
MODIFY (
nom_colonne type [contrainte],
...);
44/184
Exemple
alter table CLIENT
modify ville varchar(10);
45/184
Exemple
alter table CLIENT
modify ville varchar(10);
45/184
Syntaxe
ALTER TABLE nom_table
DROP (
nom_colonne type [contrainte],
...);
46/184
Exemple
alter table CLIENT
drop ville;
47/184
Exemple
alter table CLIENT
drop ville;
47/184
Syntaxe
Exemple
ALTER TABLE nom_table
ALTER TABLE client
CHANGE
CHANGE
ancien_nom nouveau_nom
categorie cat char(1);
type;
48/184
Syntaxe Exemple
ALTER TABLE nom_table ALTER TABLE client
RENAME RENAME
To nouveau_nom; To custumor;
49/184
Exemple
50/184
Syntaxe
INSERT into nom_table(nom_col_1, nom_col_2, ...)
VALUES (val_1, val_2, ...);
Exemple
insert into CLIENT (NOMCLI, VILLE , CATEGORIE, COMPTE)
values
(’AMINE’ ,’RABAT’ ,’A’,11250.00),
(’DRISS’ ,’CASABLANCA’ ,’A’,12300);
51/184
Syntaxe
UPDATE nom_table
set
nom_col_1 = expression_1,
nom_col_2 = expression_2,
...
nom_col_n = expression_n
WHERE predicat;
52/184
Exemple
update client
set compte=compte+1000
where categorie=’A’;
53/184
Exemple
update client
set compte=compte+1000
where categorie=’A’;
53/184
Syntaxe
DELETE FROM nom_table
WHERE predicat;
54/184
Exemple
delete from client where
ville=’Casablanca’;
55/184
Exemple
delete from client where
ville=’Casablanca’;
55/184
56/184
Plan
57/184
SQL SELECT
58/184
Requête simple
59/184
Opération arithmétiques
60/184
Conditions de comparaisons
61/184
Conditions de comparaisons
62/184
Extraction simple
Si on veut extraire les valeurs de certaines colonnes d’une
table:
63/184
Extraction simple
SELECT numcli, nomcli, ville
From CLIENT
64/184
Extraction simple
Si on demande les valeurs de toutes les colonnes.
65/184
Extraction simple
SELECT *
From CLIENT
66/184
67/184
67/184
Lignes dupliquées
Si on veut afficher les villes où habitent des clients de catégorie
A:
Select ville
From CLIENT
Where categorie = ’A’
68/184
Lignes dupliquées
Si on veut afficher les villes où habitent des clients de catégorie
A:
Select ville
From CLIENT
Where categorie = ’A’
68/184
69/184
69/184
70/184
71/184
72/184
Conditions élémentaires
Une condition élémentaire peut porter sur la présence de la
valeur null :
categorie is null
categorie is not null
73/184
Conditions élémentaires
Une condition élémentaire peut porter sur la présence de la
valeur null :
categorie is null
categorie is not null
73/184
Conditions élémentaires
Une condition peut aussi porter sur l’appartenance à une liste :
categorie in (’A’,’B’,’C’)
ville not in (’Tanger’,’Rabat’,’Casablanca’)
74/184
Conditions élémentaires
Une condition peut aussi porter sur l’appartenance à une liste :
categorie in (’A’,’B’,’C’)
ville not in (’Tanger’,’Rabat’,’Casablanca’)
74/184
Conditions élémentaires
75/184
Conditions élémentaires
75/184
Conditions élémentaires
76/184
77/184
77/184
78/184
78/184
Exercice 1
79/184
Exercice 1
80/184
Plan
81/184
Expressions composées
82/184
Expressions composées
82/184
Expressions composées
82/184
Expressions composées
Si on veut retenir les lignes pour lesquelles, ville a pour valeur
’Rabat’ et compte a une valeur positive.
Select nomcli, ville, compte
From CLIENT
Where ville = ’Rabat’ and COMPTE > 0
83/184
Expressions composées
Si on veut retenir les lignes pour lesquelles, ville a pour valeur
’Rabat’ et compte a une valeur positive.
Select nomcli, ville, compte
From CLIENT
Where ville = ’Rabat’ and COMPTE > 0
83/184
Expressions composées
84/184
Expressions composées
84/184
Expressions composées
84/184
Expressions composées
85/184
Expressions composées
85/184
Expressions composées
86/184
Expressions composées
Que fait cette requête?
Select nomcli, ville, compte
From CLIENT
Where ville = ’Rabat’ and (compte > 5000 or categorie =
’B’)
87/184
Expressions composées
Expressions composées
Expressions composées
Table logique
89/184
Négation
90/184
Négation
90/184
Négation
90/184
Négation
90/184
Négation
90/184
Exercice 1
91/184
Exercice 1
92/184
Exercice 2
93/184
Exercice 2
94/184
Exercice 3
95/184
Exercice 3
96/184
Exercice 4
97/184
Exercice 4
98/184
Exercice 5
99/184
Exercice 5
100/184
Exercice 6
101/184
Exercice 6
102/184
Exercice 7
103/184
Exercice 7
104/184
Plan
105/184
Sous requête
Considérons les clients qui habitent dans une ville donnée. Il
est possible d’en retrouver les numéros en posant la requête
suivante :
Select numcli
From CLIENT
Where ville = ’Casablanca’
Sous requête
107/184
Sous requête
108/184
Select *
From CLIENT
Where ville in ( Select ville
From CLIENT
Where numcli = 3)
Select *
From CLIENT
Where ville in ( Select ville
From CLIENT
Where numcli = 3)
Exercice 1
111/184
Exercice 1
112/184
Exercice 2
Afficher les produits qui ont été commandés par les clients qui
habitent à Casablanca.
113/184
Exercice 2
Afficher les produits qui ont été commandés par les clients qui
habitent à Casablanca.
114/184
Sous requête
115/184
Alias de table
Select *
From PRODUIT as P1
Where P1.prix > 123
116/184
Alias de table
Select *
From PRODUIT as P1
Where P1.prix > 123
116/184
Alias de table
Select *
From PRODUIT as P1
Where P1.prix > 123
116/184
117/184
118/184
Quantificateurs ensemblistes
119/184
Quantificateurs ensemblistes
119/184
Quantificateurs ALL
Quelles sont les commandes (du produit 1) qui ont une
quantité inférieure à toutes les quantités de commande du
produit numéro 1 ?
120/184
Quantificateurs ALL
Quelles sont les commandes (du produit 1) qui ont une
quantité inférieure à toutes les quantités de commande du
produit numéro 1 ?
121/184
Quantificateurs ALL
122/184
Quantificateurs ALL
123/184
Quantificateurs ALL
124/184
Quantificateurs ANY
Quelles sont les commandes (du produit 1) qui ont une
quantité supérieure à n’importe quelles quantités de
commande du produit numéro 1 ?
125/184
Quantificateurs ANY
Quelles sont les commandes (du produit 1) qui ont une
quantité supérieure à n’importe quelles quantités de
commande du produit numéro 1 ?
126/184
Quantificateurs ANY
127/184
Quantificateurs ANY
128/184
Quantificateurs ANY
129/184
Plan
130/184
Fonctions du système
131/184
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Fonctions agrégatives
Exemples
Que fait cette requête?
Select count(NumCLI) as Numeros,
count(Nomcli) as Noms,
count(Ville) as Localites,
count(Categorie) as Categories
From CLIENT;
134/184
Exemples
Que fait cette requête?
Select count(NumCLI) as Numeros,
count(Nomcli) as Noms,
count(Ville) as Localites,
count(Categorie) as Categories
From CLIENT;
135/184
Exemples
Que fait cette requête?
Select count(distinct NumCLI) as Numeros,
count(distinct NOMCli) as Noms,
count(distinct Ville) as Localites,
count(distinct Categorie) as Categories
From CLIENT;
136/184
Exemples
Que fait cette requête?
Select count(distinct NumCLI) as Numeros,
count(distinct NOMCli) as Noms,
count(distinct Ville) as Localites,
count(distinct Categorie) as Categories
From CLIENT;
137/184
Exemples
On décrit la répartition (moyenne, écart maximum, nombre)
des montants des comptes des clients de Casablanca :
Exemples
On décrit la répartition (moyenne, écart maximum, nombre)
des montants des comptes des clients de Casablanca :
Exercice 1
Afficher la valeur totale des stocks (le prix total des stocks)
139/184
Exercice 1
Afficher la valeur totale des stocks (le prix total des stocks)
140/184
Exercice 2
141/184
Exercice 2
142/184
Plan
143/184
144/184
145/184
146/184
Jointure
147/184
Join on
148/184
Natural join
149/184
150/184
Sous-requêtes ou jointures ?
151/184
Sous-requêtes ou jointures ?
152/184
153/184
154/184
Sous-requêtes ou jointures ?
155/184
Sous-requêtes ou jointures ?
156/184
Sous-requêtes ou jointures ?
Solution
157/184
Exercice 1
158/184
Exercice 1
159/184
Exercice 1
160/184
Exercice 1
161/184
Exercice 2
162/184
Exercice 2
163/184
Exercice 3
164/184
Exercice 3
Select sum(prix*qcom)
from produit natural join detail
where typepro like ’%informatique%’;
165/184
Exercice 4
166/184
Exercice 4
Select prix*qcom
From produit natural join detail natural join commande
Where numcli=2;
167/184
Exercice 5
168/184
Exercice 5
169/184
Plan
170/184
171/184
172/184
173/184
174/184
175/184
Exercice 1
176/184
Exercice 1
177/184
Exercice 2
178/184
Exercice 2
179/184
Exercice 3
180/184
Exercice 3
181/184
Exercice 4
Afficher pour chaque ville, les noms des produits qui y sont
commandés tout en triant les villes et les noms des produits
par ordre lexicographique.
182/184
Exercice 4
Afficher pour chaque ville, les noms des produits qui y sont
commandés tout en triant les villes et les noms des produits
par ordre lexicographique.
183/184
FIN du Chapitre 4
184/184