Académique Documents
Professionnel Documents
Culture Documents
ENSIT
Langage d’Interrogation des Données
1 2
1
04/12/2021
2
04/12/2021
12
11
3
04/12/2021
13
La relation R1 La relation R2 14
4
04/12/2021
Exemple
Imaginons une application qui possède une table Client ainsi qu’une table
Commande qui contient toutes les commandes effectuées par les clients.
Remarques:
- l’attribut key représente la clé primaire de la table A et une clé étrangère
dans la table B.
- Pour Left Join et Right Join, l’ordre est important. 17 18
5
04/12/2021
Exemple
SELECT client.id_client, nom, prenom, numFacture, date_achat, prix_total
FROM client LEFT JOIN commande ON client.id_client = commande.id_client;
Le résultat de cette requête est:
Id_client Nom prenom NumFacture Date_achat Prix_total
1 Bjaoui Ali 100 10/11/2016 500
Dans le cas de non correspondance de la table A avec la table B, les
1 Bjaoui Ali 101 20/12/2016 200.5
colonnes de la table B vaudront NULL.
2 Bjaoui Mohamed 103 11/02/2017 300
2 Bjaoui Mohamed 104 25/03/2017 150
3 Gharbi Salwa
21 4 Amari Meriem 22
4 Amari Meriem
23 24
6
04/12/2021
7
04/12/2021
Exemple1
SELECT COUNT(*) FROM EMP; Exemple2
SELECT NDEPT, COUNT(*) FROM EMP
Exemple2 WHERE POSTE = 'SECRETAIRE'
SELECT NOME, SAL FROM EMP GROUP BY NDEPT;
WHERE SAL = (SELECT MAX(SAL) FROM EMP);
• Une restriction peut être appliquée après le calcul des groupes en
Les clauses GROUP BY et HAVING utilisant la clause HAVING.
• Il est possible de partitionner une table en des groupes où chaque
groupe représente un ensemble de tuples ayant une valeur commune. Exemple
• Cette clause est spécifiée juste après la clause WHERE ou après la SELECT NDEPT, COUNT(*)
clause FROM si la clause WHERE n’existe pas. FROM EMP
WHERE POSTE = 'SECRETAIRE'
Exemple1 GROUP BY NDEPT HAVING COUNT(*) > 1;
SELECT NDEPT, COUNT(*)
FROM EMP
GROUP BY NDEPT; 29 30
8
04/12/2021
SELECT NDEPT FROM EMP1 • Les fonctions de groupes ne traitent pas les valeurs
MINUS nulles
SELECT NDEPT FROM EMP2;
SELECT ne, sal + comm as salaireTotal SELECT ne, sal + NVL(comm,0) as salaireTotal
FROM employe; FROM employe;
• Dans la suite, la fonction NVL est utilisée pour convertir les valeurs
NULL en 0.
35 36
9
04/12/2021
Manipulation des Données Via des requêtes SELECT Manipulation des Données Via des requêtes SELECT
1. Insertion des données
3. Suppression des données
INSERT INTO table (col1,..., coln )
DELETE FROM table
SELECT ...
WHERE condition (utilisant une requête SELECT )
Exemple Enregistrer la participation
INSERT INTO PARTICIPATION (MATR, NDEP) de BJAOUI au groupe
SELECT MATR, 10 FROM EMP département 10 :
WHERE NOME = ‘BJAOUI’;
Supprimer les employés ayant un
2. Modification des données salaire supérieur à la moyenne
UPDATE table des salaires des secrétaires
Exemple
SET (col1, col2,...) = (SELECT ...)
WHERE prédicat
DELETE FROM emp
Donner à GHARBI un salaire 10 % WHERE SAL > (SELECT AVG(SAL) FROM EMP
Exemple
au dessus de la moyenne des WHERE POSTE =‘SECRETAIRE’);
UPDATE EMP
SET SAL = (SELECT AVG(SAL) * 1.10 salaires des secrétaires
FROM EMP
WHERE POSTE = 'SECRETAIRE') 39 40
WHERE NOME = ‘GHARBI’;
10