0% ont trouvé ce document utile (0 vote)
4 vues40 pages

Cours SQL

Le document présente un cours sur le langage SQL, abordant des concepts tels que la projection, la restriction, le tri, les jointures, les opérations ensemblistes et les fonctions d'agrégation. Il décrit également la création, la mise à jour et la suppression de données dans des bases de données relationnelles. Enfin, il traite des contraintes d'intégrité et des types de données associés aux attributs dans les tables.

Transféré par

zeinebouyislick
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
0% ont trouvé ce document utile (0 vote)
4 vues40 pages

Cours SQL

Le document présente un cours sur le langage SQL, abordant des concepts tels que la projection, la restriction, le tri, les jointures, les opérations ensemblistes et les fonctions d'agrégation. Il décrit également la création, la mise à jour et la suppression de données dans des bases de données relationnelles. Enfin, il traite des contraintes d'intégrité et des types de données associés aux attributs dans les tables.

Transféré par

zeinebouyislick
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

ISGI – Licence GI

Cours
Base de données relationnelles
2024 2025

Mohamed El Hacen Mohamed Dyla


mohdyla@[Link]
cours 4
Le langage SQL

LMD
présentation du SQL
Projection
restriction
Le tri
Produit cartésien
jointure
Union, intersection, EXCEPT)
Fonctions d’agrégation,
sous-requetes,insert,update,drop
LDD : CREATE, DROP, ALTER
Introduction : présentation du SQL

SQL
Structured Query Language

Le langage structuré de requêtes permet :


◼ De manipuler les bases de données quel que soit le
logiciel utilisé
◼ De réaliser des requêtes

◼ SELECT
Les instructions SQL ◼ FROM
◼ WHERE
◼ ORDER BY

15
Construction d'une requête SQL
Quoi ? quelles informations obtenir ?

Où ? dans quelles tables ?

Comment ? (jointures, restrictions…)


La projection
Thème - Requête n° 1 :
Afficher la liste des adhérents (Nom, Prénom, Code
postal, Ville)

Quoi ? SELECT Nom_adh, Prénom_adh, Cp_adh, Ville_adh

Où ? FROM ADHERENT
La projection

SELECT Critère de projection. C’est un ordre qui décrit les


champs que l’on désire extraire et afficher.

FROM C’est une clause qui précise les tables


nécessaires à la requête.
La présence de FROM est obligatoire et suit
SELECT.
La restriction

Thème - Requête n° 2 :
Afficher la liste des adhérents (numéro,
nom, prénom, index) dont l’index est
inférieur à 20
Quoi ? SELECT Num_adh, Nom_adh, Prénom_adh, Index_adh

Où ? FROM ADHERENT

Comment ? WHERE Index_adh < 20


La restriction

C’est une clause qui décrit les critères de


restriction.
S’il n’y a pas de restriction, la ligne WHERE
n’existe pas.
Le tri

Thème - Requête n° 3 :
Afficher la liste des adhérents (nom,
prénom, code postal, ville) dans
l’ordre alphabétique du nom.

Quoi ? SELECT Nom_adh, Prénom_adh, Cp_adh, Ville_adh

Où ? FROM ADHERENT

ORDER BY Nom_adh
Tri sur le nom
Le tri

C’est une clause qui décrit les critères de TRI.


L’ordre croissant est traduit par ASC.

L’ordre décroissant est traduit par DESC.


En l’absence de paramètre, c’est ASC qui est
retenu par défaut.
Traduction du produit cartésien

SELECT *
FROM relation1, relation2

Produire toutes les combinaisons possibles de


fournisseur et de pièce
SELECT *
FROM fournisseur, pièce Exp. Algébr.
équivalente
PRODUCT ( fournisseur,
pièce )
11
Traduction de la jointure

SELECT attribut1 [,attribut2, …]


FROM relation1,relation2 [,relation3,…]
WHERE condition

Cette commande SELECT combine


–produit cartésien entre relation1,relation2, relation3…
–restriction sur condition
–Projection sur attribut1,attribut2…

N.B. Il faut préfixer par un nom de relation chaque attribut


commun à plusieurs relations
12
Jointure : exemple de requête

projection
nop,[Link]…
Liste des ventes avec le nom du
fournisseur

restriction
[Link] =
[Link]
SELECT nop,[Link],nomf
FROM vente, fournisseur

Produit cartésien
WHERE [Link] = [Link] x

vente fournisseur

Arbre algébrique correspondant à


l’expression SQL (SGBDR)

13
Jointure : utilisation d'alias

Utilisation d’alias pour alléger l’écriture d'une requête incluant des jointures

Liste des ventes avec le nom du fournisseur


SELECT [Link],[Link],[Link]
FROM vente v, fournisseur f
WHERE [Link] = [Link]

➢vente alias v
➢ fournisseur alias f

14
Opérations ensemblistes
(UNION, INTERSECT, EXCEPT)
Noms et prénoms des employés qui sont aussi des passagers

Employé Passager
noEmp nomEmp prénomEmp noPass nomPass prénomPass
10 Henry John 4 Harry Peter
15 Conrad James 78 Conrad James
35 Jenqua Jessica 9 Land Robert
46 Leconte Jean 466 Leconte Jean

(SELECT nomEmp as nom, prénomEmp as prénom


FROM Employé)
nom prénom
INTERSECT
(SELECT nomPass as nom, prénomPass as prénom Conrad James
FROM Passager) Leconte Jean

15
Expression de calcul dans la liste de
projection (partie SELECT)

Liste des numéros de pièce avec le prix avant et


après inclusion d’une taxe de 10%

SELECT nop, prix, prix*1.1 as prixTTC


FROM pièce

nop prix prixTTC


1 1.5 1.65
2 2 2.2
3 2.5 2.75

16
Expression de calcul dans la condition
(partie WHERE ou partie SELECT)
Une condition peut comporter une expression de calcul

Liste des numéros de pièce dont le prix TTC dépasse 2€


SELECT nop
FROM pièce
WHERE prix*1.1
> 2
nop
2
3

17
Expression de calcul dans la condition
(partie WHERE)

Une expression peut aussi faire appel à des fonctions


Numéro et nom des pièces dont le nom comporte 4
caraScEtèLrEeCsTou plunsop, nomp
FROM pièce
WHERE CHARACTER_LENGTH(nomp) >= 4

nop nomp
2 écrou
3 boulon
CHARACTER_LENGTH ( c ) : fonction retournant le nombre de caractères
de la chaîne c
18
Fonctions d’agrégation (ou de groupe)

Elles opèrent sur un groupe de valeurs d’attributs et produisent


une valeur résultat
Nombre total de pièces dans la relation pièce
SELECT COUNT(*) AS nb_pieces nb_pieces
FROM pièce 3

Prix moyen des pièces


SELECT AVG (prix) AS prix_moyen prix_moyen
FROM pièce 2

Prix maximal des pièces (maximum de la colonne prix)


prix_maxi
SELECT MAX(prix) AS prix_maxi
FROM pièce 2.5
19
Fonctions d’agrégation (ou de groupe)

Prix minimal des pièces (minimum de la


coSloEnLEnCeTpMrIixN)(prix) AS prix_mini prix_mini
FROM pièce 1.5

Somme des prix des pièces


SELECT SUM(prix) AS somme_totale somme_totale
FROM pièce 6

Somme des prix des pièces dont le numéro est supérieur ou


égaSlELàE2CT SUM (prix) AS somme
somme
FROM pièce
WHERE nop >= 2 4.5

20
Tri du résultat d’une requête (ORDER BY)

Possibilité de trier les résultats d’une requête par rapport à


une ou plusieurs colonnes
SELECT colonne(s)
FROM relation(s) [WHERE condition]
ORDER BY colonne(s) [ASC|DESC]

ASC : ordre ascendant (par défaut)
DESC : ordre descendant

no p
liste des pièces par ordre décroissant d u prix nomp prix
SELECT * 3 boulon 2.5
FROM pièce
2 écrou 2
ORDER BY prix DESC
1 vis 1.5
21
Requêtes imbriquées
Opérateur IN / NOT IN
■ Lerésultat d’une commande SELECT peut être utilisé
dans la condition d’une autre commande SELECT

SELECT attribut(s)
FROM relation(s)
WHERE expression [NOT]IN (sous-requête)

On teste l’appartenance (ou non appartenance) de la valeur


de l'expression à l'ensemble retourné par la sous-requête

22
Requêtes imbriquées
Opérateur IN / NOT IN

Nom des pièces commandées par le fournisseur


numéro 1

SELECT nomp
FROM pièce
WHERE nop IN
(SELECT nop
FROM vente
WHERE nof = 1)

23
b) Définition de données
Suppression d'un schéma de relation
DROP TABLE nom-relation

✓ suppression du schéma de la relation


✓ suppression des tuples de la relation

Supprimer le schéma de la table


vente
DROP TABLE vente
✓ Suppression de tous les tuples de la table Client

✓ Suppression du schéma de la table vente


✓ On ne plus peut insérer de nouveaux tuples dans la table vente
24
c) Mise à jour des données
Ajout de tuples (INSERT)
INSERT INTO nom-relation [(attr1, attr2…)]
VALUES (val-attr1, val-attr2, … )

Ajout de deux pièces dans la relation pièce


INSERT INTO pièce VALUES (4,'clou’,1.99)
INSERT INTO pièce (nop,nomp) VALUES (5,'cheville’)

nop nomp prix


1 vis 1.5
N.B. Les attributs non insérés
2 écrou 2 sont positionnés à NULL
3 boulon 2.5
4 clou 1.99
5 cheville NULL
25
c) Mise à jour des données
Modification de tuples (UPDATE)
UPDATE nom_relation
SET attr1=exp1 [,attr2=exp2 … ]
[WHERE condition ]

Positionner à 0.99 le prix de la pièce numéro 4


UPDATE pièce SET prix= 0.99 WHERE nop=4

Augmenter de 5% le prix des pièces dont le nom


commence par c
UPDATE pièce
SET prix= prix*1.05
WHERE nomp LIKE 'c%'

26
c) Mise à jour des données
Suppression de tuples (DELETE)

DELETE [FROM] relation [WHERE condition]

Supprimer les fournisseurs de Lyon:


DELETE fournisseur WHERE ville = ‘Lyon’

Supprimer tous les tuples de la table vente :


DELETE vente
✓ suppression de tous les tuples de la table Client
✓ le schéma de la table vente existe toujours
✓ On peut insérer des nouveaux tuples dans la table vente

27
b) Définition de données

1. Création d'un schéma de relation


➢ CREATE TABLE

2. Suppression d'un schéma de relation


➢ DROP TABLE

28
b) Définition de données
Création d'un schéma de
rCerléaertileosnschémas des tables pièce, fournisseur,vente
pièce (nop, nomp, prix)
fournisseur (nof,nomf,ville)
vente (nop,nof )

CREATE TABLE pièce


(nop integer,
nomp varchar(50) NOT NULL,
prix float,
PRIMARY KEY (nop))

CREATE TABLE fournisseur


(nof integer,
nomf varchar(80) NOT NULL,
ville varchar(60),
PRIMARY KEY (nof))

29
b) Définition de données
Création d'un schéma de
relation
CREATE TABLE vente
(nop integer REFERENCES pièce(nop),
nof integer REFERENCES fournisseur(nof),
PRIMARY KEY (nop,nof))

– L'attribut nop dans la table vente fait référence à l'attribut


nop de la table pièce

– L'attribut nof dans la table vente fait référence à l'attribut


nof de la table fournisseur

30
b) Définition de données
Types de données

Type de données d'un attribut = domaine des valeurs

■ INTEGER : nombres entiers


■ FLOAT : nombres réels
■ CHAR(n) : chaînes de caractères de longueur fixe
n
■ VARCHAR(n) : chaînes de caractères de longueur
variable et de longueur maximale n

31
Exemple de base de données

32
Exemple de base de données

33
Contraintes d’intégrité

34
Contraintes d’intégrité sur un attribut

35
Contraintes d’intégrité sur une table

36
Groupement

37
Groupement

38
Groupement

39
Groupement

40

Vous aimerez peut-être aussi