1 / 14

LE LANGAGE SQL

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

niabi
Download Presentation

LE LANGAGE SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 n-uplet (a) INSERTINTO VINSVALUES (100, 'Jurançon', 1979, 12); (b)INSERT INTO VINS (NV, CRU) VALUES (200, 'Gamay'); Insertion d'un ensemble de n-uplets • 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 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' )

  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 UPDATE COMMANDES SET QTE = QTE + 10 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 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 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. 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…

More Related