0% ont trouvé ce document utile (0 vote)
133 vues14 pages

Guide SQL: Manipulation et Interrogation

Transféré par

Mohamed Cheikh
Copyright
© Attribution Non-Commercial (BY-NC)
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 PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
133 vues14 pages

Guide SQL: Manipulation et Interrogation

Transféré par

Mohamed Cheikh
Copyright
© Attribution Non-Commercial (BY-NC)
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 PPT, PDF, TXT ou lisez en ligne sur Scribd

LE LANGAGE SQL

Langage de manipulation de données (LMD)


Notations
• Mots clés en majuscule GRAS
• Paramètres entre chevrons (ex: <table>)
• Optionnel entre crochets (ex: [a])
• Alternatives de syntaxes entre accolades
séparés par des barres (ex: { a | b })
Schéma de la base de données exemple
• Base exemple : BD COOPÉRATIVE
• VINS (NV,CRU,MIL, DEG)
• VITICULTEURS (NVT,NOM,PRENOM,VILLE)
• PRODUCTIONS (NV,NVT)
• BUVEURS (NB,NOM,PRENOM,VILLE)
• COMMANDES (NC,DATE,NV,QTE,NB)
• EXPEDITIONS (NC,DATE,QTE)
Interrogation des données (syntaxe partielle)
Syntaxe partielle de l’interrogation
SELECT <liste d'attributs dont on cherche la valeur>
FROM <liste de relations dont on fait le produit>
[ WHERE <condition de sélection> ]

Rappel
SELECT A1,…, An FROM T1,…, Tm WHERE ;
est équivalent en algèbre relationnelle à
A1,…, An ( (T1  …  Tm ))
Insertion de n-uplets dans une relation
Insertion d'un seul n-uplet
(a)INSERT INTO VINS VALUES (100, 'Jurançon', 1979, 12);
(b)INSERT INTO VINS (NV, CRU) VALUES (200, 'Gamay');
Insertion d'un ensemble de n-uplets
– CREATETABLE BORDEAUX
(NV NUMBER, MIL NUMBER, DEG NUMBER);
– INSERT INTO BORDEAUX
(SELECT NV, MIL, DEG
FROM VINS
WHERE CRU = 'BORDEAUX‘);
Suppression de n-uplets d’une relation
Suppression de tous les n-uplets
DELETE FROM VINS
Suppression selon une condition de sélection sur une relation
DELETE FROM VINS
WHERE DEG < 9 AND DEG > 12
Suppression selon une condition de sélection sur plusieurs
relations
DELETE FROM COMMANDES
WHERE NB IN ( SELECT NB FROM BUVEURS
WHERE NOM = 'Dupond' )
Modification de n-uplets d'une relation
Modification de tous les n-uplets d’une relation
UPDATE COMMANDES
SET QTE = QTE + 10
Modification selon une condition de sélection sur une relation
UPDATE VITICULTEUR
SET VILLE = 'Bordeaux'
WHERE NVT = 150
Modification selon une condition de sélection sur plusieurs relations
UPDATE COMMANDES
SET QTE = QTE + 10
WHERE NB IN ( SELECT NB
FROM BUVEURS
WHERE NOM = 'Dupond' )
Syntaxe complète de l’interrogation
SELECT {[ALL | DISTINCT] <colonne et/ou calculs> [AS <alias>]} | *
FROM <table1 [var1], table2 [var2] …>
[WHERE < condition de sélection >]
[GROUP BY <colonne1 , colonne2…>
[HAVING <critères_regroupement>] ]
[{UNION | INTERSECT | MINUS} (SELECT …)]
[ORDER BY <colonne1 [ASC | DESC], …>]
Ligne SELECT
SELECT {[ALL | DISTINCT] <colonne et/ou calculs> [AS <alias>]} | *

• ALL : sans élimination des doublons (mode par défaut)


• DISTINCT : avec élimination des doublons

• colonne :
– soit nom_att (si pas d'ambiguïté sur ce nom),
– soit nom_table.nom_att,
– soit var_table.nom_att,
– soit * (toutes les colonnes),
– soit nom_tab.*
– soit var_tab.*
Ligne SELECT
SELECT {[ALL | DISTINCT] <colonne et/ou calculs> [AS <alias>]} | *

calcul :
• soit expression sur des colonnes avec des opérateurs : +, -, *, /
éventuellement avec (), ou || (concaténation de chaînes de
caractères)
• soit des fonctions simples sur une valeur ou agrégats sur un
ensemble de valeurs (ex: SUM (somme), AVG (moyenne) des
valeurs d‘une colonne, COUNT (compte les n-uplets))
• soit la combinaison des expressions, fonctions simples et agrégats
(ex: MIN, MAX d‘une expression sur des colonnes)
alias : si mentionné, alias est le nom de la colonne dans le résultat
de la requête.
Ligne FROM
FROM <table1 [var1], table2 [var2] …>

table1 :
– soit un nom de table,
– soit un nom de table préfixé du compte du propriétaire
var1 : variable (alias) attribuée à table1 durant la
requête
Ligne WHERE (Optionnelle)
[WHERE <condition de sélection>]

condition : expression logique de prédicats


• colonne comparateur { valeur | colonne | sous-requête}
où le comparateur est l’un des suivants :
=, !=, >, <, >=, <=, LIKE, {>|<|…} {ALL| ANY}
• colonne {IN | NOT IN} { (valeur1, valeur2,…) | sous-requête}
• colonne BETWEEN valeur1 AND valeur2
• {EXISTS | NOT EXISTS} sous_requête
• colonne IS NULL
• condition {AND|OR} condition,
• NOT condition
Ligne GROUP BY (Optionnelle)
[GROUP BY <colonne1 , colonne2…>
[HAVING <critères_regroupement>] ]

• colonnes : attributs de regroupement


• objectif : partitioner horizontalement la relation selon les
valeurs de certaines colonnes, appliquer ensuite une
fonction agrégat (sur d'autres colonnes) aux partitions
• Ligne HAVING (Optionnelle après regroupement)
critère_regroupement :
fonction_agrégat([DISTINCT] colonne) comparateur {valeur |sous-requête}
Ligne ORDER BY (optionnelle)
[ORDER BY <colonne1 [ASC | DESC], …>]

ordonne le résultat de la requête dans l’ordre croissant


(ASC) ou décroissant (DESC) des valeurs de la colonne1…

Vous aimerez peut-être aussi