0% ont trouvé ce document utile (0 vote)
74 vues44 pages

Requêtes SQL : Guide Complet

Le document décrit le langage SQL et ses principales fonctionnalités, notamment la création et la manipulation de tables, les requêtes de sélection, d'insertion, de mise à jour et de suppression, ainsi que les jointures entre tables.

Transféré par

Ali Sbibih
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Ordre de tri,
  • Clés étrangères,
  • Sélection conditionnelle,
  • Jointures,
  • Requêtes de jointure,
  • Mise à jour conditionnelle,
  • Gestion des résultats,
  • Utilisation de AVG,
  • Exemples pratiques,
  • Insertion de données
0% ont trouvé ce document utile (0 vote)
74 vues44 pages

Requêtes SQL : Guide Complet

Le document décrit le langage SQL et ses principales fonctionnalités, notamment la création et la manipulation de tables, les requêtes de sélection, d'insertion, de mise à jour et de suppression, ainsi que les jointures entre tables.

Transféré par

Ali Sbibih
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Ordre de tri,
  • Clés étrangères,
  • Sélection conditionnelle,
  • Jointures,
  • Requêtes de jointure,
  • Mise à jour conditionnelle,
  • Gestion des résultats,
  • Utilisation de AVG,
  • Exemples pratiques,
  • Insertion de données

SQL

Structured Query Language

ESG Prépas 2012/2013


Langages de requêtes
 Types des requêtes SQL :

 Langage de Définition de Données ( LDD )


 Création des tables
 Modifications des structures des tables.
 Suppression des tables.
 …
 Langage de Manipulation de Données ( LMD )
 Sélection des données.
 Insertion des données.
 Modifications des données.
 Suppression des données.
Langage de définition des données (LDD)

Création d’une table :

Exercice :
Créer la table : Clients (num, nom, dateNaissance)

Solution :
CREATE TABLE Clients (
num numeric,
nom text,
dateNaissance date,
PRIMARY KEY (num)
)
Langage de définition des données (LDD)
Création d’une table :
Exercice :
Créer la table : Clients (num, nom, dateNaissance,id_ville)
Villes (id, nom)
Solution :
CREATE TABLE Clients (
num numeric,
nom text,
dateNaissance date,
PRIMARY KEY (num)
FOREIGN KEY (id_ville) references VILLES(id)
)
Langage de définition des données
Modification d’une table :
ALTER TABLE Table ADD COLUMN NomCol Type
ALTER TABLE Table DROP COLUMN NomCol

Suppression d’une table :


DROP TABLE NomTable

Exercice : Soit la table suivante : Clients(num,nom,dateNaissance)


1- Ajouter la colonne suivante « prenom » de type Text.
2- Supprimer la colonne « dateNaissance »
3- Supprimer la table Clients.

Solution :

1- ALTER TABLE Clients ADD COLUMN prenom TEXT


2- ALTER TABLE DROP COLUMN dateNaissance
3- DROP TABLE Clients
Langage de manipulation des données
LMD

 Sélection des données.


 Insertion des données.
 Modifications des données.
 Suppression des données.
Insertion Mises à jour

 Insertion d’une nouvelle ligne dans une table :

INSERT INTO Table VALUES(Val1,Val2,….)

NB : Si « Val » est de type TEXT ou DATE, il faut


l’écrire entre deux quottes.
Insertion Mises à jour

Exercice :
Soit la table suivante
Etudiant(Num,Nom,Prenom,Age)
- Insérer l’étudiant suivant sachant que le dérnier
étudiant dans la table a le numéro 4 :
Omari Mehdi 21 ans
Solution :
Insert into Etudiant values(5,’Omari’,’Mehdi’,21);
Modification

 Modifier des lignes dans une table :

UPDATE Table
SET column1=Val1,column2=Val2,…
[WHERE condition]
Modification
Table etudiants :

Pour chaque requête donner le nombre de lignes affectées et


le changement appliqué:

Update etudiants set Nom=‘Yaakoubi’ where ID=1


Update etudiants set Prenom=‘Ayman’ where ID=2
Update etudiants set Nom=‘Test’,Prenom=‘Test’ where Age=20
Update etudiants Set Age=30
Update etudiants set Age=Age+1
Suppression

 Supprimer des lignes dans une table :

DELETE FROM Table


[WHERE condition]
Suppression
Table etudiants :

Pour chaque requête donner le nombre de lignes supprimées :

Delete from etudiants where ID=2


Delete from etudiants where Age=20
Delete from etudiants where Prenom=‘Youssef’
Delete from etudiants where Age=20 or Prenom=‘Sara’
Delete from etudiants
Sélection des données : SELECT
Syntaxe

SELECT <liste d’attributs projetés>

FROM <liste des tables>

[ WHERE <liste des critères de restriction et de jointure> ]


[ GROUPE BY <liste des attributs de regroupement des données> ]

[ HAVING <liste des critères sur les groupe des données> ]

[ ORDER BY <attributs de trie> ]


Sélection des données : SELECT
Table etudiants :

• Listes des noms, prénom et age des étudiants :


SELECT Nom, Prenom, Age FROM etudiants

• Liste des toutes les informations sur les étudiants :


SELECT ID, Nom, Prenom, Age, Note, GSM FROM etudiants
SELECT * FROM etudiants
Sélection des données : SELECT
Table etudiants :

• Listes des prénom des étudiants :


SELECT Prenom FROM etudiants

• Listes des prénom des étudiants sans répétition :


SELECT DISTINCT Prenom FROM etudiants
Sélection et tri des données
• Listes des étudiants trié en ordre croissant par nom:

SELECT * FROM etudiants ORDER BY nom ASC


 SELECT * FROM etudiants ORDER BY nom
Sélection et tri des données
• Listes des étudiants trié en ordre croissant prénom puis par Age :

SELECT * FROM etudiants ORDER BY prenom,age


Sélection et tri des données
• Listes des étudiants trié en ordre croissant par nom puis par prénom et
par Age :

SELECT * FROM etudiants ORDER BY nom,prenom,age


Sélection et tri des données
• Listes des étudiants trié en ordre décroissant par nom:

SELECT * FROM etudiants ORDER BY nom DESC

• Listes des étudiants trié en ordre décroissant prénom puis par Age :

SELECT * FROM etudiants ORDER BY prenom,age DESC

• Listes des étudiants trié en ordre décroissant par nom puis par prénom et
par Age :

SELECT * FROM etudiants ORDER BY nom,prenom,age DESC


Sélection et tri des données
• Listes des étudiants trié en ordre croissant par Age et décroissant par Note :

SELECT * FROM etudiants ORDER BY Age ASC, Note DESC


Fonctions

 5 fonctions prédéfinies :

COUNT, SUM, MIN, MAX, AVG

 Principe :
 S'applique à l'ensemble des valeurs d'une colonne d'une table
 Produit une valeur unique
Fonctions - Exemples
Quelle est la meilleure note ?
Resultats (de Pierre) SELECT MAX(Note) FROM Resultats  15
Matiere Coef Note Quelle est la plus mauvaise note ?
Maths 4 15 SELECT MIN(Note) FROM Resultats 9

Sc Nat 3 9 Quelle la somme pondérée des notes ?


SELECT SUM(Note*Coef) FROM Resultats  193
Sc Phy 3 12
Quelle est la moyenne (pondérée) de Pierre ?
Français 2 13
SELECT SUM(Note*Coef)/SUM(Coef) FROM Resultats
Sc Hum 2 11
 12,06
Anglais 1 10 Nombre de matières?

Sport 1 12
SELECT COUNT(*) FROM Resultats
SELECT COUNT(Matiere) FROM Resultats
La clause WHERE

 Syntaxe :

SELECT attrs
FROM tables
WHERE condition

Rq : Condition peut être simple ou composée.


Opérateurs

La condition peut formée sur des noms d'attributs ou des


constantes avec :

 Opérateurs de comparaison : =, >, <, <=, >=, <>

 Opérateurs logiques : AND, OR, NOT

 Autres opérateurs : IN, BETWEEN+AND, LIKE


Opérateurs
 Liste des étudiants ayant une note plus que 14 :
SELECT * FROM etudiants WHERE note>=14

 Liste des étudiants qui ont 19 ans :


SELECT * FROM etudiants WHERE age=19

 Liste des noms et prénoms des étudiants qui n’ont


pas 19 ans :
SELECT nom,prenom FROM etudiants WHERE
age<>19
Opérateurs
 Liste des étudiants qui n’on pas de GSM :
SELECT * FROM etudiants WHERE gsm=''
SELECT * FROM etudiants WHERE gsm is NULL

 Liste des étudiants qui eu des notes entre 14 et 19 :


SELECT * FROM etudiants WHERE note>=14 AND
note<=19

SELECT * FROM etudiants WHERE note


BETWEEN 14 AND 19
Opérateurs
 Liste des étudiants qui ont eu les notes 14,18 et
19 :
SELECT * FROM etudiants WHERE note=14
OR note=18 OR note=19
SELECT * FROM etudiants WHERE note IN
(14,18,19)
 Liste des étudiants dont le prénom commence
par ‘H’ :
SELECT * FROM etudiants WHERE prenom
LIKE 'H%'
Opérateurs

 Liste des étudiants dont le nom contient la lettre ‘A’ :


SELECT * FROM etudiants WHERE nom LIKE '%A%'

 Liste des étudiants dont le nom se termine par la lettre ‘IM’ :


SELECT * FROM etudiants WHERE nom LIKE '%IM'

 Liste des étudiants dont le prénom commence par ‘YOSR’ et


contient au plus 5 caractères :
SELECT * FROM etudiants WHERE prenom LIKE 'YOSR_'
Jointure entre tables

Classes(CODE, NomCL)
Etudiants(ID, Nom, Prenom, #ID_CLASSE)

Etudiants
Classes
ID
Nom CODE
Prenom NomCL
ID_CLASSE
Jointure entre tables

Classes(CODE, NomCL)
Etudiants(ID, Nom, Prenom, #ID_CLASSE)
CODE NomCL
1 ECT 2
2 MP

ID Nom Prenom ID_CLASSE


1 Kania Saad 1
2 Mourabit Leila 1
3 Jalal Taoufik 2
Jointure entre tables

SELECT * FROM etudiants, classes

ID Nom Prenom ID_CLASSE CODE NomCL


1 Kania Saad 1 1 ECT 2
1 Kania Saad 1 2 MP
2 Mourabit Leila 1 1 ECT 2
2 Mourabit Leila 1 2 MP
3 Jalal Taoufik 2 1 ECT 2
3 Jalal Taoufik 2 2 MP
Jointure entre tables

SELECT * FROM etudiants, classes

ID Nom Prenom ID_CLASSE CODE NomCL


1 Kania Saad 1 1 ECT 2
2 Kania Saad 1 2 MP
3 Mourabit Leila 1 1 ECT 2
4 Mourabit Leila 1 2 MP
5 Jalal Taoufik 2 1 ECT 2
6 Jalal Taoufik 2 2 MP
Jointure entre tables

Classes(CODE, NomCL)
Etudiants(ID, Nom, Prenom, #ID_CLASSE)

SELECT * FROM Etudiants, Classes


WHERE ID_CLASSE=CODE
Jointure entre tables

SELECT Nom,Prenom,NomCL FROM Etudiants,


Classes WHERE ID_CLASSE=CODE
Nom Prenom NomCL
Kania Saad ECT 2
Mourabit Leila ECT 2
Jalal Taoufik MP
Jointure entre tables
Classes(ID, NomCL)
Etudiants(ID, Nom, Prenom, #ID_CLASSE)

SELECT * FROM Etudiants, Classes


WHERE ID_CLASSE= ID

SELECT * FROM Etudiants, Classes


WHERE ID_CLASSE=Classes.ID
Jointure entre tables

Immeuble (ID, adresse, ville)


Appartement(ID , Numero, #ID_IMMEUBLE)
Chambre(ID, surface, #ID_APPARTEMENT)

Liste des surfaces des chambres situé à Rabat :


SELECT Chambre.ID,surface FROM
Chambre,Appartement,Immeuble WHERE
ID_APPARTEMENT=Appartement.ID AND
ID_IMMEUBLE=Immeuble.ID AND ville='Rabat'
Partitionnement des résultats

Syntaxe

GROUP BY liste_attributs
HAVING condition avec fonction
Cette clause regroupe les résultats par valeur selon la condition

Dans l'ordre, on effectue


 la sélection SELECT … FROM … WHERE ….

 le partitionnement GROUP BY

 on retient les partitions intéressantes HAVING

 on trie avec ORDER BY.


Partitionnement des résultats - Exemples
Quelle est la note moyenne pour chaque coefficient ?

Résultats (de Pierre)


Matière Coef Note Matière Coef Note

Maths 4 15 Maths 4 15

Sc Hum 2 11 Sc Nat 3 9

Sc Nat 3 9 Sc Phy 3 12

Anglais 1 10 Anglais 1 10

Français 2 13 Sport 1 12

Sc Phy 3 12 Français 2 13

Sport 1 12 Sc Hum 2 11
Partitionnement des résultats - Exemples

Résultats (de Pierre)


Quelle est la note moyenne pour chaque coefficient ?
Matière Coef Note
SELECT coef, Avg(note) as Moyenne Coef Moyenne
Maths 4 15
1 11
FROM Résultats
Sc Hum 2 11 2 12
GROUP BY coef;
Sc Nat 3 9 3 10.5
4 15
Anglais 1 10
Quels sont les coefficients auxquels participe une seule
Français 2 13 matière ?

Sc Phy 3 12 SELECT coef


Coef
FROM Résultats GROUP BY coef 4
Sport 1 12
HAVING count(*)=1;
Opérateurs ensemblistes

 Union
L’objectif de la commande UNION de SQL est de
combiner ensemble les résultats de deux requêtes.
 Intersect
Donne l’intersection des résultats de deux requêtes
SQL.
 Minus
Donne la différence des résultats de deux requêtes
SQL.
Exemples Opérateurs Ensemblistes
UNION

 retrouver toutes les dates où il y a des ventes

SELECT Date FROM Store_Information


UNION
SELECT Date FROM Internet_Sales
MINUS

 retrouver toutes les dates où il y a des ventes


au magasin, mais pas sur Internet.

SELECT Date FROM Store_Information


MINUS
SELECT Date FROM Internet_Sales
INTERSECT

 retrouver toutes les dates où il y a les deux


types de ventes

SELECT Date FROM Store_Information


INTERSECT
SELECT Date FROM Internet_Sales

Vous aimerez peut-être aussi