Академический Документы
Профессиональный Документы
Культура Документы
LE LANGAGE
SQL
2
Exemple de BD (1)
Produit LigneCommande
NoProd #NoCom
Libelle #NoProd
Prix QteCommandee
QteStock
3
Exemple de BD (2)
Soit le détail de la table Client :
Client
NoCli Nom Adresse Localité Catégorie Compte
4
Requête SQL
WHERE Précise les conditions à appliquer sur les lignes. On peut trouver :
- des comparateurs : =, >, <, >=, <=,<>
- des opérateurs logiques : AND, OR, NOT
- des prédicats : IN
GROUP BY Précise la (ou les) colonne(s) de regroupement
ORDER BY Précise l'ordre dans lequel vont apparaître les lignes de la réponse :
- ASC : En ordre ascendant (par défaut)
- DESC: En ordre descendant
6
Requête SQL (Exemples)
7
Projection
Exemple :
9
Sélection
SQL: SELECT
*
FROM table
WHERE conditions;
Principe:
Sélectionne des lignes (n-uplets, tuples) d'une (ou
plusieurs) table(s) qui satisfont certaines conditions.
La ou les conditions sont indiquées après la clause
WHERE.
* dénote toutes les colonnes de la relation. 10
Sélection (Exemple)
SQL:
SELECT
*
FROM Client
WHERE Localité = ‘Ariana’;
11
Projection & Sélection
12
Projection & Sélection (Exemple)
13
Jointure
Principe:
Permet l’extraction de données à partir de 2 ou plusieurs tables.
Réunit, 2 par 2, des tables.
Après la clause FROM, le nom des tables intervenant dans la
jointure.
Après la clause WHERE, les conditions permettant de réaliser
la jointure.
14
Jointure (Exemple)
SQL: SELECT
*
FROM Client,Commande
WHERE Client.NoCli = Commande.NoCli;
SQL: SELECT
*
FROM table1, table2;
Principe:
Le produit cartésien est appliqué sur deux relations R1 et R2
n'ayant pas nécessairement la même structure pour obtenir une
relation R3.
R1
NoCli Nom
1 AMEUR
2 BEN SALAH
SQL:
SELECT
* FROM R1,R2;
17
La clause DISTINCT
Exemple 1 : Localité
SELECT Localité Carthage
FROM Client Tunis
Ariana
WHERE Catégorie= 1; Tunis
Exemple 2 :
SELECT DISTINCT Localité Localité
FROM Client Carthage
Tunis
WHERE Catégorie= 1; Ariana
18
Requêtes avec comparaisons (1)
19
Requêtes avec comparaisons (2)
Exemple 1 :
SELECT Nom, Adresse, Compte Nom Adresse Compte
FROM Client
MRABET 112, r. d’Athène 0.000
WHERE Localité = 'Ariana' AND Compte <= 0;
Exemple 2 :
SELECT Nom, Adresse, Compte
FROM Client Nom Adresse Compte
WHERE Compte between 100 AND 500; JELALI 72, r. de la Gare 320.000
AMEUR 23, a. Carthage 125.000
Exemple 3 :
SELECT Nom, Adresse, Compte
FROM CLIENT Nom Adresse Compte
WHERE Nom LIKE 'BEN%'; BEN SALAH 25, r. du Caire -230.000
SELECT …
FROM …
GROUP BY expr, ... [HAVING conditions];
22
Requêtes avec regroupement
(2)
Regroupement simple:
La commande GROUP BY regroupe à l’affichage les
données sur le champ spécifié.
23
Requêtes avec regroupement (3)
24
Requêtes avec regroupement (4)
25
Requêtes avec regroupement (5)
26
Requêtes avec regroupement (6)
27
Remarques
28
Requêtes avec regroupement (2)
Rqs:
Tout champ du select, autre que les fonctions statistiques, doit
se retrouver dans le GROUP BY:
SELECT Champ1, Champ2, Count(*)
FROM ...
WHERE ...
GROUP BY Champ1, Champ2;
Généralement, tout champ de regroupement (du GROUP BY)
est présent dans la clause SELECT
Exemple :
Cette requête va créer
SELECT Catégorie autant de sous-ensembles
FROM Client que de valeurs possibles
GROUP BY Catégorie; de l'attribut Catégorie: 3
sous-ensembles : 1, 2, 3.
29
La clause ORDER BY
SELECT …
FROM …
ORDER BY attribut1 [ASC], attribut2 DESC, ... ;
Pour afficher un ordre décroissant il suffit de préciser DESC
derrière la colonne citée dans le tri . L’ordre croissant (ASC) étant
celui par défaut.
Le nom de colonne peut être remplacé par la position de la
colonne derrière la clause SELECT.
30
La clause ORDER BY (Exemples)
Exemple 2:
NoCli Nom Localité
SELECT NoCli, Nom, Localité 3 MRABET Ariana
FROM Client 1 AMEUR Carthage
6 CHAOUACHI La Marsa
WHERE Catégorie IN (1,2) 2 BEN SALAH Tunis
4 KRAIEM Tunis
ORDER BY 3; 5 LABIDI Tunis
31
Notion d’ALIAS
32
Notion d’ALIAS (Exemples)
33
Les fonctions d'agrégation
Elles sont utilisées avec les opérateurs de calcul et de
regroupement. SELECT fonction1(att1), fonction2(att2), ...
FROM table;
Exemple 1: SUM
SELECTNoProd, SUM(QteCommandée) AS Qte-Totale
FROM LigneCommande
GROUP BY NoProd;
Quantité totale commandée pour chaque produit.
Exemple 2: AVG
SELECT NoProd, AVG(QteCommandée) AS Qte-Moyenne
FROM LigneCommande
GROUP BY NoProd;
35
Les fonctions statistiques (2)
Exemple 3: MIN
SELECTNoCli, Nom, MIN(Compte) AS Compte-Min
FROM Client;
Exemple 4: MAX
SELECT NoProd, MAX(QteStock) AS Stock-Max
FROM Produit ;
36
La fonction de comptage
Exemple 1: Nombre total de commandes.
SELECTCount( ) AS Nbre-Total-Cdes
*
FROM Commande;
Exemple 2: Quantité moyenne commandée pour les produits faisant
l’objet de plus de 3 commandes.
SELECTNoProd, AVG(QteCommandée)
FROM LigneCommande
GROUP BY NoProd
37