SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : , ISBN 13 :

Dimension: px
Commencer à balayer dès la page:

Download "SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4"

Transcription

1 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : , ISBN 13 :

2 CUBE ROLLUP Fonctions de classement Partitionnement GROUPING Module 11 : Les requêtes multi-tables Objectifs A la fin de ce module, vous serez à même d effectuer les tâches suivantes : Effectuer des requêtes multi-tables. Sélectionner des lignes sans créer de produit cartésien. Effectuer des interrogations avec des alliasses de tables. Effectuer des interrogations en utilisant la syntaxe d Oracle pour les jointures. Effectuer des interrogations en utilisant la syntaxe ANSI SQL :1999. Contenu Requêtes multi-tables L opérateur CROSS JOIN La jointure sans condition L opérateur NATURAL JOIN La jointure avec condition L opérateur JOIN USING La jointure externe L autojointure Atelier L opérateur JOIN ON L opérateur JOIN ON L opérateur OUTER JOIN SQL : Atelier Eyrolles/Tsoft SQL pour Oracle10g 11-1

3 Requêtes multi-tables Requêtes multi-tables Module 11 : Les requêtes multitables - Diapo 11.3 Jusqu'ici, nous avons extrait des données, brutes ou dérivées, issues d'une seule table. Nous examinerons dans cette section comment coupler les lignes de deux ou plusieurs tables afin d'en extraire des données corrélées. Dans un environnement réel de production, les informations utiles sont souvent contenues dans plusieurs tables. Par exemple, vous pouvez avoir besoin du nom des catégories de produits alors que la table PRODUITS ne contient que les codes des catégories. Vous devez alors coupler les deux tables, PRODUITS et la table CATEGORIES. Les bases de données relationnelles permettent dans leur principe d'associer deux ou plusieurs tables par des colonnes communes et qui participent à la formation de clés. Il existe deux types de clés, primaire et étrangère. Une clé primaire, composée d'un ou de plusieurs champs, permet d'identifier de façon unique un enregistrement de la table. Dans la table CATEGORIES, la clé primaire est représentée par une seule colonne, CODE_CATEGORIE. La table PRODUITS contient aussi cette colonne, mais il s'agit pour elle d'une clé étrangère. Une clé étrangère permet d'extraire des informations contenues dans une autre table (étrangère). Une telle opération d'association de tables porte le nom de jointure. Les jointures sont classifiées : La jointure sans condition. La jointure avec condition. La jointure externe L auto jointure 11-2 Eyrolles/Tsoft SQL pour Oracle10g

4 La jointure sans condition La jointure sans condition Module 11 : Les requêtes multitables - Diapo 11.4 Une requête sans condition affiche pour chaque ligne de la première table l ensemble des lignes de la deuxième, si d autres tables sont définies dans la clause «FROM», pour chaque ligne du résultat précèdent les lignes de la table suivante, etc. SQL> SELECT COUNT(*) FROM PRODUITS; COUNT(*) SQL> SELECT COUNT(*) FROM CATEGORIES; COUNT(*) SQL> SELECT NOM_PRODUIT, NOM_CATEGORIE FROM PRODUITS, CATEGORIES; NOM_PRODUIT NOM_CATEGORIE Chai Boissons Chang Boissons Aniseed Syrup Boissons Chef Anton's Cajun Seasoning Boissons ligne(s) sélectionnée(s). La requête précédente risque cependant d'être extrêmement coûteuse (le résultat contiendrait ici 77 x 8 = 616 lignes) et n'offrirait aucun intérêt. Cette opération est le produit relationnel, le plus souvent appelé (abusivement, car le résultat n'est pas un ensemble de couples de lignes) produit cartésien dans la littérature. Eyrolles/Tsoft SQL pour Oracle10g 11-3

5 La jointure avec condition La jointure avec condition Module 11 : Les requêtes multitables - Diapo 11.5 Pour coupler deux tables, il faut d'abord préciser les tables dans la clause «FROM», ainsi que la règle d'association des lignes de ces deux tables, les conditions correspondantes dans la clause «WHERE», dont les valeurs sont extraites. Cette règle se présente sous la forme d une égalité des valeurs de deux colonnes. SQL> SELECT A.CODE_CATEGORIE CAT, 2 NOM_PRODUIT "Produit", 3 NOM_CATEGORIE "Categorie" 4 FROM PRODUITS A, CATEGORIES B 5 WHERE A.CODE_CATEGORIE=B.CODE_CATEGORIE AND ROWNUM < 8 6 ORDER BY REF_PRODUIT; CAT Produit Categorie Chai Boissons 1 Chang Boissons 2 Aniseed Syrup Condiments 2 Chef Anton's Cajun Seasoning Condiments 2 Chef Anton's Gumbo Mix Condiments 2 Grandma's Boysenberry Spread Condiments 7 Uncle Bob's Organic Dried Pears Produits secs La requête précédente affiche, pour chaque produit, le nom de la catégorie correspondante. Dans la clause «FROM», vous remarquerez les alias A et B pour les tables PRODUITS et CATEGORIES, utilisées pour faciliter l écriture de la requête et pour lever certaines ambiguïtés, comme dans notre cas où les deux tables possèdent une colonne de même nom CODE_CATEGORIE. SQL> SELECT NOM ' ' PRENOM "Vendeur", 2 SOCIETE "Client", 3 TO_CHAR( DATE_COMMANDE,'DD/MM/YYYY') "Commande", 4 PORT "Port" 11-4 Eyrolles/Tsoft SQL pour Oracle10g

6 5 FROM CLIENTS A,EMPLOYES B,COMMANDES C 6 WHERE A.CODE_CLIENT = C.CODE_CLIENT AND 7 B.NO_EMPLOYE = C.NO_EMPLOYE AND 8 DATE_COMMANDE > '01/05/1998'; Vendeur Client Commande Port Andrew Lehmanns Marktstand 05/05/1998 6,80 Nancy Drachenblut Delikatessen 04/05/ ,90 Callahan Laura Queen Cozinha 04/05/ ,75 Nancy Tortuga Restaurante 04/05/ ,35 Nancy LILA-Supermercado 05/05/1998 4,65 Peacock Margaret Ernst Handel 05/05/ ,20 Andrew Pericles Comidas clßsicas 05/05/ ,75 King Robert Simons bistro 06/05/ ,20 Callahan Laura Richter Supermarkt 06/05/ ,95 Peacock Margaret Bon app' 06/05/ ,40 Nancy Rattlesnake Canyon Grocery 06/05/ ,65 Les conditions telles que A.CODE_CLIENT = C.CODE_CLIENT sont appelées conditions de jointure, car elles régissent les associations entre les lignes de COMMANDES et CLIENTS. Techniquement, cependant, il s'agit d'une condition ordinaire appliquée aux colonnes de chaque couple de lignes, et qui peut apparaître au milieu d'autres conditions de sélection, comme dans la requête précédente, pour limiter le résultat aux commandes ultérieures au 01 mai Eyrolles/Tsoft SQL pour Oracle10g 11-5

7 La jointure externe La jointure externe Module 11 : Les requêtes multitables - Diapo 11.6 Dans le cas d'une jointure classique, lorsqu'une ligne d'une table ne satisfait pas à la condition de jointure, cette ligne n'apparaît pas dans le résultat final. Il peut cependant être souhaitable de conserver les lignes d'une table qui ne répondent pas à la condition de jointure. On parle alors de jointure externe (outer join). SQL> SELECT NOM "Employé", 2 EXTRACT ( YEAR FROM DATE_COMMANDE) "Année", 3 SUM( PORT) 4 FROM EMPLOYES A,COMMANDES B 5 WHERE A.NO_EMPLOYE = B.NO_EMPLOYE (+) 6 GROUP BY NOM, 7 EXTRACT ( YEAR FROM DATE_COMMANDE) ; Employé Année SUM(PORT) Peacock ,95 Buchanan ,29 Callahan Suyama , ,35 Suyama ,85 Dodsworth , ,89 Leverling ,1 Peacock ,43 Suyama ,82 Dodsworth ,34 Leverling , Eyrolles/Tsoft SQL pour Oracle10g

8 Dans l'exemple précédent la jointure externe consiste à ajouter au résultat de la jointure normale, l'ensemble des employés qui n'ont pas effectué de ventes. Ce résultat est obtenu en ajoutant le symbole «+» juste après COMMANDES.NO_EMPLOYE. Le signe «+» permet d'ajouter une ligne fictive de valeur nulle, mais qui vérifie la condition de jointure. SQL> SELECT NOM "Employé", 2 SOCIETE "Client" 3 FROM EMPLOYES A,COMMANDES B,CLIENTS C 4 WHERE A.NO_EMPLOYE = B.NO_EMPLOYE (+) AND 5 B.CODE_CLIENT= C.CODE_CLIENT AND 6 NVL(DATE_COMMANDE,'02/05/1998') > '01/05/1998'; Employé Client King Lehmanns Marktstand Drachenblut Delikatessen Queen Cozinha Tortuga Restaurante LILA-Supermercado Peacock Ernst Handel King Pericles Comidas clßsicas King Simons bistro Richter Supermarkt Peacock Bon app' Rattlesnake Canyon Grocery La requête précédente ne retourne que les employés qui ont effectué des ventes, malgré la jointure externe entre la table EMPLOYES et COMMANDES. En effet la condition B.CODE_CLIENT = C.CODE_CLIENT impose l existence d un enregistrement dans la table B (COMMANDE). Pour pouvoir visualiser l ensemble des employés et pour ceux qui ont effectués des ventes les clients correspondants, il faut transformer la jointure entre les tables COMMANDES et CLIENTS en jointure externe. SQL> SELECT NOM "Employé", NVL(SOCIETE, '- Pas de client-') "Client" 3 FROM EMPLOYES A,COMMANDES B,CLIENTS C 4 WHERE A.NO_EMPLOYE = B.NO_EMPLOYE (+) AND 5 B.CODE_CLIENT= C.CODE_CLIENT(+) AND 6 NVL(DATE_COMMANDE,'02/05/1998') > '01/05/1998' ; Employé Client Drachenblut Delikatessen Queen Cozinha Tortuga Restaurante LILA-Supermercado Richter Supermarkt Rattlesnake Canyon Grocery - Pas de client- Peacock Ernst Handel Peacock Bon app' Buchanan - Pas de client-... Eyrolles/Tsoft SQL pour Oracle10g 11-7

9 L autojointure L autojointure Module 11 : Les requêtes multitables - Diapo 11.7 L'autojointure met en corrélation les lignes d'une table avec d'autres lignes de la même table. Elle permet donc de ramener sur la même ligne de résultat des informations venant d'une ligne plus des informations venant d'une autre ligne de la même table. La jointure d'une table à elle-même n'est possible qu'à condition d'utiliser des "alias" ou abréviations de table pour faire référence à une même table sous des noms différents. L'utilisation d'un alias (ou nom d'emprunt ou synonyme) permet de renommer une des tables et évite les problèmes d'ambiguïté pour les noms de colonnes qui doivent être préfixés par le synonyme des différentes tables. 3 FROM EMPLOYES A,EMPLOYES B 4 WHERE A.REND_COMPTE = B.NO_EMPLOYE (+) ; Employé Supérieur Callahan Buchanan Peacock Leverling Dodsworth Buchanan King -- Pas de supérieur -- Suyama Buchanan La requête comporte une jointure externe pour pouvoir afficher tous les employés, y compris ceux qui n ont pas de supérieur hiérarchique Eyrolles/Tsoft SQL pour Oracle10g

10 Atelier 11.1 Atelier 11.1 Les équijointures Les jointures externes et autojointures Durée : 25 minutes Module 11 : Les requêtes multitables - Diapo 11.8 Questions Sachant que la table COMMANDES a 830 enregistrements et la table DETAILS_COMMANDES a 2155 enregistrements, combien d enregistrements retournent une requête qui interroge ces deux tables sans aucune jointure? Quelles sont les syntaxes incorrectes? A. SELECT COUNT(DISTINCT A.NO_EMPLOYE) FROM EMPLOYES A, COMMANDES B WHERE A.NO_EMPLOYE = B.NO_EMPLOYE (+); B. SELECT COUNT(DISTINCT A.NO_EMPLOYE) FROM EMPLOYES A, COMMANDES B WHERE A.NO_EMPLOYE = (+)B.NO_EMPLOYE; C. SELECT COUNT(DISTINCT A.NO_EMPLOYE) FROM EMPLOYES A, COMMANDES B WHERE A.NO_EMPLOYE(+)= B.NO_EMPLOYE ; D. SELECT COUNT(DISTINCT A.NO_EMPLOYE) FROM EMPLOYES A, COMMANDES B WHERE (+)A.NO_EMPLOYE = B.NO_EMPLOYE (+); E. SELECT COUNT(DISTINCT A.NO_EMPLOYE) FROM EMPLOYES A, COMMANDES B WHERE A.NO_EMPLOYE = B.NO_EMPLOYE; Quelle est la requête dans la liste précédente qui retrouve tous les employés même s ils n ont pas passé de commandes? Eyrolles/Tsoft SQL pour Oracle10g 11-9

11 Exercice n 1 Les équijointures Écrivez les requêtes permettant d afficher : Le nom, le prénom et la société cliente pour les employés qui ont effectué une vente pour les clients de Paris. La société cliente, le nombre des produits commandés, la ville et le pays qui ont commandé plus de vingt cinq produits. Le nom de la catégorie du produit, la société fournisseur et le nom du produit, uniquement pour les produits des catégories 1, 4 et 7. La société cliente, la société fournisseur et leur ville pour les clients qui sont localisés dans une ville d un fournisseur (Il s agit d une jointure entre la table CLIENTS et FOURNISSEURS). Les sociétés clientes qui ont commandé le produit Chai. Exercice n 2 Les jointures externes et autojointures Tous les clients et le cumul des quantités vendues pour les clients qui ont passé des commandes. Affichez les enregistrements par ordre décroissant de cumul des commandes avec les valeurs «NULL» à la fin. Les localités des clients et le cumul des quantités vendues par localité. Affichez les enregistrements par ordre décroissant de cumul des commandes avec les valeurs «NULL» à la fin. Le nom, le prénom, la fonction de tous les employés, la somme des frais de port et le cumul des ventes (prix unitaire fois la quantité) pour les employés qui ont passé des commandes. Affichez les enregistrements par ordre décroissant de cumul des ventes avec les valeurs «NULL» à la fin. Le nom, le prénom, la fonction des supérieurs hiérarchiques ainsi le nom et prénom des employés gérés par eux. Le nom, le prénom, la fonction des tous les employés, le nom et prénom des employés gérés par eux, si tél est le cas, ainsi que le nom et prénom des employés gérés par les précédents si tél est le cas Eyrolles/Tsoft SQL pour Oracle10g

12 SQL : 1999 SQL : 1999 Module 11 : Les requêtes multitables - Diapo Oracle 9i propose également un ensemble d opérateurs explicites pour réaliser la jointure de deux ou plusieurs tables. La syntaxe de SQL : 1999 n apporte aucune amélioration en terme de performance. Elle a été introduite par souci de conformité avec les standards ANSI/ISO. Une jointure en SQL : 1999 vous permet de sélectionner des colonnes dans plusieurs tables en développant la clause «FROM» de l'instruction «SELECT» respectant la syntaxe suivante : SELECT [ALL DISTINCT]{*,[EXPRESSION1 [AS] ALIAS1[,...]} FROM NOM_TABLE1 { [ CROSS JOIN NOM_TABLE2] [ NATURAL JOIN NOM_TABLE2 USING (NOM_COLONNE1[,...])] [ JOIN NOM_TABLE2 USING (NOM_COLONNE1[,...])] [ JOIN NOM_TABLE2 ON (NOM_TABLE1.NOM_COLONNE = NOM_TABLE2.NOM_COLONNE)] [ {LEFT RIGHT FULL} OUTER JOIN NOM_TABLE2 ON (NOM_TABLE1.NOM_COLONNE = NOM_TABLE2.NOM_COLONNE)] } CROSS JOIN NATURAL JOIN JOIN USING JOIN ON OUTER JOIN Le résultat est le même que celui d une requête sans condition qui affiche pour chaque ligne de la première table l ensemble des lignes de la deuxième. La jointure entre les tables est effectuée à l aide des colonnes qui portent le même nom. La jointure entre les tables est effectuée à l aide de la ou des colonnes spécifiées. La jointure entre les tables est effectuée à l aide de la condition spécifiée. La jointure externe entre les tables est effectuée à l aide de la condition spécifiée. Eyrolles/Tsoft SQL pour Oracle10g 11-11

13 L opérateur CROSS JOIN L opérateur CROSS JOIN Module 11 : Les requêtes multitables - Diapo L opérateur «CROSS JOIN» est un produit cartésien ; il donne le même résultat que celui d une requête sans condition. La syntaxe est la suivante : SELECT [ALL DISTINCT]{*,[EXPRESSION1 [AS] ALIAS1[,...]} FROM NOM_TABLE1 CROSS JOIN NOM_TABLE2 ; SQL> SELECT COUNT(*) FROM PRODUITS; COUNT(*) SQL> SELECT COUNT(*) FROM CATEGORIES ; COUNT(*) SQL> SELECT COUNT(*) 2 FROM PRODUITS CROSS JOIN CATEGORIES; COUNT(*) Eyrolles/Tsoft SQL pour Oracle10g

14 L opérateur NATURAL JOIN L opérateur NATURAL JOIN Module 11 : Les requêtes multi-tables Module 11 : Les requêtes multitables - Diapo L opérateur «NATURAL JOIN» effectue la jointure entre deux tables en se servant des colonnes des deux tables qui portent le même nom. La syntaxe est la suivante : SELECT [ALL DISTINCT]{*,[EXPRESSION1 [AS] ALIAS1[,...]} FROM NOM_TABLE1 NATURAL JOIN NOM_TABLE2 ; SQL> SELECT SOCIETE, DATE_COMMANDE, PORT 4 FROM CLIENTS NATURAL JOIN COMMANDES; SOCIETE DATE_COM PORT Pericles Comidas clßsicas 14/11/96 2,69 Antonio Moreno TaquerÝa 27/11/96 1,10 Bottom-Dollar Markets 10/01/97,12 Hungry Coyote Import Store 15/01/97,01 Furia Bacalhau e Frutos do Mar 04/03/97 4,45 Seven Seas Imports 12/03/97,21 Simons bistro 03/06/97,49 Blondel pþre et fils 12/06/97 4,42 Trail's Head Gourmet Provisioners 19/06/97 1,88 B's Beverages 24/06/97 1,48 Lehmanns Marktstand 09/07/97 8,71 TradiþÒo Hipermercados 22/07/97 3,97 The Cracker Box 07/08/97 4,74 Maison Dewey 28/08/97,31 Die Wandernde Kuh 01/09/97 1,03 Du monde entier 26/09/97,22 Hanari Carnes 02/10/97,79... Eyrolles/Tsoft SQL pour Oracle10g 11-13

15 La requête précédente affiche, pour chaque produit, le nom de la catégorie correspondante. Attention L opérateur «NATURAL JOIN» réalise la jointure entre deux tables en utilisant des noms de colonnes identiques, et non pas l intermédiaire de l'intégrité référentielle, à savoir les clés primaires et les clés étrangères. SQL> DESC PRODUITS Nom NULL? Type REF_PRODUIT NOT NULL NUMBER(6) NOM_PRODUIT NOT NULL VARCHAR2(40) NO_FOURNISSEUR NOT NULL NUMBER(6) CODE_CATEGORIE NOT NULL NUMBER(6) QUANTITE VARCHAR2(30) PRIX_UNITAIRE NOT NULL NUMBER(8,2) UNITES_STOCK NUMBER(5) UNITES_COMMANDEES NUMBER(5) INDISPONIBLE NUMBER(1) SQL> DESC DETAILS_COMMANDES Nom NULL? Type NO_COMMANDE NOT NULL NUMBER(6) REF_PRODUIT NOT NULL NUMBER(6) PRIX_UNITAIRE NOT NULL NUMBER(8,2) QUANTITE NOT NULL NUMBER(5) REMISE NOT NULL FLOAT(126) SQL> SELECT * 2 FROM DETAILS_COMMANDES NATURAL JOIN 3 PRODUITS; SELECT * * ERREUR à la ligne 1 : ORA-01722: Nombre non valide Dans l exemple précèdent, la requête joint les tables DETAILS_COMMANDE et PRODUITS à l aide de l opérateur «NATURAL JOIN». Vous pouvez remarquer que la jointure donne un message d erreur de nombre invalide. En effet la colonne QUANTITE est prise en compte pour la jointure ; son nom est identique dans les deux tables, mais le type de la colonne est différent Eyrolles/Tsoft SQL pour Oracle10g

16 L opérateur JOIN USING L opérateur JOINT USING Module 11 : Les requêtes multitables - Diapo L opérateur «JOIN USING» effectue la jointure entre deux tables en se servant des colonnes spécifiées respectant la syntaxe suivante : SELECT [ALL DISTINCT]{*,[EXPRESSION1 [AS] ALIAS1[,...]} FROM NOM_TABLE1 [ JOIN NOM_TABLE2 USING (NOM_COLONNE1[,...])] ; SQL> SELECT CLIENTS.SOCIETE, FOURNISSEURS.SOCIETE 2 FROM CLIENTS JOIN FOURNISSEURS USING(VILLE); SOCIETE SOCIETE Alfreds Futterkiste Heli Süßwaren GmbH Co. KG Around the Horn Exotic Liquids B's Beverages Exotic Liquids Comércio Mineiro Refrescos Americanas LTDA Consolidated Holdings Exotic Liquids Eastern Connection Exotic Liquids Familia Arquibaldo Refrescos Americanas LTDA Mère Paillarde Ma Maison North/South Exotic Liquids Paris spécialités Aux joyeux ecclésiastiques Queen Cozinha Refrescos Americanas LTDA Seven Seas Imports Exotic Liquids Spécialités du monde Aux joyeux ecclésiastiques Tradição Hipermercados Refrescos Americanas LTDA SQL> SELECT CLIENTS.SOCIETE, FOURNISSEURS.SOCIETE 2 FROM CLIENTS, FOURNISSEURS 3 WHERE CLIENTS.VILLE = FOURNISSEURS.VILLE; Eyrolles/Tsoft SQL pour Oracle10g 11-15

17 La requête précédente affiche les clients qui sont localisés dans une ville d un fournisseur ; la deuxième requête est la traduction dans l ancienne syntaxe. SQL> SELECT * 2 FROM DETAILS_COMMANDES NATURAL JOIN 3 PRODUITS; SELECT * * ERREUR à la ligne 1 : ORA-01722: Nombre non valide SQL> SELECT NOM, 2 NOM_PRODUIT, 3 SUM(DETAILS_COMMANDES.PRIX_UNITAIRE* 4 DETAILS_COMMANDES.QUANTITE) CA 5 FROM EMPLOYES NATURAL JOIN 6 COMMANDES NATURAL JOIN 7 DETAILS_COMMANDES JOIN 8 PRODUITS USING( REF_PRODUIT) 9 WHERE EXTRACT ( YEAR FROM DATE_COMMANDE) = GROUP BY NOM, NOM_PRODUIT 11 ORDER BY NOM, NOM_PRODUIT; NOM NOM_PRODUIT CA Alice Mutton Aniseed Syrup Boston Crab Meat ,5 Camembert Pierrot Carnarvon Tigers ,5 Chai Chang Chartreuse verte Chef Anton's Cajun Seasoning Chef Anton's Gumbo Mix ,75 Chocolade ,75 Côte de Blaye Escargots de Bourgogne ,75 Filo Mix Fløtemysost ,5 Geitost ,5 Genen Shouyu ,5 Gnocchi di nonna Alice Gorgonzola Telino ,5 Grandma's Boysenberry Spread Gravad lax Guaraná Fantástica Gudbrandsdalsost Gula Malacca Gumbär Gummibärchen ,5 Gustaf's Knäckebröd Eyrolles/Tsoft SQL pour Oracle10g

18 L opérateur JOIN ON L opérateur JOINT ON Module 11 : Les requêtes multitables - Diapo L opérateur «JOIN ON» effectue la jointure entre deux tables en se servant des conditions spécifiées respectant la syntaxe suivante : SELECT [ALL DISTINCT]{*,[EXPRESSION1 [AS] ALIAS1[,...]} FROM NOM_TABLE1 [ JOIN NOM_TABLE2 ON (NOM_TABLE1.NOM_COLONNE = NOM_TABLE2.NOM_COLONNE)] ; SQL> SELECT A.NOM "Employé", 2 B.NOM "Supérieur" 3 FROM EMPLOYES A JOIN EMPLOYES B 4 ON ( A.REND_COMPTE = B.NO_EMPLOYE); Employé Supérieur Callahan Buchanan Peacock Leverling Dodsworth Buchanan Suyama Buchanan SQL> SELECT A.NOM "Employé", 2 B.NOM "Supérieur" 3 FROM EMPLOYES A, EMPLOYES B 4 WHERE A.REND_COMPTE = B.NO_EMPLOYE; La requête précédente affiche les employés et leur supérieur hiérarchique ; la deuxième requête est la traduction dans l ancienne syntaxe. SQL> SELECT A.NOM_PRODUIT, B.QUANTITE, B.PRIX_UNITAIRE Eyrolles/Tsoft SQL pour Oracle10g 11-17

19 2 FROM PRODUITS A JOIN DETAILS_COMMANDES B 3 ON ( A.REF_PRODUIT = B.REF_PRODUIT) ; NOM_PRODUIT QUANTITE PRIX_UNITAIRE Queso Cabrales Singaporean Hokkien Fried Mee Mozzarella di Giovanni Tofu 9 93 Manjimup Dried Apples Jack's New England Clam Chowder 10 38,5 Manjimup Dried Apples Louisiana Fiery Hot Pepper Sauce Dans l exemple précèdent, la requête joint les tables DETAILS_COMMANDE et PRODUITS à l aide de l opérateur «JOIN ON» Eyrolles/Tsoft SQL pour Oracle10g

20 L opérateur JOIN ON L opérateur JOINT ON Module 11 : Les requêtes multitables - Diapo L opérateur «JOIN ON» effectue la jointure entre deux tables en se servant des conditions spécifiées respectant la syntaxe suivante : SELECT [ALL DISTINCT]{*,[EXPRESSION1 [AS] ALIAS1[,...]} FROM NOM_TABLE1 [ JOIN NOM_TABLE2 ON (NOM_TABLE1.NOM_COLONNE = NOM_TABLE2.NOM_COLONNE) [{AND OR} EXPRESSION ]] ; SQL> SELECT NOM ' ' PRENOM "Vendeur", SOCIETE "Client", 2 TO_CHAR( DATE_COMMANDE,'DD Mon YYYY') "Commande", PORT "Port" 3 FROM CLIENTS A JOIN COMMANDES B 4 ON ( A.CODE_CLIENT = B.CODE_CLIENT ) 5 JOIN EMPLOYES C 6 ON ( B.NO_EMPLOYE = C.NO_EMPLOYE ) 7 AND DATE_COMMANDE > '01/05/1998'; Vendeur Client Commande Port King Robert Lehmanns Marktstand 05 Mai ,80 Nancy Drachenblut Delikatessen 04 Mai ,90 Nancy Queen Cozinha 04 Mai ,75 Nancy Tortuga Restaurante 04 Mai ,35 Nancy LILA-Supermercado 05 Mai ,65 Peacock Margaret Ernst Handel 05 Mai ,20 King Robert Pericles Comidas clßsicas 05 Mai ,75 King Robert Simons bistro 06 Mai ,20 Nancy Richter Supermarkt 06 Mai ,95 Peacock Margaret Bon app' 06 Mai ,40 Nancy Rattlesnake Canyon Grocery 06 Mai ,65 Eyrolles/Tsoft SQL pour Oracle10g 11-19

21 L opérateur OUTER JOIN L opérateur OUTER JOIN Module 11 : Les requêtes multitables - Diapo L opérateur «OUTER JOIN ON» effectue une jointure externe entre deux tables en se servant des conditions spécifiées respectant la syntaxe suivante : SELECT [ALL DISTINCT]{*,[EXPRESSION1 [AS] ALIAS1[,...]} FROM NOM_TABLE1 [ {LEFT RIGHT FULL} OUTER JOIN NOM_TABLE2 { ON (NOM_TABLE1.NOM_COLONNE = NOM_TABLE2.NOM_COLONNE)] USING (NOM_COLONNE1[,...])] }; LEFT RIGHT Indique que la table de gauche/droite est dominante, celle dont on affiche tous les enregistrements. FULL Cette option est l union des deux requêtes, «LEFT OUTER JOIN» et «RIGHT OUTER JOIN». SQL> SELECT A.NOM "Employé", 2 NVL(B.NOM,'-- Pas de supérieur --') "Supérieur" 3 FROM EMPLOYES A LEFT OUTER JOIN EMPLOYES B 4 ON ( A.REND_COMPTE = B.NO_EMPLOYE); Employé Supérieur Callahan Buchanan Peacock Leverling King -- Pas de supérieur -- Suyama Buchanan Eyrolles/Tsoft SQL pour Oracle10g

22 Atelier 11.2 Atelier 11.2 Les équijointures Les jointures externes et autojointures Durée : 15 minutes Module 11 : Les requêtes multitables - Diapo Questions Quelles sont les syntaxes incorrectes? A. SELECT COUNT(*) FROM EMPLOYES A OUTER JOIN EMPLOYES B ; B. SELECT COUNT(*) FROM EMPLOYES A LEFT OUTER JOIN EMPLOYES B ; C. SELECT COUNT(*) FROM EMPLOYES A NATURAL JOIN EMPLOYES B ; D. SELECT COUNT(*) FROM EMPLOYES A JOIN EMPLOYES B ON ( A.NO_EMPLOYE = B.REND_COMPTE ); E. SELECT COUNT(*) FROM EMPLOYES A LEFT OUTER JOIN EMPLOYES B ON ( A.NO_EMPLOYE = B.REND_COMPTE ); F. SELECT COUNT(*) FROM EMPLOYES A JOIN EMPLOYES B USING ( NO_EMPLOYE ); Quelle est la requête dans la liste précédente qui retrouve tous les employés et les employés gérés par eux si tél est le cas sinon «NULL»? Exercice n 1 Les équijointures Écrivez les requêtes, compatible avec la norme ANSI/ISO SQL : 1999, permettant d afficher : Le nom, le prénom et la société cliente, la date de la commande et les frais de port pour les employés qui ont effectué une vente pour les clients de Paris. Eyrolles/Tsoft SQL pour Oracle10g 11-21

23 La société cliente, le nombre des produits commandés, la ville et le pays qui ont commandé plus de vingt cinq produits. Le nom de la catégorie du produit, la société fournisseur et le nom du produit, uniquement pour les produits des catégories 1, 4 et 7. La société cliente, la société fournisseur et leur ville pour les clients qui sont localisés dans une ville d un fournisseur (Il s agit d une jointure entre la table CLIENTS et FOURNISSEURS). Les sociétés clientes qui ont commandé le produit Chai. Exercice n 2 Les jointures externes et autojointures Tous les clients et le cumul des quantités vendues pour les clients qui ont passé des commandes. Affichez les enregistrements par ordre décroissant de cumul des commandes avec les valeurs «NULL» à la fin. Les localités des clients et le cumul des quantités vendues par localité. Affichez les enregistrements par ordre décroissant de cumul des commandes avec les valeurs «NULL» à la fin. Le nom, le prénom, la fonction de tous les employés, la somme des frais de port et le cumul des ventes (prix unitaire fois la quantité) pour les employés qui ont passé des commandes. Affichez les enregistrements par ordre décroissant de cumul des ventes avec les valeurs «NULL» à la fin. Le nom, le prénom, la fonction des supérieurs hiérarchiques ainsi le nom et prénom des employés gérés par eux. Le nom, le prénom, la fonction des tous les employés, le nom et prénom des employés gérés par eux si tél est le cas, ainsi que le nom et prénom des employés gérés par les précédents si tél est le cas Eyrolles/Tsoft SQL pour Oracle10g

Module 34 : Oracle 10g SQL Réponses aux ateliers

Module 34 : Oracle 10g SQL Réponses aux ateliers Module 34 : Oracle 10g SQL Réponses aux ateliers Eyrolles/Tsoft SQL pour Oracle10g 34-1 Atelier 1 Présentation de l environnement Questions 1-1. 1-2. 1-3. 1-4. 1-5. 1-6. 1-7. 1-8. 1-9. Une table ne peut

Plus en détail

INITIATION AU LANGAGE SQL

INITIATION AU LANGAGE SQL ECOLE NATIONALE DES INGENIEURS DES TRAVAUX AGRICOLES DE BORDEAUX DEPARTEMENT ENTREPRISE ET SYSTEMES UNITE DE FORMATION INFORMATIQUE ET GENIE DES EQUIPEMENTS ~o~o~o~ INITIATION AU LANGAGE SQL Notes de cours

Plus en détail

Rudiments SQL pour Oracle BDA_RCS

Rudiments SQL pour Oracle BDA_RCS Rudiments SQL pour Oracle BDA_RCS 08-11-2014 1 La base de données Gestion des commandes 08-11-2014 2 Les noms de colonnes sont volontairement simplifiés 3 Ajout de nouvelles colonnes dans des tables qui

Plus en détail

PL/SQL pour. Oracle 10g. Razvan Bizoï. Tsoft et Groupe Eyrolles, 2007, ISBN : 2-212-12056-7, ISBN 13 : 978-2-212-12056-1

PL/SQL pour. Oracle 10g. Razvan Bizoï. Tsoft et Groupe Eyrolles, 2007, ISBN : 2-212-12056-7, ISBN 13 : 978-2-212-12056-1 PL/SQL pour Oracle 10g Razvan Bizoï Tsoft et Groupe Eyrolles, 2007, ISBN : 2-212-12056-7, ISBN 13 : 978-2-212-12056-1 Les curseurs explicites Les boucles et curseurs FOR UPDATE CURRENT OF REF CURSOR Module

Plus en détail

1/39. I Langage d interrogation et modification des données (DML) I Langage de définition du schéma (DDL)

1/39. I Langage d interrogation et modification des données (DML) I Langage de définition du schéma (DDL) Introduction 1/39 2/39 Introduction Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 A partir de l algèbre relationnelle s est construit un langage informatique permettant d interroger les données : SQL

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 Table des matières PRÉAMBULE... MODULE 1 : PRÉSENTATION DE L ENVIRONNEMENT... 1-1 Qu'est-ce

Plus en détail

Le langage SQL (deuxième partie) c Olivier Caron

Le langage SQL (deuxième partie) c Olivier Caron Le langage SQL (deuxième partie) 1 Les requêtes de consultation Représente la majorité des requêtes 1 Les requêtes de consultation Représente la majorité des requêtes Encapsule complètement l algèbre relationnel

Plus en détail

Memo : Fonctions SQL

Memo : Fonctions SQL Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Memo : Fonctions SQL I. Sélectionner des données Sélectionner toutes les colonnes de la table Séléctionner seulement

Plus en détail

SQL : Dans l article précédent sur le langage de manipulation

SQL : Dans l article précédent sur le langage de manipulation SQL : extraire des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont réalisées en SQL. Dans cet article,

Plus en détail

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1 Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 Le langage SQL... 1-2 Le langage PL/SQL... 1-4 Qu'est-ce que SQL*Plus?... 1-5 Commandes SQL*Plus... 1-7 Variables de substitution... 1-15 La commande

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 Ce guide de formation a pour but de vous permettre d'acquérir une bonne connaissance du

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 La transaction SAVEPOINT Le verrouillage COMMIT Module 14 : Les transactions Objectifs A

Plus en détail

SQL Requêtes simples. Outline ... A.D., S.B. Février 2013. .1 Introduction. .2 Requêtes mono-relation. .3 Requêtes multi-relations

SQL Requêtes simples. Outline ... A.D., S.B. Février 2013. .1 Introduction. .2 Requêtes mono-relation. .3 Requêtes multi-relations SQL Requêtes simples BD4 AD, SB Licence MASS, Master ISIFAR, Paris-Diderot Février 2013 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 1/19 Février 2013 1 / 19 Outline 1 2 Requêtes mono-relation

Plus en détail

Cours: Les Jointures 1

Cours: Les Jointures 1 Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Les Jointures 1 Plan Table of Contents Principe...1 Example...1 Types de Jointures...2 Définitions et examples...2

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

SQL : Dans les articles précédents vous avez acquis

SQL : Dans les articles précédents vous avez acquis Fiche technique SQL : les sous-requêtes Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont réalisées en SQL.

Plus en détail

Chapitre 4 : Le langage SQL

Chapitre 4 : Le langage SQL Chapitre 4 : Le langage SQL Table des matières I) Introduction...2 II) Rappel...2 III) Gestion de la base de données...2 1) Création de la base de données...2 2) Modification de la base de données...2

Plus en détail

Les requêtes de consultation. Ex. bibliothèque état de la base. Ex. bibliothèque état de la base. Consultation simple d'une table

Les requêtes de consultation. Ex. bibliothèque état de la base. Ex. bibliothèque état de la base. Consultation simple d'une table Les requêtes de consultation Représente la ma jorité des requêtes SQL (Deuxième partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Encapsule complètement l'algèbre relationnel Une

Plus en détail

Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML

Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

Département Génie Informatique BD50. TP3 : Interrogation d une base de données Oracle 10G avec SQL*Plus Windows

Département Génie Informatique BD50. TP3 : Interrogation d une base de données Oracle 10G avec SQL*Plus Windows Département Génie Informatique BD50 TP3 : Interrogation d une base de données Oracle 10G avec SQL*Plus Windows Françoise HOUBERDON & Christian FISCHER Copyright Mars 2007 Contexte de travail : Après avoir

Plus en détail

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

SQL. Requête la plus simple. Projection. Requête la plus simple. Différents modes d interrogation. Requêtes mécanismes d interrogation des données

SQL. Requête la plus simple. Projection. Requête la plus simple. Différents modes d interrogation. Requêtes mécanismes d interrogation des données Requêtes mécanismes d interrogation des données SQL! En entrée : une ou plusieurs tables! En sortie : une table réponse sandra.bringay@univ-montp3.fr roland.mahiques@univ-montp3.fr alexandre.pinlou@univ-montp3.fr

Plus en détail

Chapitre IV. Les bases de données relationnelles en pratique : Langages d interrogation. Relation : ensemble ou multi-ensemble?

Chapitre IV. Les bases de données relationnelles en pratique : Langages d interrogation. Relation : ensemble ou multi-ensemble? Chapitre IV Les bases de données relationnelles en pratique : Langages d interrogation Relation : ensemble ou multi-ensemble? Un multi-ensemble (multiset) est une collection d éléments pour laquelle on

Plus en détail

Kit de survie sur les bases de données

Kit de survie sur les bases de données Kit de survie sur les bases de données Pour gérer un grand nombre de données un seul tableau peut s avérer insuffisant. On représente donc les informations sur différentes tables liées les unes aux autres

Plus en détail

SQL (Deuxième partie) Walter RUDAMETKIN

SQL (Deuxième partie) Walter RUDAMETKIN SQL (Deuxième partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Les requêtes de consultation Représente la majorité des requêtes Encapsule complètement l'algèbre relationnel Une

Plus en détail

2 ème PARTIE : LE LANGAGE SQL

2 ème PARTIE : LE LANGAGE SQL 2 ème PARTIE : LE LANGAGE SQL PLAN : I. Le langage de manipulation des données II. Le langage de définition des données III. Administration de la base de données IV. Divers (HORS PROGRAMME) Introduction:

Plus en détail

I) Bases de données et tables :

I) Bases de données et tables : I) Bases de données et tables : Un S.G.B.D. est un outil pour organiser, stocker, modifier, calculer et extraire des infos. Une B.D.R. peut être considérée comme un ensemble de tables à 2 dimensions. Exemple

Plus en détail

Chapitre 4 LE LANGAGE D INTERROGATION DE DONNÉES SQL

Chapitre 4 LE LANGAGE D INTERROGATION DE DONNÉES SQL Chapitre 4 LE LANGAGE D INTERROGATION DE DONNÉES SQL 1. Définitions Clause : mot-clé Requête : interrogation ou action structurée sur la BD Requête d interrogation composée de l ensemble des clauses :

Plus en détail

Interrogation de bases de données avec le langage SQL

Interrogation de bases de données avec le langage SQL Web dynamique avec PHP et MySQL Interrogation de bases de données avec le langage SQL C. Sirangelo & F. Tort Interroger une base avec SQL Interroger une base de données: extraire des données de la base

Plus en détail

Interrogation d une base de données Oracle 10G

Interrogation d une base de données Oracle 10G Interrogation d une base de données Oracle 10G 1 Requêtes LMD 1. Liste du contenu de chaque table de la base * tab * [NOM_TABLE] (où NOM_TABLE est le nom de la table à afficher) 2. Liste des serveurs Nom,

Plus en détail

Rudiments SQL pour Oracle

Rudiments SQL pour Oracle Rudiments SQL pour Oracle Cyril Gruau 23 septembre 2005 Résumé Ce support de cours regroupe les instructions SQL basiques qui permettent de mettre en place une base de données sur un serveur Oracle, de

Plus en détail

PRESENTATION. Document1 Serge GUERINET Page 1

PRESENTATION. Document1 Serge GUERINET Page 1 PRESENTATION Les domaines couverts par la série STG sont tous des pourvoyeurs ou exploitants des bases de données. Que l'on gère la relation aux clients, le suivi de l'activité financière, la comptabilité

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Révisions sur les Bases de données. Lycée Thiers - PC/PC*

Révisions sur les Bases de données. Lycée Thiers - PC/PC* Bases de données Architecture clients-serveur Architecture trois tiers Vocabulaire des BDD Algèbre relationnelle Création/modification d une table Commandes SQL de manipulation de tables Définition formelle

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

Quelques exemples de requêtes SQL sur la base de données aviation

Quelques exemples de requêtes SQL sur la base de données aviation Quelques exemples de requêtes SQL sur la base de données aviation Note : divers exercices sont proposés. Leurs corrections se trouvent à la fin du document. Le mot-clé COUNT Combien de modèles d'avion

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Laboratoires de bases de données. Laboratoire n 3. Les Jointures. par Danièle BAYERS et Louis SWINNEN

Laboratoires de bases de données. Laboratoire n 3. Les Jointures. par Danièle BAYERS et Louis SWINNEN Département Informatique Laboratoires de bases de données Laboratoire n 3 Les Jointures par Danièle BAYERS et Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il peut

Plus en détail

F. Opérations multidimensionnelles

F. Opérations multidimensionnelles F. Opérations multidimensionnelles Roll up (drill-up)/drill down (roll down) Roll up (drill-up) : résumer, agréger des données en montant dans une hiérachie ou en oubliant une dimension Drill down (roll

Plus en détail

Université Paris 13 TP Base de données Année 2008-2009 Institut Galilée feuille 2 : requêtes SQL INFO1

Université Paris 13 TP Base de données Année 2008-2009 Institut Galilée feuille 2 : requêtes SQL INFO1 Université Paris 13 TP Base de données Année 2008-2009 Institut Galilée feuille 2 : requêtes SQL INFO1 Exercice 1 : requêtes simples Pour traiter de la vente par correspondance on considère la modélisation

Plus en détail

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr Structured Query Language Langage de manipulation des données stockées dans une base de données interrogation/insertion/modification/suppression

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Oracle Database 10g: Les fondamentaux du langage SQL I

Oracle Database 10g: Les fondamentaux du langage SQL I Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux du langage SQL I Durée: 3 Jours Description Ce cours offre aux étudiants une introduction à la technologie de

Plus en détail

Introduction aux bases de données relationnelles

Introduction aux bases de données relationnelles Formation «Gestion des données scientifiques : stockage et consultation en utilisant des ases de données» 24 au 27 /06/08 Introduction aux ases de données relationnelles Christine Tranchant-Dureuil UMR

Plus en détail

Opération DIVISION. Huit opérations de base de l algèbre relationnelle. SELECT [ALL] [DISTINCT] liste d'attributs FROM table

Opération DIVISION. Huit opérations de base de l algèbre relationnelle. SELECT [ALL] [DISTINCT] liste d'attributs FROM table Opération DIVISION Huit opérations de base de l algèbre relationnelle PROJECTION SELECTION JOINTURE SELECT [ALL] [DISTINCT] liste d'attributs FROM table SELECT liste d'attributs FROM table WHERE condition

Plus en détail

Langage de Requêtes. talel@infres.enst.fr

Langage de Requêtes. talel@infres.enst.fr Langage de Requêtes talel@infres.enst.fr Supports de cours : (1) Database Management Systems, R. Ramakrishnan and J. Gehrke, ed. McGrawHill, 2000. (2) Bases de Données, G. Gardarin, ed. Eyrolles, 2001.

Plus en détail

Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS

Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS 2003-07-01 1 Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS Voici MRD de la BD AcciRoute pour représenter les rapports d accidents de la route. Le MRD

Plus en détail

Module 12 : Réponses aux ateliers PL/SQL

Module 12 : Réponses aux ateliers PL/SQL Module 12 : Réponses aux ateliers PL/SQL Tsoft/Eyrolles PL/SQL pour Oracle 12c 12-1 Atelier 1.1 Présentation de l environnement Questions 1. Une table peut-elle avoir plusieurs clés primaires? Réponse

Plus en détail

Informatique Initiation aux requêtes SQL. Sommaire

Informatique Initiation aux requêtes SQL. Sommaire cterrier.com 1/14 04/03/2008 Informatique Initiation aux requêtes SQL Auteur : C. Terrier ; mailto:webmaster@cterrier.com ; http://www.cterrier.com Utilisation : Reproduction libre pour des formateurs

Plus en détail

Algèbre Relationnelle et Introduction au Langage SQL

Algèbre Relationnelle et Introduction au Langage SQL T-GSI STAGE RENOVATION - SQL.Chapitre 1 - Algèbre Relationnelle et Introduction au Langage SQL Sources du document : Livre bible Oracle 9i, J. Gabillaud, Editions Eni ; Support Oracle ; ISO Norme 2382:1999

Plus en détail

Chapitre 4 : Partie3 LANGAGE DE MANIPULATION RELATIONNEL : S Q L

Chapitre 4 : Partie3 LANGAGE DE MANIPULATION RELATIONNEL : S Q L Chapitre 4 : Partie3 LANGAGE DE MANIPULATION RELATIONNEL : S Q L SQL (Structured Query Language) est le langage de manipulation des données relationnelles le plus utilisé aujourd hui. Il est devenu un

Plus en détail

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont Faculté de Sciences Économiques et de Gestion Bases de données Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont http://eric.univ-lyon2.fr/~jdarmont/ Plan du cours I. Introduction II. Le

Plus en détail

Informatique Pour Tous Interrogation n 5

Informatique Pour Tous Interrogation n 5 Nom : Prénom : Informatique Pour Tous Interrogation n 5 Soit la base de données relationnelle BANQUE constituée des trois relations (ou tables) suivantes : CLIENTS (idclient : int, nom, prenom, ville,)

Plus en détail

Ch 5 SELECT Sous-requêtes

Ch 5 SELECT Sous-requêtes SQL Ch 5 SELECT Sous-requêtes I. INTRODUCTION... 1 A. SYNTAXE GENERALE... 1 B. RESULTAT RENVOYE PAR UNE SOUS-REQUETE... 2 C. SOUS REQUETE INDEPENDANTES ET SOUS REQUETE DEPENDANTES... 2 II. SOUS-REQUETES

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours

IFT3030 Base de données. Chapitre 6 SQL. Plan du cours IFT3030 Base de données Chapitre 6 SQL Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des

Plus en détail

Techniques d optimisation standard des requêtes

Techniques d optimisation standard des requêtes 6 Techniques d optimisation standard des requêtes L optimisation du SQL est un point très délicat car elle nécessite de pouvoir modifier l applicatif en veillant à ne pas introduire de bogues. 6.1 Réécriture

Plus en détail

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

SQL et Bases de données relationnelles. November 26, 2013

SQL et Bases de données relationnelles. November 26, 2013 November 26, 2013 SQL : En tant que langage d interrogation En tant que langage de mise à jour En tant que langage de définition de données Langages de requête Langages qui permettent d interroger la BD

Plus en détail

Chapitre 3 La manipulation des données (LMD)

Chapitre 3 La manipulation des données (LMD) 75 Chapitre 3 La manipulation des données (LMD) 1. Introduction La manipulation des données (LMD) Le langage de manipulation de données permet aux utilisateurs et aux développeurs d'accéder aux données

Plus en détail

1. Introduction...2. 2. Création d'une requête...2

1. Introduction...2. 2. Création d'une requête...2 1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête

Plus en détail

RÉVISION/SYNTHÈSE BASES DE DONNÉES

RÉVISION/SYNTHÈSE BASES DE DONNÉES RÉVISION/SYNTHÈSE BASES DE DONNÉES CORRIGE - CONCEPTION D UNE BASE DE DONNÉES 1 Base de donnée Élève 1.1 Cahier des charges Dans un lycée proposant des formations cpge, les enseignants souhaitent pouvoir

Plus en détail

1.1 Création d'une table : CREATE TABLE

1.1 Création d'une table : CREATE TABLE SQL : LDD et LMD SQL ne se résume pas aux requêtes d'interrogation d'une base. Ce langage permet aussi de : - créer des tables - de modifier la structure de tables existantes - de modifier le contenu des

Plus en détail

Compte rendu du T.P. base de données SQL

Compte rendu du T.P. base de données SQL Compte rendu du T.P. base de données SQL (R0) Liste de noms de tous les hotels, avec leur numéros de station. Vérif. : On doit obtenir 78 réponses. Solution 0 SELECT nomh, ns FROM hotels (R1) En faisant

Plus en détail

4D - Référence SQL. Prise en main Utiliser le SQL dans 4D Commandes SQL Règles de syntaxe Transactions Fonctions Annexes

4D - Référence SQL. Prise en main Utiliser le SQL dans 4D Commandes SQL Règles de syntaxe Transactions Fonctions Annexes 4D - Référence SQL Prise en main Utiliser le SQL dans 4D Commandes SQL Règles de syntaxe Transactions Fonctions Annexes Prise en main Introduction Recevoir le résultat d'une requête SQL dans une variable

Plus en détail

Cours 2 : SQL Structured Query Language

Cours 2 : SQL Structured Query Language Cours 2 : SQL Structured Query Language SQL Langage permettant de définir, manipuler et contrôler les données d une BD relationnelle Objet d une norme de l Institut National Américain de Normalisation

Plus en détail

Bases de données. Langage SQL Introduction 2014-07-31 LANGAGE SQL

Bases de données. Langage SQL Introduction 2014-07-31 LANGAGE SQL 1 Bases de données LANGAGE SQL Introduction 2 Le langage de consultation le plus utilisé par les SGBDR modernes est le SQL (Structured Query Langage). SQL est fortement basé sur l algèbre relationnelle

Plus en détail

SQL est basé sur l algèbre et le calcul relationnels Il a été intégré à SQL/DS, DB2, puis Oracle, Ingres,

SQL est basé sur l algèbre et le calcul relationnels Il a été intégré à SQL/DS, DB2, puis Oracle, Ingres, SQL 1/66 SQL: historique SQL est basé sur l algèbre et le calcul relationnels Il a été intégré à SQL/DS, DB2, puis Oracle, Ingres, Il existe trois normes : SQL1 (1986) version minimale SQL1 (1989) + intégrité

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 1 : Vues et Index Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les Vues Généralités Syntaxe Avantages Conditions de mise à jour 2 Index Généralités

Plus en détail

INSIA Bases de données ORACLE 2 SELECT avancé SQL*Plus SQL Developper

INSIA Bases de données ORACLE 2 SELECT avancé SQL*Plus SQL Developper INSIA Bases de données ORACLE SELECT avancé SQL*Plus SQL Developper http://st-curriculum.oracle.com/tutorial/dbxetutorial/index.htm http://st-curriculum.oracle.com/ http://www.oracle.com/ Bertrand LIAUDET

Plus en détail

Requêtes S.Q.L. 1 Création des requêtes sous ACCESS

Requêtes S.Q.L. 1 Création des requêtes sous ACCESS Activité 15 Requêtes S.Q.L. Objectif Interroger une base de données avec des requêtes SQL. Fiche de savoir associée Ressource à utiliser Csi1Projets.pdf (Dossier 4) B.1.1.b. 1 En cliquant sur l'objet "Requêtes"

Plus en détail

Partie I du TD 1 au TD 5. Bases de données et MySQL -

Partie I du TD 1 au TD 5. Bases de données et MySQL - Système d information http://www.agroparistech.fr/systeme-d-information.html Partie I du TD 1 au TD 5 - Bases de données et MySQL - Liliana Ibănescu liliana.ibanescu@agroparistech.fr UFR d informatique

Plus en détail

Chapitre 08 Les requêtes d'interrogation en langage SQL

Chapitre 08 Les requêtes d'interrogation en langage SQL Chapitre 08 Les requêtes d'interrogation en langage SQL Introduction L'étude des requêtes d'interrogation de la base de données est séparée en deux parties : - Une première partie permet de revoir le langage

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

PL/SQL pour. Oracle 10g. Razvan Bizoï. Tsoft et Groupe Eyrolles, 2007, ISBN : 2-212-12056-7, ISBN 13 : 978-2-212-12056-1

PL/SQL pour. Oracle 10g. Razvan Bizoï. Tsoft et Groupe Eyrolles, 2007, ISBN : 2-212-12056-7, ISBN 13 : 978-2-212-12056-1 PL/ pour Oracle 10g Razvan Bizoï Tsoft et Groupe Eyrolles, 2007, ISBN : 2-212-12056-7, ISBN 13 : 978-2-212-12056-1 L architecture PL/ Le jeu de caractères Le bloc PL/ Sortie à l écran Déboguage Module

Plus en détail

Exercice 3: SQL. En vous aidant du modèle relationnel ci-dessus, vous écrirez les requêtes suivantes:

Exercice 3: SQL. En vous aidant du modèle relationnel ci-dessus, vous écrirez les requêtes suivantes: Exercice 3: SQL CLASSE (num_classe, nom_classe) Clé primaire: num_classe ETUDIANT ( num_et, nom_et, prenom_et, date_naiss_et, id_classe) Clé primaire: num_et Clé étrangère: id_classe faisant références

Plus en détail

SQL Les fondamentaux du langage (2ième édition)

SQL Les fondamentaux du langage (2ième édition) Introduction 1. Un peu d'histoire 11 2. Les normes SQL 12 3. Description rapide du modèle relationnel 14 3.1 Principaux concepts du modèle relationnel 15 3.2 Principales règles 16 4. Les opérateurs en

Plus en détail

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html 012345678901234567890123 INTRODUCTION A SQL SQL = Structured Query Language SEQUEL = Structured English as a QUEry Language standard ISO depuis 87. Avantages : implanté + ou - complètement sur principaux

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

L accès aux données, le langage SQL Page 1 / 14

L accès aux données, le langage SQL Page 1 / 14 L accès aux données, le langage SQL Page 1 / 14 Sommaire 1 Présentation... 2 1.1 Introduction... 2 1.2 Le langage SQL... 2 2 Le modèle de donnée utilisé... 4 3 Le langage d'interrogation des données LID...

Plus en détail

L2 sciences et technologies, mention informatique SQL

L2 sciences et technologies, mention informatique SQL Bases de données L2 sciences et technologies, mention informatique SQL ou : le côté obscure de la jolie théorie films titre réalisateur année starwars lucas 1977 nikita besson 1990 locataires ki-duk 2005

Plus en détail

Chapitre 2 La sélection simple

Chapitre 2 La sélection simple 2.1 La sélection simple Chapitre 2 La sélection simple La requête SELECT nous permet d'extraire des données à partir d'une base de données. La clause SELECT est suivie d'une ou de plusieurs colonnes, ce

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

420-PK6-SL Banques de données Avancées LES VUES

420-PK6-SL Banques de données Avancées LES VUES 420-PK6-SL Banques de données Avancées LES VUES CAS D'UTILISATION Prenons en exemple cette requête complexe : SELECT a.tablespace_name, a.contents, a.extent_management, a.allocation_type, a.segment_space_management,

Plus en détail

Plan. Bases de données. Cours 1 : Généralités & rappels. But du cours. Organisation du cours. Polytech Paris-Sud. Apprentis 4 ème année

Plan. Bases de données. Cours 1 : Généralités & rappels. But du cours. Organisation du cours. Polytech Paris-Sud. Apprentis 4 ème année Plan Bases de données Polytech Paris-Sud Apprentis 4 ème année Cours 1 : Généralités & rappels 1.1 Avant-propos 1.2 Algèbre relationnelle kn@lri.fr http://www.lri.fr/~kn 2/18 But du cours Organisation

Plus en détail

Nom : Prénom : Signature : Matricule : A. Le poids d'une personne en kilogramme, arrondi au gramme près.

Nom : Prénom : Signature : Matricule : A. Le poids d'une personne en kilogramme, arrondi au gramme près. Université de Sherbrooke, Département d informatique IFT187 : Éléments de bases de données, Examen périodique Professeur : Marc Frappier, Samedi 4 octobre 2014, 9h00 à 11h50, locaux D7-3021 et D7-2022

Plus en détail

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique Bases de données Jean-Yves Antoine VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr L3 S&T mention Informatique Bases de Données IUP Vannes, UBS J.Y. Antoine 1 Bases de données SGBD

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 11 : Les tables comme objets (3ème partie) Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Tables objet Rappels Exemple d insertion Sélection 2 Vues

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

Introduction aux bases de données

Introduction aux bases de données 1/73 Introduction aux bases de données Formation continue Idir AIT SADOUNE idir.aitsadoune@supelec.fr École Supérieure d Électricité Département Informatique Gif sur Yvette 2012/2013 2/73 Plan 1 Introduction

Plus en détail

V. LE LANGAGE SQL. 1. Introduction. a) Généralités

V. LE LANGAGE SQL. 1. Introduction. a) Généralités V. LE LANGAGE SQL 1. Introduction a) Généralités SQL = Structured Query Language Issu de SEQUEL (Structured English as a Query Language). Standard ANSI en Octobre 1986 (proposition X3H2). SQL permet la

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Extrait du programme Information et Gestion pour les 2 spécialités de Première Sciences et Technologies de la Gestion

Extrait du programme Information et Gestion pour les 2 spécialités de Première Sciences et Technologies de la Gestion 1 Extrait du programme Information et Gestion pour les 2 spécialités de Première Sciences et Technologies de la Gestion 2.3- La base de données THÈMES SENS ET PORTÉE DE L ÉTUDE NOTIONS ET CONTENUS À CONSTRUIRE

Plus en détail

Chapitre 6 Les sous-requêtes

Chapitre 6 Les sous-requêtes Chapitre 6 Les sous-requêtes Une caractéristique très puissante SQL est la possibilité d imbriquer une requête SQL (SELECT) dans une autre. En effet, nous pouvons utiliser le résultat d une requête pour

Plus en détail

SGBD III. Le langage d'interrogation SQL

SGBD III. Le langage d'interrogation SQL SGBD III. Le langage d'interrogation SQL Version: 9.2015 manuel élaboré par Jean-Marie Ottelé, ECG e-mail : jean-marie.ottele@education.lu III. Les langages d'interrogation Un langage d interrogation permet

Plus en détail