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

1 Initiation au langage S.Q.L.* (*) Structured Query Language.

Présentations similaires


Présentation au sujet: "1 Initiation au langage S.Q.L.* (*) Structured Query Language."— Transcription de la présentation:

1 1 Initiation au langage S.Q.L.* (*) Structured Query Language

2 GSIS.Q.L.Cayenne Stuctured Query Language ? = Langage d'interrogation structuré En fait : langage complet de gestion de bases de données relationnelles, conçu par IBM dans les 70s. Devenu le langage standard des systèmes de gestion des bases de données relationnelles (SGBDR)

3 3 C_FACT Présentation du contexte

4 GSIS.Q.L.Cayenne Le cas dune facturation Lentreprise C_Fact désire informatiser la gestion de sa facturation. Son dirigeant vous communique un exemplaire dune facture et précise : Les clients payent toujours comptant Les produits ont un cycle de vie court, il sont référencés à chaque livraison

5 GSIS.Q.L.Cayenne La facture (simplifiée) ……………………… ………..……. ………………. ………… 480,001240, SDRAM 133 SDR035 Numéro client : Nom du client : SA Durand Adresse……..: 3 Impasse des Lys Adresse suite : Route des plages CP: Ville : Rémire FACTURE Date : 30/01/06N° de facture : B Total facture MontantQuantitéPrixDésignationRéférence 480,00

6 GSIS.Q.L.Cayenne Le dictionnaire de données PropriétéType (long)Description NFACTTexte (10)Numéro de facture DATFACTDate/heureDate démission CPTCLITexte (7)Numéro de compte client NOMCLITexte (32)Nom du client AD1CLITexte (50)Adresse ligne 1 AD2CLITexte (50)Adresse ligne 2 CDPCLITexte (5)Code postal VILCLITexte (32)Ville client QTP_VENDUNumériqueQuantité de produit vendu REFPROTexte (6)Référence produit DESPROTexte (50)Description du produit PUVPROMonétairePrix unitaire de vente

7 GSIS.Q.L.Cayenne Organisation des données Clients Produits Vente Fichier ou Table Occurrence ou enregistrement NFACT : B DATFACT : 15/02/06 CPTCLI : FACTURE Données, valeurs Propriétés, attributs, champ

8 GSIS.Q.L.Cayenne Regroupement des informations PropriétéType (long)Description NFACTTexte (10)Numéro de facture DATFACTDate/heureDate démission CPTCLITexte (7)Numéro de compte client NOMCLITexte (32)Nom du client AD1CLITexte (50)Adresse ligne 1 AD2CLITexte (50)Adresse ligne 2 CDPCLITexte (5)Code postal VILCLITexte (32)Ville client QTP_VENDUNumériqueQuantité de produit vendu REFPROTexte (6)Référence produit DESPROTexte (50)Description du produit PUVPROMonétairePrix unitaire de vente Facture Client Vente Produit

9 GSIS.Q.L.Cayenne Modèle logique relationnelle

10 GSIS.Q.L.Cayenne Création des tables

11 GSIS.Q.L.Cayenne Création des tables

12 GSIS.Q.L.Cayenne Les relations

13 GSIS.Q.L.Cayenne Définition des relations

14 GSIS.Q.L.Cayenne Une base de donnée ensemble d'informations sur un sujet exhaustif, non redondant, structuré, persistant.

15 GSIS.Q.L.Cayenne Une base de données cest… Un ensemble de tables qui contiennent des données décrivant des objets de la réalité Nb.) Un logiciel qui permet d'interagir avec une base de données s'appelle un système de gestion de base de données (S.G.B.D.).

16 GSIS.Q.L.Cayenne Un SGBD Logiciel qui permet de : décrire, modifier, interroger, administrer, les données d'une base de données.

17 GSIS.Q.L.Cayenne Bases de données relationnelles Un ensemble de tables inter reliées qui contiennent des données décrivant des objets de la réalité Nb.) Un logiciel qui permet d'interagir avec une base de données relationnelle s'appelle un système de gestion de base de données relationnelle (S.G.B.D.R.).

18 GSIS.Q.L.Cayenne Un SGBDR permet dassurer la gestion dun ensemble de relations normalisées, de mettre en œuvre l'intégrité référentielle (elle permet de contrôler la cohérence des données en vérifiant les contraintes de jointure entre les tables), deffectuer des requêtes multi-tables à laide dun langage normalisé (SQL).

19 GSIS.Q.L.Cayenne Fonctions d'un SGBDR décrire les données Créer les tables et les relations manipuler ces données ajouter, modifier, supprimer des enregistrements obtenir des renseignements sélectionner, trier, calculer, agréger définir des contraintes sur les données Type, existence définir des protections mots de passe, autorisations, résoudre les problèmes d'accès multiples prévoir des procédures de reprise Permettre d'écrire des applications indépendantes

20 20 S. Q. L. Introduction

21 GSIS.Q.L.Cayenne SQL, cest à la fois : LDD : un langage de définition des données (CREATE, ALTER,DROP), LMD : langage de manipulation des données (SELECT,UPDATE, INSERT, DELETE) LCD : un langage de contrôle de l'accès aux données (GRANT,REVOKE).

22 GSIS.Q.L.Cayenne Généralité 1/3 Interface : Inclure des requêtes SQL dans un programme Envoyer directement les requêtes SQL au SGBD Commentaires (faux sous access) : Le texte situés sur la même ligne et après « # » Le texte situé entre « /* » et « */ » Le langage SQL n'est pas sensible à la casse possibilité décrire indistinctement en minuscule ou en majuscule. Toutefois selon le SGBDR cette distinction existe.

23 GSIS.Q.L.Cayenne Généralités 2/3 Notation des ordres SQL (cf. poly) Les parties variables sont comprises entre Les parties optionnelles sont comprises entre [ et ] Exemple : SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] SELECT CPTCLI, NOMCLI FROM CLIENT ;

24 GSIS.Q.L.Cayenne Généralités 3/3 ordre SQL SELECT Clauses de l ordre SQL : FROM WHERE GROUP BY …. SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ]

25 GSIS.Q.L.Cayenne Exprimer une valeur en SQL Chaîne de caractères Comprises entre " et ". "Ceci est une chaîne de caractères" Numérique Date Comprises entre # et ##31/12/2005# Un champ non renseigné NULL

26 GSIS.Q.L.Cayenne Nommer un champ en sql. Le champ REFPRO de la table VENDRE sécrit REFPRO.VENDRE Nommer la table est indispensable lorsquil faut préciser la table de provenance du champ Le caractère spécial * remplace les noms des champs dune table et évite ainsi de les nommer

27 GSIS.Q.L.Cayenne Expression de condition UPDATE SET ( ) [WHERE ] ; =,<>,>, >=,<,<= CDPCLI <> "97300" ANDREFPRO="P00002" AND QTP_VENDU > 50 ORREFCLI = " " OR CDPCLI "97354" NOTNOT (REFPRO = "P00001" OR REFPRO = "P00002")

28 GSIS.Q.L.Cayenne SELECT SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] SELECT * FROM CLIENT; SELECT NOMCLI, VILCLI FROM CLIENT;

29 GSIS.Q.L.Cayenne SELECT SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] SELECT DISTINCT VILCLI FROM CLIENT ; (élimine les doublons) SELECT NOMCLI AS "Nom" FROM CLIENT ; (AS renomme les colonnes)

30 GSIS.Q.L.Cayenne Clause Where 1/2 =,<>,>,>=,<,<=CDPCLI <> "97300" BETWEENDATFACT BETWEEN #1/1/2006# And #1/31/2006# INREFPRO IN ("P00001","P00002") LIKE * VILCLI LIKE *OU* IS NULLAD2CLI IS NULL *Nimporte quelle séquence de caractères ?Nimporte quel caractère

31 GSIS.Q.L.Cayenne Clause where AND(REFPRO=P00002 AND QTP_VENDU > 50) OR(REFCLI = OR CDPCLI 97354) NOTREFPRO NOT IN ("P00001","P00002") SELECT NOMCLI, VILCLI FROM CLIENT WHERE (REFCLI = OR CDPCLI 97354);

32 GSIS.Q.L.Cayenne Quelques exemples SELECT * FROM CLIENT WHERE VILCLI IN ('CAYENNE','KOUROU'); SELECT * FROM CLIENT WHERE AGECLI NOT BETWEEN 30 AND 40; SELECT * FROM CLIENT WHERE AD2CLI IS NULL; SELECT * FROM CLIENT WHERE AD2CLI IS NOT NULL;

33 GSIS.Q.L.Cayenne Clause ORDER BY SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] SELECT * FROM CLIENT ORDER BY NOMCLI; SELECT * FROM CLIENT ORDER BY SEXCLI ASC, AGECLI DESC;

34 GSIS.Q.L.Cayenne Relier les tables

35 GSIS.Q.L.Cayenne Lier les tables avec WHERE SELECT * FROM tab1,tab2 (jointure sans qualification =produit cartésien) SELECT * FROM FACTURE,VENDRE WHERE FACTURE.NFACT=VENDRE.NFACT; SELECT * FROM FACTURE,VENDRE, PRODUIT WHERE FACTURE.NFACT=VENDRE.NFACT AND VENDRE.REFPRO=PRODUIT.REFPRO;

36 36 S. Q. L. E X E R C I C E

37 GSIS.Q.L.Cayenne Modèle logique relationnelle

38 38 S. Q. L. Utilisation avancée de lordre select

39 GSIS.Q.L.Cayenne Lordre SELECT SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] Select Distinct VILCLI From CLIENT ;(élimine les doublons) Select NOMCLI As "Nom" From CLIENT ;(AS nomme les colonnes) Select * From CLIENT Where VILCLI IN ('CAYENNE','KOUROU'); Select * From CLIENT Where AGECLI NOT BETWEEN 30 AND 40; Select * From CLIENT Where AD2CLI IS NULL; Select * From CLIENT Where AD2CLI IS NOT NULL Order By NOMCLI; Select * From FACTURE,VENDRE, PRODUIT Where FACTURE.NFACT=VENDRE.NFACT and VENDRE.REFPRO=PRODUIT.REFPRO;

40 GSIS.Q.L.Cayenne Regrouper des résultats SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] Select VILCLI From CLIENT Group by VILCLI; Select VILCLI, CDPCLI From CLIENT Group by VILCLI, CDPCLI;

41 GSIS.Q.L.Cayenne Group By Jeux dessai Select VILCLI, CDPCLI From CLIENT Group By VILCLI, CDPCLI;

42 GSIS.Q.L.Cayenne Group By : Exemple Select VILCLI, CDPCLI From CLIENT Group By VILCLI, CDPCLI;

43 GSIS.Q.L.Cayenne Filtrer les éléments regroupés La clause HAVING Va de pair avec la clause GROUP BY restriction sur les regroupements (GROUP BY) Select VILCLI From CLIENT Group by VILCLI Having VILCLI Like *ou*; Select VILCLI, CDPCLI From CLIENT Group by VILCLI, CDPCLI Having CDPCLI > 97300;

44 GSIS.Q.L.Cayenne Having Jeux dessai Select VILCLI, CDPCLI From CLIENT Group by VILCLI, CDPCLI Having CDPCLI > 97300;

45 GSIS.Q.L.Cayenne Group By : Exemple Select VILCLI, CDPCLI From CLIENT Group by VILCLI, CDPCLI Having CDPCLI > 97300;

46 GSIS.Q.L.Cayenne Effectuer des calculs CalculExemple AjouterQTP_VENDU + 5 SoustraireQTP_VENDU - 5 MultiplierPUVPRO * DiviserQTP_VENDU / 2 Calculer(QTP_VENDU*PUVPRO)/1.05

47 GSIS.Q.L.Cayenne Manipuler des chaînes ManipulationExemple Concaténer CDPCLI & VILCLI Extraire SUBSTRING(CDPCLI, 3, 2) SUBSTRING(champ, début, longueur) Extraire à gauche LEFT(CDPCLI, 2) LEFT(champ, longueur) Extraire à droite RIGHT(CDPCLI, 2) RIGHT(champ, longueur) En minuscule LCASE(VILCLI) En majuscule UCASE(VILCLI) Longueur DATALENGTH(AD2CLI)

48 GSIS.Q.L.Cayenne Les fonctions statistiques Fonctions dagrégation. Mentionnées dans la clause SELECT Regroupent selon les critères de la clause GROUP BY. Absence de GROUP BY regroupent sur la totalité des données.

49 GSIS.Q.L.Cayenne Fonctions dagrégation FonctionOpération effectuée AVGmoyenne COUNTnombre déléments MAXmaximum MINminimum SUMsomme

50 GSIS.Q.L.Cayenne Agrégation : exemple 1 Select Count(*) As [NOMBRE DE CLIENTS], From CLIENT; Select Count(*) As [NOMBRE DE CLIENTS], Lcase(VILCLI) From CLIENT Group By VILCLI;

51 GSIS.Q.L.Cayenne Agrégation : exemple 2 Select NFACT, Avg(QTP_VENDU) As MOYENNE From VENDRE Group By NFACT Having MOYENNE >10; Select NFACT, Avg(QTP_VENDU) As MOYENNE From VENDRE Group By NFACT Having Avg(QTP_VENDU)>10;

52 GSIS.Q.L.Cayenne Sous requêtes Une requête SQL renvoie une liste Cette liste est utilisable dans un ordre SQL Afin deffectuer des comparaisons comme avec lopérateur IN : SELECT * FROM CLIENT WHERE VILCLI IN ('CAYENNE','KOUROU'); La liste entre parenthèse sera alors remplacée par un ordre SELECT.

53 GSIS.Q.L.Cayenne Sous requêtes : Opérateurs ANYTest si une ou plusieurs lignes du résultat d'une sous- requête répondent à la condition spécifiée ALLTest si toutes les lignes du résultat d'une sous-requête répondent à la condition spécifiée. INTest si un élément est présent dans les lignes du résultat d'une sous-requête. NOT IN Test si un élément nest pas présent dans les lignes du résultat d'une sous-requête

54 GSIS.Q.L.Cayenne Sous requêtes : exemples Select * From TAB1 Where PRIX > (select Min(PRIX) From TAB2); Select * From TAB1 Where NOM Not In (Select NOM From TAB2); Select * From TAB1 Where PRIX > All (Select PRIX From TAB2); (SUP. À TTES LES VALEURS) Select * FROM TAB1 Where PRIX > Any (Select PRIX From TAB2);

55 55 S. Q. L. E X E R C I C E


Télécharger ppt "1 Initiation au langage S.Q.L.* (*) Structured Query Language."

Présentations similaires


Annonces Google