Académique Documents
Professionnel Documents
Culture Documents
Langage SQL
Dr Soumana FOMBA
E-mail : fombasoumana@gmail.com
ITMA – IRT3
Année : 2023-2024
Introduction
Objectifs de SQL
● Créer la structure de la base de données (bd, tables)
● Exécuter les tâches de base de la gestion des données, telle
complexes
● Gérer les privilèges
Exemple
Description
Type
0, 1
BIT un bit valeurs possible (0 ou 1)
Exemple
Description
Type
545454
bigint représente un entier signé de 64 bits [-263,
263-1]
NUMERIC(5,2) :
NUMERIC(p,s) représente une valeur décimale. P designe
895.54, 100.20
le nombre maximale de digits, s le nombre de NUMERIC(4,0) : de 0
à 9999
chiffres après la virgule parmi ces digits
DECIMAL(4,2)
DECIMAL(p,s) Similaire à numeric, préférable pour les
0,20 ; 12,00, 18,50
nombres décimaux, et numeric préférable
pour les entiers avec précisions.
Exemple
Description
Type
‘24-02-2022’
DATE Toute date valide format (aaaa-mm-jj)
‘25-03-2022’
‘10-11-2020
DATETIME Date et heure format (aaaa-mm-jj HH:mn:ss)
12:50:30’
‘10:50:32’
TIME Heure format (HH:mm:ss)
Exemple
DELETE FROM produit WHERE prix_ht>10000;
DELETE p FROM produit AS p WHERE p.prix_ht>50;
UPDATE produit
SET prix_ht= prix_ht*1.2
WHERE prix_ht <500
ville
Bamako
Sikasso
Différence d’ensembles : R − S
Intersection : R ∩ S
L’intersection définit une relation constituée de l’ensemble de tous
les tuples présents à la fois dans R et dans S. (R et S doivent
avoir le même schéma)
Produit cartésien : R × S
Le produit cartésien définit une relation constituée de la
concaténation de chaque tuple de la relation R avec tous ceux de
la relation S.
Cela signifie que chaque tuple de la relation R est associé à
chaque tuple de la relation S pour former toutes les paires
possibles.
R et S n’ont pas forcément le même schéma.
Division : R ÷ S
La division est une opération portant sur deux relations R et S,
telles que le schéma de S est strictement inclus dans celui de R,
qui génère une troisième relation regroupant toutes les parties
d’occurrences de la relation R qui sont associées à toutes les
occurrences de la relation S.
R1 ∪ R2
A1 A2 A3
a1 a2 a3
b1 b2 b3
d1 d2 d3
c1 c2 c3
e1 e2 e3
R1 − R2
A1 A2 A3
b1 b2 b3
d1 d2 d3
R1 ∩ R2
A1 A2 A3
a1 a2 a3
c1 c2 c3
1 2 2 20/11/2021
4 KEITA Amadou 1 2 2 20/11/2021
R3=R1÷R2 R3
Professeur
P1
Même schéma
Degré (R1 ∪ R2) = Degré(R1) = Degré(R2)
Degré (R1 ∩ R2) = Degré(R1) = Degré(R2)
Degré (R1 – R2) = Degré(R1) = Degré(R2)
Schéma quelconque
Jointure naturelle : R S
La jointure naturelle est une équi-jointure des deux relations R et S sur
tous les attributs communs x
Une occurrence de chaque attribut commun est éliminée du résultat
1 TRAORE Issa
1 TRAORE Issa 2 1 1 10/11/2021
2 TOURE Adama
Vente
num num_client ref_prod date
1 4 2 20/11/2021
2 1 1 10/11/2021
Définition : Agrégat
Partitionnement horizontal d’une relation en fonction des valeurs d’un
groupe d’attributs, suivi d’un regroupement par application d’une fonction
de calcul sur ensemble.
Notation :
R = AGREGAT(RELATION ; ATTRIBUT1 ; FONCTION{ATTRIBUT2})
ATTRIBUT1 : est optionnel, dans ce cas, la fonction s’applique sur
l’ensemble des lignes
R3 = AGREGAT(notes ; COMPTE{Note})
COMPTE(Note)
5
Vente 1 4 2 20/11/2021
2 1 1 10/11/2021
3 1 3 11/11/2021
(adresse IS NULL)
Quels sont les produits dont le prix TTC est supérieur à 10000, sachant
que la TVA=18%.
SELECT *
FROM produit
WHERE (prix_ht + prix_ht*0,18)>10000;
Intersection
SELECT v.num_client FROM vente v WHERE v.date_vente BETWEEN
'01-12-2023' AND '31-12-2023'
INTERSECT
SELECT v.num_client FROM vente v wHERE v.date_vente BETWEEN
'01-01-2024' AND '31-01-2024';
Union
SELECT v.* FROM vente v WHERE v.num_client=1
UNION
SELECT v.* FROM vente v wHERE v.num_client=3;
SELECT *
FROM produit
WHERE prix_ht =(SELECT MAX(prix_ht) FROM produit);
SELECT *
FROM table1
WHERE expression > ALL (
SELECT *
FROM table2
WHERE condition2
)
SELECT *
FROM table1
WHERE expression > ANY (
SELECT *
FROM table2
WHERE condition2
)
START TRANSACTION;
COMMIT;
// DELIMITER ;
Appel de la procédure
CALL les_clients('Paris');