Le Langage d ’ Interrogation des donn é es (LID) Module 2.

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
Manipulation des données dans SQL
Access Frédéric Gava (MCF)
STS2 - Révision des requêtes de sélection2/9/2003 Forme d'une requête de Sélection nSELECT nFROM nWHERE nGROUP BY nHAVING nORDER BY.
Les requêtes Manière de dialoguer avec une base de donnée pour :
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,
LMD: Langage de Manipulation de Données
Eléments d ’algèbre relationnelle
BASE DE DONNEES RELATIONNELLES
Le langage SQL.
LE LANGAGE SQL Langage de manipulation de données (LMD)
Bases de données et SGBD relationnels
Laini Hyacinthe 2 e NSSE Access Les requêtes Laini Hyacinthe 2 e NSSE Plan 1.Quelques définitionsQuelques définitions 2.À quoi servent les requêtesÀ
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
Algèbre relationnelle et SQL
SQL Partie 3 : (LID : Langage d'interrogation de données)
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL PHILIPPE BANCQUART.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Manipulation des données Requêtes simples
Initiation aux bases de données et à la programmation événementielle
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
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.
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Chapitre 5 : Le langage SQL
SIO SLAM1: Exploitation d’un schéma de données
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
Traduction des opérations sous MySQL
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
Rédigez le modèle relationnel à la source des tables de biblio.mdb.
Optimisation de requêtes
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Module 7 : Utilisation de requêtes élaborées
Sélection de colonnes (la projection)
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
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.
Les bases de données Séance 8 Jointures.
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).
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.
Utilisation de fonctions Module 3. 2 Fonctions Transtypage : Il permet de changer le type de données d'une colonne afin d’effectuer une comparaison de.
Complément sous-requêtes
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le Langage de Manipulation de Données LMD Module 6.
CONCEPTS BD - Synthèse journée 1 :
Base de données Magasins.accdb
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.
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.
Langages d’interrogation et de manipulation. N. ChaignaudGM4 - Base de données2 1. Algèbre relationnelle  Ensemble d’opérations permettant de manipuler.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Intégration du P7 dans l’épreuve E41
Langage de manipulation de données (LMD)
Langage d’interrogation des Données LID
SQL LID – INTERROGATIN DES DONNEES
Manipulation D’Une Base De Données
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Transcription de la présentation:

Le Langage d ’ Interrogation des donn é es (LID) Module 2

2 Le Langage d’Interrogation des données (LID) Sommaire Module 2 -La Sélection de données - Gestion des valeurs null - Les restrictions ou conditions - Les tris - Les jointures

3 La commande SELECT Le SELECT est la commande de base du SQL. Elle permet d’extraire des données d’une base ou d’en calculer de nouvelles à partir de données existantes

4 La commande SELECT SELECT [DISTINCT ou ALL] * ou liste de colonnes FROM nom de table ou de la vue [WHERE prédicats] [GROUP BY ordre des groupes] [HAVING condition] [ORDER BY ] liste de colonnes

5 La commande SELECT SELECT Spécification des colonnes du résultat FROM Spécification des tables sur lesquelles porte le select WHERE Filtre portant sur les données (conditions à remplir pour faire afficher le résultat) GROUP BY Définition du sous-ensemble HAVING conditions de regroupement des lignes ORDER BY Tri des données du résultat

6 La commande SELECT Requête: SELECT CLI_NOM, CLI_PRENOM FROM T_CLIENT Résultat : CLI_NOM CLI_PRENOM DUPONT Alain MARTIN Marc BOUVIER Alain DUBOIS Paul DREYFUS Jean FAURE Alain PAUL Marcel DUVAL Arsène PHILIPPE André CHABAUD Daniel BAILLY Jean-François...

7 La Commande SELECT Il existe plusieurs opérateurs de sélection: Le caractère * récupère toutes les colonnes DISTINCT qui permet d‘éliminer les doublons dans la réponse AS sert à donner un nom à de nouvelles colonnes créées par la requête L'opérateur || (double barre verticale) permet de concaténer des champs de type caractères (parfois c’est +) On peut utiliser les opérateurs mathématiques de base pour combiner différentes colonnes (,+,-, *, /,).

8 Le Langage d’Interrogation des données (LID) Sommaire Module 2 - La Sélection de données - Gestion des valeurs null - Les restrictions ou conditions - Les tris - Les jointures

9 La gestion des valeurs null La gestion du null sous Mysql IFNULL(expr1,expr2) Si l'argument expr1 n'est pas NULL, la fonction IFNULL() retournera l'argument expr1, sinon elle retournera l'argument expr2. La fonction IFNULL() retourne une valeur numérique ou une chaîne de caractères.

10 La gestion des valeurs null mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'oui'); -> 'oui'

11 La gestion des valeurs null La gestion du null sous SqlServer ISNULL(check_expr, replacement_value) ISNULL remplace NULL avec la valeur spécifiée replacement_value. La fonction retourne la valeur check_expr si celle-ci n’est pas NULL, sinon,elle retourne replacement_value.

12 La gestion des valeurs null Exemple Ici si le prix est null on affiche 0.00 SELECT title, ISNULL(price, 0.00) AS price

13 La gestion des valeurs null La gestion du null sous Oracle NVL( val1, replace_with ) val1 est la valeur testée pour le null. replace_with est la valeur qui est retournée si val1 est null. Cela s’applique à: Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g

14 La gestion des valeurs null Exemple : Ici, si la ville du fournisseur n’est pas null on affiche ‘n/a’ select NVL(supplier_city, 'n/a') from suppliers;

15 ATELIER

16 Le Langage d’Interrogation des données (LID) Sommaire Module 2 - La Sélection de données - Gestion des valeurs null - Les restrictions ou conditions - Les tris - Les jointures

17 La clause WHERE Affichage des lignes vérifiant une condition Syntaxe : SELECT.... WHERE condition Ex: Select * from client where numclient=123;

18 La clause WHERE Dans la clause Where ou de condition, on peut utiliser tous les opérateurs logiques. Expression op Expression Op peut être: = <, <= >, >= !=, <>,^=

19 La Clause Where Il existe d’autres opérateurs: Opérateur IN WHERE TIT_CODE IN ('Mme.', 'Melle.') Opérateur BETWEEN WHERE CODE_POSTAL BETWEEN AND 92000

20 La Clause Where Il existe d’autres opérateurs: Opérateur LIKE WHERE CLI_NOM LIKE 'B%' comparaison logique IS [NOT] {TRUE | FALSE | UNKNOWN} / IS [NOT] NULL connecteurs logiques {OR | AND}

21 ATELIER

22 Le Langage d’Interrogation des données (LID) Sommaire Module 2 - La Sélection de données - Gestion des valeurs null - Les restrictions ou conditions - Les tris - Les jointures

23 La clause ORDER BY Cette clause permet de définir le tri des colonnes ASC spécifie l’ordre ascendant et DESC l’ordre descendant du tri. ASC ou DESC peut être omis, dans ce cas c'est l'ordre ascendant qui est utilisé par défaut. Attention : le tri est un tri interne, il ne faut donc placer dans cette clause que les noms des colonnes dans la clause SELECT.

24 La clause ORDER BY SELECT CLI_NOM, CLI_PRENOM FROM T_CLIENT ORDER BY CLI_NOM, CLI_PRENOM ou SELECT CLI_NOM, CLI_PRENOM FROM T_CLIENT ORDER BY 1, 2

25 ATELIER

26 Le Langage d’Interrogation des données (LID) Sommaire Module 2 - La Sélection de données - Gestion des valeurs null - Les restrictions ou conditions - Les tris - Les jointures

27 Jointures La jointure entre deux tables Soient deux tables table1 et table2. table1 a les colonnes col1 et col2 et table2 les colonnes cola, colb. Supposons que le contenu des tables soit le suivant :

28 Jointures Soit la commande : SELECT col1, cola FROM table1, table2 WHERE table1.col2=table2.colb Cette requête extrait des données de deux tables : table1 et table2 avec une condition entre deux colonnes de tables différentes. On appelle ce type de requête, une jointure.

29 Jointures Comment fonctionne-t-elle ? Une nouvelle table est construite avec pour colonnes, l'ensemble des colonnes des deux tables et pour lignes le produit cartésien des deux tables :

30 Jointures La condition WHERE col2=colb est appliquée à cette nouvelle table. On obtient donc la nouvelle table suivante : Il y a ensuite affichage des colonnes demandées :

31 Jointures Syntaxe d'une requête multi-tables syntaxe SELECT colonne1, colonne2,... FROM table1, table2,..., tablep WHERE condition ORDER BY …

32 Jointures action La nouveauté ici vient du fait que les colonnes colonne1, colonne2,... proviennent de plusieurs tables table1, table2,... Si deux tables ont des colonnes de même nom, on lève l’ambiguïté par la notation tablei.colonnej. La condition peut porter sur les colonnes des différentes tables.

33 Jointures Fonctionnement: 1 La table produit cartésien de table1, table2,..., tablep est réalisée. Si ni est le nombre de lignes de tablei, la table construite a donc n1*n2*...*np lignes comportant l'ensemble des colonnes des différentes tables. 2 La condition du WHERE est appliquée à cette table. Une nouvelle table est ainsi produite 3 Celle-ci est ordonnée selon le mode indiqué dans ORDER. 4 Les colonnes demandées derrière SELECT sont affichées.

34 Jointures Sans condition ( produit cartésien) SELECT CLI_NOM, TEL_NUMERO FROM T_CLIENT, T_TELEPHONE Avec condition SELECT CLI_NOM, TEL_NUMERO FROM T_CLIENT, T_TELEPHONE WHERE T_CLIENT.CLI_ID = T_TELEPHONE.CLI_ID

35 Jointures SELECT CLI_NOM, TEL_NUMERO FROM T_CLIENT C, T_TELEPHONE T WHERE C.CLI_ID = T.CLI_ID AND TYP_CODE = 'FAX'

36 Jointures Jointure naturelle SELECT... FROM NATURAL JOIN [USING ] SELECT CLI_NOM, TEL_NUMERO FROM T_CLIENT NATURAL JOIN T_TELEPHONE La jointure se fait sur la colonne qui porte le même nom dans les deux tables

37 Jointures Jointure interne SELECT... FROM [INNER]JOIN ON SELECT CLI_NOM, TEL_NUMERO FROM T_CLIENT INNER JOIN T_TELEPHONE ON T_CLIENT.CLI_ID = T_TELEPHONE.CLI_ID Ici on spécifie le nom de la colonne sur lequel faire la jointure.

38 Jointures Jointure externe SELECT... FROM LEFT | RIGHT | FULL OUTER JOIN ON condition de jointure SELECT CLI_NOM, TEL_NUMERO FROM T_CLIENT C LEFT OUTER JOIN T_TELEPHONE T ON C.CLI_ID = T.CLI_ID AND TYP_CODE IS NULL Les jointures externes rapatrient les informations disponibles, même si des lignes de table ne sont pas renseignées entre les différentes tables jointes

39 Jointures SELECT colonnes FROM TGauche LEFT OUTER JOIN TDroite ON condition de jointure On recherche toutes les valeurs satisfaisant la condition de jointure précisée dans prédicat, puis on rajoute toutes les lignes de la table TGauche qui n'ont pas été prises en compte au titre de la satisfaction du critère.

40 Jointures SELECT colonnes FROM TGauche RIGHT OUTER JOIN TDroite ON condition de jointure On recherche toutes les valeurs satisfaisant la condition de jointure précisée dans prédicat, puis on rajoute toutes les lignes de la table TDroite qui n'ont pas été prises en compte au titre de la satisfaction du critère.

41 Jointures SELECT colonnes FROM TGauche FULL OUTER JOIN TDroite ON condition de jointure On recherche toutes les valeurs satisfaisant la condition de jointure précisée dans prédicat, puis on rajoute toutes les lignes de la table TGauche et TDroite qui n'ont pas été prises en compte au titre de la satisfaction du critère.

42 Jointures Jointure croisée SELECT... FROM CROSS JOIN SELECT CHB_ID, TRF_DATE_DEBUT, 0 AS TRF_CHB_PRIX FROM T_TARIF CROSS JOIN T_CHAMBRE ORDER BY CHB_ID, TRF_DATE_DEBUT On fait consciemment le produit cartésien.

43 ATELIER