Vous êtes sur la page 1sur 37

SQL

SQL est à la fois :

Un langage de définition des données (CREATE , ALTER,


DROP)
SQL • Un langage de manipulation de données (UPDATE ,INSERT ,
DELETE)
• Un langage d’interrogation (SELECT)
▪ Select :
Les requêtes ▪ La principale commande du langage d’interrogation

SQL ▪ Syntaxe:
SELECT SELECT liste_attributs
FROM nom_relation
liste des libellés et des Quantités par Produit

SELECT SELECT LIB,QTES


FROM PRODUIT
▪ Pour éliminer les doubles il faut rajouter le mot clé DISTINCT

SELECT DISTINCT LIB,QTES


FROM PRODUIT

SELECT
SELECT *
FROM nom-relation
WHERE qualification

Cette opération permet de sélectionner les tuples


d’une relation vérifiant une certaine condition
La qualification peut faire appel aux opérateurs
SELECT suivants:
Opérateurs logiques: AND, OR, NOT
Comparateurs de chaînes: IN, BETWEEN, LIKE
Opérateurs arithmétiques: +, -, /, %
Comparateurs arithmétiques: =,<, >, <>
▪ Liste des Produits de Couleur ‘bleu' dont la Quantité
est supérieure à 10
SELECT *
SELECT FROM PRODUIT
WHERE COUL = ‘bleu’ AND QTES > 10 ;
SELECT *
FROM PRODUIT
WHERE QTES BETWEEN 80 AND 100

SELECT SELECT *
FROM PRODUIT
WHERE COUL IN (‘rouge’ , ‘bleu’)
▪ liste des produits dont le libellé commence par ‘ca

SELECT *
FROM PRODUIT
WHERE LIB LIKE ‘ca%’ ;

▪ liste des numéros et libellés des produits de couleurs


noir ou dont la quantité est supérieure à 80
SELECT SELECT NP, LIB
FROM PRODUIT
WHERE COUL = ‘noir’
OR QTES > 80 ;
▪ Il est possible de trier les résultats suivant l’ordre
ascendant ou descendant d’un ou plusieurs attributs en
ajoutant la clause:

ORDER BY . . DESC ou ORDER BY . . ASC

SELECT
SUM : Permet de calculer la somme des valeurs d’une colonne

Exemple: affichage du total des salaires versés

SELECT SUM (salaire) FROM employé;

AVG: Permet de calculer la moyenne de toutes les valeurs d’une


colonne

Exemple: affichage de moyenne (salaire) des employés

Fonctions SQL SELECT AVG (salaire) FROM employé;

standards COUNT : Permet de compter le nombre de lignes d’une table

Exemple: affichage du nombre total des salariés

SELECT COUNT (*) FROM employé;

MAX / MIN: Renvoie la valeur maximum ou minimum d’une


colonne
▪ Insert : ajout de lignes
▪ La syntaxe :

▪ Exemple:
INSERT ▪ La commande suivante ajoute une ligne dans la table
produit
▪ Update : permet de modifier les valeurs d’un ou
plusieurs champs
▪ La syntaxe :

UPDATE
▪ Delete: permet de supprimer des lignes d’une table
▪ La syntaxe:

▪ Exemple:
▪ supprimer tous les produits achetés par Ahmed
DELETE
▪ La jointure :
▪ Est une opérations permet l’extraction des données de
plusieurs tables

▪ Exemple
▪ Soit les deux tables suivantes(Client, Commande)

La jointure
Client
Client Commande idc nom ville
Idc Idcmnd 1 Atelier graphique Casablanca
Nom Date_cmd
ville 2 Ste de fer rabat
Montant
idc 3 Ste atlas rabat
4 Porto imports co marrakech

Donner Les clients (nom de client et ville) ayant passé Commande


des commandes durant le mois de janvier 2016 ? idcmnd Date_cmd montant idc
1 11/02/2015 5000 1
SELECT Client.Nom, Client .Ville
FROM Client, Commande 2 25/11/2015 3500 2
WHERE Client.idc=Commande.idc 3 04/12/2015 25851 3
AND Datecmnd BETWEEN ’01/01/2016’ and ’31/01/2016’ ;
4 12/12/2015 36952 3
5 02/01/2016 12000 4
6 03/01/2016 5800 4
Client Requête
idc nom ville SELECT Client.Nom, Client .Ville
1 Atelier graphique Casablanca FROM Client, Commande
WHERE Client.idc=Commande.idc
2 Ste de fer rabat
3 Ste atlas rabat
4 Porto imports co marrakech Résultat de la requête

Nom ville

Commande Atelier graphique Casablanca


idcmnd Date_cmd montant idc
1 11/02/2015 5000 1
2 25/11/2015 3500 2
3 04/12/2015 25851 3
4 12/12/2015 36952 3
5 02/01/2016 12000 4
6 03/01/2016 5800 4
Client Requête
idc nom ville SELECT Nom, Ville
1 Atelier graphique Casablanca FROM Client, Commande
WHERE Client.idc=Commande.idc
2 Ste de fer rabat
3 Ste atlas rabat
4 Porto imports co marrakech Résultat de la requête

Nom ville

Commande Atelier graphique Casablanca


idcmnd Date_cmd montant idc Ste de fer rabat
1 11/02/2015 5000 1
2 25/11/2015 3500 2
3 04/12/2015 25851 3
4 12/12/2015 36952 3
5 02/01/2016 12000 4
6 03/01/2016 5800 4
Client Requête
idc nom ville SELECT Nom, Ville
1 Atelier graphique Casablanca FROM Client, Commande
WHERE Client.idc=Commande.idc
2 Ste de fer rabat
3 Ste atlas rabat
4 Porto imports co marrakech Résultat de la requête

Nom ville

Commande Atelier graphique Casablanca


idcmnd Date_cmd montant idc Ste de fer rabat
1 11/02/2015 5000 1
Ste atlas rabat
2 25/11/2015 3500 2
3 04/12/2015 25851 3
4 12/12/2015 36952 3
5 02/01/2016 12000 4
6 03/01/2016 5800 4
Client Requête
idc nom ville SELECT Nom, Ville
1 Atelier graphique Casablanca FROM Client, Commande
WHERE Client.idc=Commande.idc
2 Ste de fer rabat
3 Ste atlas rabat
4 Porto imports co marrakech Résultat de la requête

Nom ville

Commande Atelier graphique Casablanca


idcmnd Date_cmd montant idc Ste de fer rabat
1 11/02/2015 5000 1
Ste atlas rabat
2 25/11/2015 3500 2
3 04/12/2015 25851 3 Ste atlas rabat
4 12/12/2015 36952 3
5 02/01/2016 12000 4
6 03/01/2016 5800 4
Client Requête
idc nom ville SELECT Nom, Ville
1 Atelier graphique Casablanca FROM Client, Commande
WHERE Client.idc=Commande.idc
2 Ste de fer rabat
3 Ste atlas rabat
4 Porto imports co marrakech Résultat de la requête

Nom ville

Commande Atelier graphique Casablanca


idcmnd Date_cmd montant idc Ste de fer rabat
1 11/02/2015 5000 1
Ste atlas rabat
2 25/11/2015 3500 2
3 04/12/2015 25851 3 Ste atlas rabat
4 12/12/2015 36952 3 Porto imports co marrakech
5 02/01/2016 12000 4
6 03/01/2016 5800 4
Client Requête
idc nom ville SELECT Nom, Ville
1 Atelier graphique Casablanca FROM Client, Commande
WHERE Client.idc=Commande.idc
2 Ste de fer rabat
3 Ste atlas rabat
4 Porto imports co marrakech
Résultat de la requête
Nom ville

Commande Atelier graphique Casablanca


idcmnd Date_cmd montant idc Ste de fer rabat
1 11/02/2015 5000 1
Ste atlas rabat
2 25/11/2015 3500 2
3 04/12/2015 25851 3 Ste atlas rabat
4 12/12/2015 36952 3 Porto imports co marrakech
5 02/01/2016 12000 4
Porto imports co marrakech
6 03/01/2016 5800 4
Résultat de la requête
SELECT Nom, Ville
FROM Client, Commande Nom ville
WHERE Client.idc=Commande.idc Porto imports co marrakech
AND Datecmnd BETWEEN ’01/01/2016’ and ’31/01/2016’ ;
Porto imports co marrakech

SELECT DISTINCT Nom, Ville Résultat de la requête


FROM Client, Commande Nom ville
WHERE Client.idc=Commande.idc
Porto imports co marrakech
AND Datecmnd BETWEEN ’01/01/2016’ and ’31/01/2016’ ;
Exemples
Exercice 01 :

Soit le modèle relationnel suivant relatif à une bdd sur des représentations musicales .

REPRESENTATION (n°représentation, titre_représentation, lieu)


MUSICIEN (nom, n°représentation*)
PROGRAMMER (date, n°représentation*, tarif)
Questions :
1 – Donner la liste des titres des représentations.
2 – Donner la liste des titres des représentations ayant lieu à l’opéra Bastille.
3 – Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent.
4 – Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96.
1 – Donner la liste des titres des représentations.

SELECT titre_représentation FROM REPRESENTATION ;

2 – Donner la liste des titres des représentations ayant lieu à l’opéra Bastille.

SELECT titre_représentation FROM REPRESENTATION


WHERE lieu="Opéra Bastille" ;

3 – Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent.

SELECT MUSICIEN.nom, REPRESENTATION. titre_représentation


FROM MUSICIEN, REPRESENTATION
WHERE MUSICIEN.n°représentation = REPRESENTATION.n°représentation ;

4 – Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96.

SELECT REPRESENTATION. titre_représentation, REPRESENTATION. lieu, PROGRAMMER.tarif


FROM REPRESENTATION, PROGRAMMER
WHERE PROGRAMMER.n°représentation = REPRESENTATION.n°représentation AND PROGRAMMER. date='14/06/96’ ;
Exercice 2:

ETUDIANT (N°Etudiant, Nom, Prénom)

MATIERE (CodeMat, LibelléMat, CoeffMat)

EVALUER (N°Etudiant#, CodeMat#, Date_Evaluation, Note)

Questions :

Créer les requêtes SQL suivantes :

1. Quel est le nombre total d’étudiants ?

2. Quelle est, parmi l’ensemble des notes, la note la plus haute et la note la plus basse ?
Les requêtes SQL

1 - Quel est le nombre total d'étudiants ?

SELECT COUNT(*) FROM ETUDIANT ;

2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la
plus basse ?

SELECT MIN(Note), MAX(Note) FROM EVALUER ;


Touriste Chambre
NumCN Réserve
NumCh
Nom
NumCN NbrLits
Adresse NumH
NumCh
Téléphone
DateDeb
DateFin
1. Les touristes venus de la wilaya de Mila ?
2. Les touristes venus Batniens ou Sétifiens ?
3. Les touristes ayant passé leur séjour à l’hôtel "El Hotel
Mouradi" ? NumH Station
NomH
4. D’où viennent ces touristes ?
Catégorie
NumSt
Région
5. Les touristes ayant visité l’hôtel "El Mouradi" NbrCham
Altitude
durant le mois de décembre 2010 ? NumSt
6. Quelles sont les chambres réservées de l’hôtel
"Pyramide" ?
7. Quelles sont les chambres non encore réservées
de cet hôtel?
8. Quelle est la station la plus visitée ?
1- select *
From touriste
where adresse=‘Mila’;

2- select *
From touriste
where adresse=‘Batna’ or adresse=‘Sétif’ ;

3- SELECT touriste.*
FROM touriste, chambre, reserver
WHERE chambre.numch=reserver.numch
and reserver.numcn=touriste.numcn
and chambre.numh=(select numh from hotel where nomh='El Mouradi’);

****
SELECT touriste.*
FROM touriste, chambre, reserver,hotel
WHERE chambre.numch=reserver.numch
and reserver.numcn=touriste.numcn
and chambre.numh=hotel.numh from hotel and hotel.nomh='El Mouradi';
5-SELECT touriste.*
FROM touriste, chambre, reserver, hotel
WHERE touriste.NumCN=reserver.NumCN
and reserver.NumCH=chambre.NumCH and chambre.NumH=hotel.NumH and NomH='El Mouradi'
and reserver.DateDeb between ‘01/12/2010’ and ‘31/12/2010’;

6-SELECT distinct chambre.*


from chambre ,reserver,hotel
where hotel.numH=chambre.numH and hotel.nomH='Pyramide' and chambre.numch in(select numch from reserver );

7-SELECT distinct chambre.*


from chambre ,reserver,hotel
where hotel.numH=chambre.numH and hotel.nomH='Pyramide' and chambre.numch not in(select numch from reserver );
EXEMPLE INSERT,UPDATE,DELETE

Employes 1- ajouter les données suivantes:


• Employé n°1 ,ismail, 25ans ,6000,00
Id • Employé n°2, Mohamed, 30, 8000.40
Nom • employé n° 3, Fatima, 29, 6000
Age
salaire

Id Nom Age Salaire


INSERT INTO Employes (Id, Nom, Age, Salaire)
VALUES(1, "Ismail", 25, 6000); 1 Ismail 25 6000
INSERT INTO Employes (Id, Nom, Age, Salaire)
VALUES(2, ‘Mohamed’, 30, 8000,4); 2 Mohamed 30 8000,4

INSERT INTO Employes (Id, Nom, Age, Salaire) 3 Fatima 29 6000


VALUES(3, ‘Fatima’, 29, 6000);
UPDATE

Employes
Id
Nom
Age
salaire

1. mettre à jour le salaire d'un employé en ajoutant 900 Da à son ancien salaire.
2. mettre à jour le salaire de chaque employé en ajoutant 500 Da dont l'âge est supérieur ou égal à 30 ans.

1- UPDATE Employes
SET Salaire=Salaire+900;

2- UPDATE Employes
SET Salaire=Salaire+500
WHERE age>=30;
Table initiale

UPDATE Employes
SET Salaire=Salaire+900;

UPDATE Employes
SET Salaire=Salaire+500
WHERE age>=30;
DELETE
1- supprimer tous les enregistrements de la table
Employes
Employes DELETE FROM Employes;

Id
Nom
Age 2- supprimer tous les Employés ayant salaire égal à
salaire 6900.00
DELETE FROM Employes
Where salaire=6900;

3- supprime l’employé n° 4.

DELETE FROM Employes


Where id=4;
Exercice: Etudiant Matiere
Num Code
Nom Note nomM
Prenom coef
Date_naiss Num
Section Code
noteE

Ecrire les commandes SQL permettant de rechercher :


1.La liste de tous les étudiants.
2.Nom et coefficient des matières.
3.La liste des étudiants dont le nom commence par ‘ben’. Le nombre des étudiants qui ont comme matière
‘12518’.
4.La somme des coefficients des matières.
5.Les noms des étudiants qui une note_examen >10.
6.Afficher les noms et les coefficients des matières étudier par l’étudiant "01234568".
Nom et coefficient des matières.
La liste de tous les étudiants.
select * from Etudiant; select nomM, coef from Matiere;

La liste des étudiants dont le nom commence par ‘ben’. Afficher les noms et les coefficients des matières étudier par
select * from Etudiant where Nom like ‘ben%’; l’étudiant "01234568".

Le nombre des étudiants qui ont comme matière ‘12518’. select matiere.nomM ,matiere.coef
from Matiere,note
select count(*) from note where code=12518;
Where matière.code=note.code and note.num= ‘01234568’;
La somme des coefficients des matières.

select sum (coef) from Matiere;

Les noms des étudiants qui une note_examen >10.


select etudiant.nom ,etudiant.prenom
from etudiant, note
where etudiant.num=note.num and noteE>10

Vous aimerez peut-être aussi