La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Langage de manipulation de données (LMD)

Présentations similaires


Présentation au sujet: "Langage de manipulation de données (LMD)"— Transcription de la présentation:

1 Langage de manipulation de données (LMD)
LE LANGAGE SQL Langage de manipulation de données (LMD)

2 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 })

3 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)

4 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 ))

5 Insertion de n-uplets dans une relation
Insertion d'un seul tuple (a) INSERT INTO VINS VALUES (100, 'Jurançon', 1979, 12); (b)INSERT INTO VINS (NV, CRU) VALUES (200, 'Gamay'); Insertion d'un ensemble de tuples CREATE TABLE BORDEAUX (NV NUMBER, MIL NUMBER, DEG NUMBER); INSERT INTO BORDEAUX (SELECT NV, MIL, DEG FROM VINS WHERE CRU = 'BORDEAUX‘);

6 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 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' )

7 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 WHERE NB IN ( SELECT NB FROM BUVEURS WHERE NOM = 'Dupond' )

8 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], …>]

9 Ligne SELECT ALL : sans élimination des doublons (mode par défaut)
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.*

10 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.

11 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 Soit une sous-requête var1 : variable (alias) attribuée à table1 durant la requête

12 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

13 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}

14 Opérations ensemblistes
UNION : effectue l’union des n-uplets de deux relations INTERSECT : effectue l’intersection des n-uplets de deux relations MINUS : effectue la différence ensembliste entre deux relations Remarque : les attributs des lignes SELECT doivent être les mêmes pour pouvoir appliquer ces opérations entre deux requêtes

15 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…


Télécharger ppt "Langage de manipulation de données (LMD)"

Présentations similaires


Annonces Google