Initiation au langage S.Q.L.*

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Bases de données : modèlisation et SGBD
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
SQL - Subtilités.
Formation au référentiel 1 STG (Sciences et technologie de la gestion)
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Initiation aux bases de données et à la programmation événementielle
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Initiation au système d’information et aux bases de données
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Initiation au système d’information et aux bases de données
LMD: Langage de Manipulation de Données
Contrôles d'accès aux données
L’utilisation des bases de données
Rappel sur les bases de données et le vocabulaire
BASE DE DONNEES RELATIONNELLES
Le langage SQL.
LE LANGAGE SQL Langage de manipulation de données (LMD)
Initiation à la conception de systèmes d'information
Initiation aux bases de données et à la programmation événementielle
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Bases de données et SGBD relationnels
Les bases de donnÉes I DÉFINITION Ensemble structuré d’informations
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
SQL Partie 3 : (LID : Langage d'interrogation de données)
Les concepts et les méthodes des bases de données
Manipulation des données Requêtes simples
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Limiter et trier des données
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Introduction.
Chapitre 5 : Le langage SQL
SQL Partie 1.
SQL partie 4. SQL est un langage de protections d'accès Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
Les vues Une vue: c’est une relation virtuelle. Définie par:
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
1 Initiation aux bases de données et à la programmation événementielle Cours N°8 : Gestion de la cohérence avec des zones de liste déroulantes. Souheib.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Introduction Module 1.
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Bases de données – Cours 3
Le Langage de Manipulation de Données LMD Module 6.
CONCEPTS BD - Synthèse journée 1 :
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
Bases de données : modèlisation et SGBD Séance 3.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Transcription de la présentation:

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

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 70’s. Devenu le langage standard des systèmes de gestion des bases de données relationnelles (SGBDR) GSI S.Q.L.

Présentation du contexte C_FACT Présentation du contexte

Le cas d’une facturation L’entreprise C_Fact désire informatiser la gestion de sa facturation. Son dirigeant vous communique un exemplaire d’une 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 GSI S.Q.L.

La facture (simplifiée) N° de facture : B12345678 Date : 30/01/06 FACTURE Numéro client : 4110021 Nom du client : SA Durand Adresse……..: 3 Impasse des Lys Adresse suite : Route des plages CP: 97354 Ville : Rémire Référence Désignation Prix Quantité Montant SDR035 256 SDRAM 133 40,00€ 12 480,00€ ………… ………………. ………..……. ………… …………… Total facture GSI S.Q.L. 480,00€

Le dictionnaire de données Propriété Type (long) Description NFACT Texte (10) Numéro de facture DATFACT Date/heure Date d’émission CPTCLI Texte (7) Numéro de compte client NOMCLI Texte (32) Nom du client AD1CLI Texte (50) Adresse ligne 1 AD2CLI Adresse ligne 2 CDPCLI Texte (5) Code postal VILCLI Ville client QTP_VENDU Numérique Quantité de produit vendu REFPRO Texte (6) Référence produit DESPRO Description du produit PUVPRO Monétaire Prix unitaire de vente GSI S.Q.L.

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

Regroupement des informations Propriété Type (long) Description NFACT Texte (10) Numéro de facture DATFACT Date/heure Date d’émission CPTCLI Texte (7) Numéro de compte client NOMCLI Texte (32) Nom du client AD1CLI Texte (50) Adresse ligne 1 AD2CLI Adresse ligne 2 CDPCLI Texte (5) Code postal VILCLI Ville client QTP_VENDU Numérique Quantité de produit vendu REFPRO Texte (6) Référence produit DESPRO Description du produit PUVPRO Monétaire Prix unitaire de vente Facture Client Vente Produit GSI S.Q.L.

Modèle logique relationnelle GSI S.Q.L.

Création des tables GSI S.Q.L.

Création des tables GSI S.Q.L.

Les relations GSI S.Q.L.

Définition des relations GSI S.Q.L.

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

Une base de données c’est… 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.). GSI S.Q.L.

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

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.). GSI S.Q.L.

Un SGBDR permet d’assurer la gestion d’un 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), d’effectuer des requêtes multi-tables à l’aide d’un langage normalisé (SQL). GSI S.Q.L.

Fonctions d'un SGBDR décrire les données manipuler ces 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 GSI S.Q.L.

S. Q. L. Introduction

SQL, c’est à 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). GSI S.Q.L.

Généralité 1/3 Interface : Commentaires (faux sous access) : 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. GSI S.Q.L.

Généralités 2/3 Notation des ordres SQL (cf. poly) Exemple : Les parties variables sont comprises entre < et > Les parties optionnelles sont comprises entre [ et ] Exemple : SELECT <Liste des champs> FROM <Liste des tables concernées> [WHERE <Condition sur les champs à lister>] [GROUP BY <Expression des critères de regroupement>] [HAVING <Condition sur les champs regroupés>] [ORDER BY <Expression des critères de tri>] SELECT CPTCLI, NOMCLI FROM CLIENT ; GSI S.Q.L.

Généralités 3/3 ordre SQL Clauses de l’ ordre SQL : SELECT FROM WHERE GROUP BY …. SELECT <Liste des champs> FROM <Liste des tables concernées> [WHERE <Condition sur les champs à lister>] [GROUP BY <Expression des critères de regroupement>] [HAVING <Condition sur les champs regroupés>] [ORDER BY <Expression des critères de tri>] GSI S.Q.L.

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

Nommer un champ en sql <Table>.<Champ> Le champ REFPRO de la table VENDRE s’écrit REFPRO.VENDRE Nommer la table est indispensable lorsqu’il faut préciser la table de provenance du champ Le caractère spécial * remplace les noms des champs d’une table et évite ainsi de les nommer GSI S.Q.L.

Expression de condition UPDATE <Nom de la table> SET (<Liste des affectations : Colonne=Valeur*>) [WHERE <Condition de mise à jour>]; =,<>,>, >=,< ,<= CDPCLI <> "97300" AND REFPRO="P00002" AND QTP_VENDU > 50 OR REFCLI = "4110001" OR CDPCLI "97354" NOT NOT (REFPRO = "P00001" OR REFPRO = "P00002") GSI S.Q.L.

SELECT SELECT <Liste des champs> FROM <Liste des tables concernées> [WHERE <Condition sur les champs à lister>] [GROUP BY <Critères de regroupement>] [HAVING <Condition sur les champs regroupés>] [ORDER BY <Expression des critères de tri>] SELECT * FROM CLIENT; SELECT NOMCLI, VILCLI FROM CLIENT; GSI S.Q.L.

SELECT SELECT <Liste des champs> FROM <Liste des tables concernées> [WHERE <Condition sur les champs à lister>] [GROUP BY <Critères de regroupement>] [HAVING <Condition sur les champs regroupés>] [ORDER BY <Expression des critères de tri>] SELECT DISTINCT VILCLI FROM CLIENT ; (élimine les doublons) SELECT NOMCLI AS "Nom" FROM CLIENT ; (AS renomme les colonnes) GSI S.Q.L.

Clause Where 1/2 * N’importe quelle séquence de caractères ? =,<>,>,>=,<,<= CDPCLI <> "97300" BETWEEN DATFACT BETWEEN #1/1/2006# And #1/31/2006# IN REFPRO IN ("P00001","P00002") LIKE* VILCLI LIKE “*OU*” IS NULL AD2CLI IS NULL * N’importe quelle séquence de caractères ? N’importe quel caractère GSI S.Q.L.

Clause where AND (REFPRO=”P00002” AND QTP_VENDU > 50) OR (REFCLI = “4110001” OR CDPCLI “97354”) NOT REFPRO NOT IN ("P00001","P00002") SELECT NOMCLI, VILCLI FROM CLIENT  WHERE (REFCLI = “4110001” OR CDPCLI “97354”); GSI S.Q.L.

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; GSI S.Q.L.

Clause ORDER BY SELECT <Liste des champs> FROM <Liste des tables concernées> [WHERE <Condition sur les champs à lister>] [GROUP BY <Critères de regroupement>] [HAVING <Condition sur les champs regroupés>] [ORDER BY <Expression des critères de tri>] SELECT * FROM CLIENT ORDER BY NOMCLI; SELECT * FROM CLIENT ORDER BY SEXCLI ASC, AGECLI DESC; GSI S.Q.L.

Relier les tables GSI S.Q.L.

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; GSI S.Q.L.

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

Modèle logique relationnelle GSI S.Q.L.

Utilisation avancée de l’ordre select S. Q. L. Utilisation avancée de l’ordre select

L’ordre SELECT SELECT <Liste des champs> FROM <Liste des tables concernées> [WHERE <Condition sur les champs à lister>] [GROUP BY <Critères de regroupement>] [HAVING <Condition sur les champs regroupés>] [ORDER BY <Expression des critères de tri>] 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; GSI S.Q.L.

Regrouper des résultats SELECT <Liste des champs> FROM <Liste des tables> [WHERE <Condition sur les champs à lister>] [GROUP BY <Critères de regroupement>] [HAVING <Condition sur les champs regroupés>] [ORDER BY <Expression des critères de tri>] Select VILCLI From CLIENT Group by VILCLI; Select VILCLI, CDPCLI From CLIENT Group by VILCLI, CDPCLI; GSI S.Q.L.

Group By : Jeux d’essai Select VILCLI, CDPCLI From CLIENT Group By VILCLI, CDPCLI; GSI S.Q.L.

Group By : Exemple Select VILCLI, CDPCLI From CLIENT Group By VILCLI, CDPCLI; GSI S.Q.L.

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”; GSI S.Q.L.

Having : Jeux d’essai Select VILCLI, CDPCLI From CLIENT Group by VILCLI, CDPCLI Having CDPCLI > “97300”; GSI S.Q.L.

Select VILCLI, CDPCLI From CLIENT Group By : Exemple Select VILCLI, CDPCLI From CLIENT Group by VILCLI, CDPCLI Having CDPCLI > “97300”; GSI S.Q.L.

Effectuer des calculs Calcul Exemple Ajouter QTP_VENDU + 5 Soustraire Multiplier PUVPRO * 1.196 Diviser QTP_VENDU / 2 Calculer (QTP_VENDU*PUVPRO)/1.05 GSI S.Q.L.

Manipuler des chaînes Concaténer Extraire Extraire à gauche Manipulation Exemple 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) GSI S.Q.L.

Les fonctions statistiques Fonctions d’agré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. GSI S.Q.L.

Fonctions d’agrégation Opération effectuée AVG moyenne COUNT nombre d’éléments MAX maximum MIN minimum SUM somme GSI S.Q.L.

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; GSI S.Q.L.

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; GSI S.Q.L.

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

Sous requêtes : Opérateurs ANY Test si une ou plusieurs lignes du résultat d'une sous-requête répondent à la condition spécifiée ALL Test si toutes les lignes du résultat d'une sous-requête répondent à la condition spécifiée. IN Test si un élément est présent dans les lignes du résultat d'une sous-requête. NOT Test si un élément n’est pas présent dans les lignes du résultat d'une sous-requête GSI S.Q.L.

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

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