LE LANGAGE SQL. 1. Préambule Le langage SQL Les Tables de l exemple...30

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

Download "LE LANGAGE SQL. 1. Préambule...1 2. Le langage SQL...1. 3. Les Tables de l exemple...30"

Transcription

1 LE LANGAGE SQL 1. Préambule Le langage SQL Le standard SQL Les limites de SQL Langage non procédural SQL : une portabilité limitée SQL : un Langage de Manipulation des Données : Le LID Projection (La commande SELECT FROM ) Le symbole * La clause AS Les champs calculés Concaténation de chaînes de caractères Les agrégats Sélection ou restriction (La commande SELECT FROM WHERE ) Clauses complémentaires La clause DISTINCT La clause ORDER BY La clause GROUP BY (le partitionnement) La clause HAVING Les Différents opérateurs Les opérateurs de comparaisons : Les opérateurs logiques Les opérateurs arithmétiques Les opérateurs Spéciaux L opérateur de concaténation Les fonctions les fonctions arithmétiques Expression sur les dates Expression sur les heures Jointure La jointure de 2 tables La jointure de plusieurs tables Les jointures naturelles La jointure externe Les techniques d imbrication Utilisation de la technique de l imbrication Utilisation de l opérateur IN, la formulation algébrique Utilisation de l opérateur = Utilisation de l opérateur EXISTS Les requêtes sous-requêtes ou requêtes imbriquées Les requête sous-requêtes Les requête imbriquées Les requêtes dépendantes ou corrélées L autojointure Union, Intersection et Différence Union Intersection Différence Les Tables de l exemple Table Ingrédients : Table Recette...30

2 3.3. Table Types : Table Couts Table Difficultes : Table Contenir Table Chefs Le MCD Le MLD Graphique...32

3 1. Préambule Pour ce cours, considérons le schéma relationnel suivant, qui décrit la base de données CUISINE, et qui nous servira d exemple : MLD Ingrédients (Code_Ingrédient, Nom_Ingrédient) Contenir (#Code_Ingrédient, #Code_Recette, Quantite,Unite_quantite) Types (Code_Type, Libelle_Type ) Couts (Code_Cout, Libelle_Cout) Difficultes( Code_Difficulte, Libelle_Difficulte ) Recettes (Code_Recette, Nom_Recette, Nb_Personnes, Preparation, Cuisson, Repos, #Code_Type, #Code_Cout, #Code_Difficulte, #Code_Chef ) Chefs (Code_Chef, Nom_Chef, Prenom_Chef, Date_Naiss_Chef, Adresse_Chef, Telephone_Chef) Rappels des vocabulaire Algèbre Relationnelle MCD MLD MPD Relation Entité/Association Relation Table Clé primaire Identifiant Identifiant Clé primaire Attribut Propriété/Caractéristique Propriété Colonne Tuple Occurrence/Tuple Enregistrement Enregistrement/Ligne 2. Le langage SQL SQL ( Structured Query Language) a une triple fonction. Interrogation : et modification d'une base de données relationnelle Définition et modification du schéma d'une base de données relationnelle Contrôle de sécurité et d'intégrité de la base Le standard SQL La norme définit deux langages SQL : Un langage de définition de données, SQL-LDD, à utiliser pour déclarer les structures logiques de données et leurs contraintes d'intégrité. La gestion des accès aux données est précisée en langage de contrôle de données: SQL-LCD Un langage de manipulation de données SQL-LMD, pour supprimer, ajouter ou modifier des données. On peut en plus, distinguer la partie interrogation (LID) de la partie mise à jour. Page 1/32 Année SG - LMS

4 Les principales instructions du langage SQL LMD LDD LID LCD SELECT INSERT UPDATE DELETE TRUNCATE 1 GRANT REVOKE CREATE ALTER DROP RENAME 2.2. Les limites de SQL Langage non procédural Le langage SQL présente des limites. SQL est un langage de requête, non un langage de programmation: il est non procédural. En outre, SQL ignore la notion de variables dimensionnée et indicée, de format, les affectations, les entrées-sorties, etc. Toutes ces notions étant nécessaires, certains fournisseurs ont fait des ajouts à SQL, par exemple le SQL *Plus et PL/SQL de la société Oracle, ou TRANSAC-SQL de SQL Server SQL : une portabilité limitée Lorsqu'une application utilise une base de données, sa portabilité concerne les domaines suivants : portabilité des données vers des matériels différents, où leur représentation est différente, portabilité de l'architecture physique de la base, portabilité des requêtes d'accès au SGBD avec sous-jacent le problème des types de données, portabilité des permissions administratives d'accès. Ce qui est le plus portable dans SQL, c'est sa philosophie de modèle tabulaire de données, où l'on peut accéder aux informations par le contenu. Dans une moindre mesure, la manipulation simple de données est portable. Dans une mesure encore moindre, la définition des données est réutilisable d'un SGBDR à l'autre. Mais en pratique le portage demandera encore longtemps pas mal d'attention et d'efforts humains, du fait des différences entre les différents SGBDR commercialisés par les éditeurs SQL : un Langage de Manipulation des Données : Le LID Le LID permet d extraire des informations d une base de données et de les afficher sous forme de tableau. Le LID n est constitué que de la commande Select. 1 Ordre spécifique à ORACLE Page 2/32 Année SG - LMS

5 Notation utilisée : Les mots réservés SQL sont imprimés en lettres majuscules. Les noms symboliques ou expressions spécifiques à écrire par le programmeur sont imprimés en caractères minuscules. Les symboles < et > correspondent à la possibilité de répéter plusieurs fois l expression séparée par une virgule. Les expressions facultatives sont éditées entre crochets [ ]. Lorsqu'on peut choisir entre plusieurs expressions mais que, au moins l'une d'elles est obligatoire, elles sont regroupées entre accolades { }. L'alternative entre expressions est symbolisée par Le souligné en tirets indique le défaut. Le langage de manipulation de données contient le langage d interrogation de données (LID), ce dernier permet, comme son nom l indique, d interroger une base de données. Avec le langage SQL, c est la commande SELECT qui constitue le langage d interrogation de la base. Ce langage permet de : Sélectionner certaines colonnes d une table Sélectionner certaines lignes d une table (à partir de leur contenu) Combiner des informations venant de plusieurs tables. La syntaxe élémentaire comporte les deux clauses indiquant quels colonne (clause SELECT) sont à extraire et de quelle(s) tables(s) (clause FROM). Couper la phrase pour aller à la ligne ne change rien au résultat. SELECT NomColonne FROM NomTable ; Projection (La commande SELECT FROM ) Une projection s'exprime à l'aide du langage SQL par la clause : SELECT [DISTINCT] { * <nom_de_colonne>} FROM <nom_de_table> ; Toujours terminer un ordre SQL avec un point virgule. SQL n'élimine pas les doubles à moins que ceci soit explicitement demandé par le mot clé DISTINCT. Exemple : Liste des noms des recettes de la base : SELECT Nom_Recette FROM Recettes; Combien obtenez vous d enregistrements? Attention : l ordre dans lequel vous écrivez les colonnes détermine le résultat de l affichage. Page 3/32 Année SG - LMS

6 Exercice: Donner la requête permettant d obtenir la liste des noms des ingrédients Le symbole * Le symbole * : signifie que l'on affiche toutes les colonnes d'une table. Exemple : Liste de toutes les recettes. SELECT * FROM Recettes; Résultat: Exercice: Ecrire la requête permettant d obtenir la liste de tous les ingrédients La clause AS La clause AS lors d une projection permet de nommer les colonnes de la table autrement que par le nom de colonne enregistré dans la table, ce nom doit être unique. Ce n est pas une clause du SQL standard, elle est utilisée sous Access. Pour accepter les nouveaux noms avec des blancs, Access impose les crochets. SELECT [DISTINCT] { * <nom_de_colonne>} [ AS nom_alias ] FROM <nom_de_table> ; Exemple: Liste des type de plats : SELECT Libelle_Type AS Type_de_plat, code_type AS Numero FROM Types ; Page 4/32 Année SG - LMS

7 Les champs calculés. Le champ calculé résulte d une opération effectuée sur une colonne numérique existante d une table. Exemple : Présenter une augmentation de 10% du temps de préparation par recette SELECT Nom_recette, Preparation*1.10 FROM Recettes ; Exercice : Nous voulons cette fois une diminution de 10% du temps de préparation : Résultat La requête suivante fonctionne-t-elle? SELECT Nom_recette, Preparation * 1.10 as NouveauTempsPreparation, NouveauTempsPreparation / 60 as TempsPreparationEnHeure FROM Recettes ; Exercice : Afficher pour chaque recette le double du temps de repos avec entête de colonne résultante Concaténation de chaînes de caractères Concaténation des colonnes avec du texte. Il est possible d ajouter un libellé lors de l affichage des colonnes en utilisant le symbole pour Oracle ou & pour Access : Exemple : Ajouter le mot environ après l affichage de la colonne unite_quantite de la table Contenir. SELECT Code_Recette, Quantite, unite_quantite environ FROM Contenir ; Page 5/32 Année SG - LMS

8 Extrait du résultat : Exercice : Afficher le mot «très», juste avant la colonne Libelle_Cout de la table Couts : Les agrégats Les AGREGATS permettent d agréger plusieurs données en une seule. Les agrégats les plus utilisés sur les colonnes en SQL sont : MIN : correspond à la plus petite valeur de la colonne MAX : affiche la plus grande valeur de la colonne AVG : indique la moyenne (average) de toutes les données d une seule colonne SUM : affiche la somme des valeurs d une colonne (attention la colonne doit être numérique avec aucun champ à NULL) COUNT : Compte le nombre de lignes d une colonne quelles que soient ses valeurs. Bien retenir que l utilisation des agrégats au niveau des colonnes ne ramène qu un seul nombre. C est la fonction même d une agrégation. Exemple : Combien d enregistrements avons nous dans la table Ingredients? SELECT count(*) FROM Ingredients ; 27 Exemple : Combien avons-nous de noms de recette dans la table Recettes? SELECT count (Nom_Recette) FROM Recettes ; Exercice : Afficher la quantité mini, maxi et moyenne des ingrédients de la table Contenir. Page 6/32 Année SG - LMS

9 NB : Quel résultat obtient-on après avoir lancé la requête suivante? SELECT MIN(quantite) as Minimum, code_ingredient as ingredient_correspondant FROM Contenir ; Exercice : Indiquer le nombre maximum de personnes prévues dans les recettes Sélection ou restriction (La commande SELECT FROM WHERE ) Une sélection ou restriction s'exprime par un bloc d'instructions du type : SELECT [DISTINCT] { * <nom_de_colonne>} FROM <nom_des_tables> WHERE <conditions de selection>; La combinaison avec une projection s'effectue en remplaçant * par la liste des colonnes à projeter. Attention : Dans la clause WHERE les sélections de caractères ou de dates se font entre guillemets, les sélections de nombre se font sans guillemets. Le format standard retenu dans ce cours pour la date sera JJ/MM/AAAA. Il est à noter que le format de la date varie selon les SGBD utilisés. Exemple: La liste des recettes prévues pour 4 personnes SELECT * FROM Recettes WHERE Nb_Personnes = 4; Exercice : Donner la liste code de recette dont le libellé est TAPENADE. Page 7/32 Année SG - LMS

10 Clauses complémentaires La clause SELECT FROM WHERE peut-être enrichie par diverses clauses complémentaires La clause DISTINCT La clause SELECT FROM WHERE peut-être enrichie par le complément DISTINCT Les doublons s appliquent à une ligne et non à un champ. L ordre SQL: SELECT distinct Nom_Chef, Prenom_Chef FROM Chefs ; Est équivalent à sous ACCESS (sous Oracle cela génère une erreur) : SELECT distinct (Nom_Chef, Prenom_Chef) FROM Chefs ; La requête suivante fonctionne sous Oracle mais ne fonctionne pas sous Access : SELECT count (distinct Prenom_Chef) FROM Chefs; N oubliez pas DISTINCT quand il est nécessaire, c est le petit détail qui évite bien des erreurs. DISTINCT n est pas à utiliser lorsque l on souhaite tous les enregistrements (doublons compris) comme par exemple la liste des Clients ou Fournisseurs dans les exercice standards. Exemple: Ecrire la requête donnant la liste des prénoms des chefs SELECT DISTINCT Prenom_Chef FROM Chefs; Exemple: Ecrire la requête donnant la liste des prénoms de la table Chef SELECT Prenom_Chef FROM Chefs ; Exercice: Liste des différents Noms des chefs cuisiniers Page 8/32 Année SG - LMS

11 La clause ORDER BY Cette clause permet de trier le résultat d une requête par ordre croissant (ASCendant) ou décroissant (DESCendant). Dans le cas d un tri en ordre croissant, ASC est facultatif car il est le défaut. Pour du numérique le tri ASC correspond aux nombres classés du plus petit au plus grand (du négatif au positif). Pour l alphabétique le tri ASC correspond à l ordre lexicographique (du dictionnaire). Pour les dates le tri ASC correspond du plus ancien au plus récent. NB : Les valeurs numériques stockées en chaîne de caractères sont triés par ordre alphabétique 1, 10, 100, 2, 20, 21 Le Tri sur un champ calculé se fait en rappelant dans le ORDER BY le champ calculé. Exemple : Présenter la quantité des ingrédients augmentée de 10% classé par unité des ingrédients par ordre alphabétique et décroissant pour la nouvelle quantité. SELECT Unite_Quantite, Quantite * 1.10 FROM Contenir ORDER BY Unite_Quantite, Quantite * 1.10 DESC; Extrait du Vous remarquez que «CS» (Cuillère à Soupe) est répété deux fois avec la même quantité! qu aurait-t il fallu comme paramètre pour n avoir qu une seule ligne? Attention : Dans le ORDER BY la virgule des décimaux est interprétée comme séparateur de colonne il est nécessaire d utiliser le point. Exercice : Trier le nom des chefs dans l ordre croissant de leur nom et prénom du plus jeune au plus vieux. Vous obtenez ce résultat : Page 9/32 Année SG - LMS

12 Que remarquez-vous? Exercice : Que faudrait-il écrire pour avoir réellement ce classement du plus jeune au plus vieux? Remarque il est également possible de ne pas recopier le nom des colonnes à trier en respectant l ordre d affichage des colonnes du SELECT : Exemple : SELECT Unite_Quantite, Quantite * 1.10 FROM Contenir ORDER BY 1, 2 DESC ; La clause GROUP BY (le partitionnement) Elle permet de constituer des sous-ensembles d enregistrements dans une requête. Noter que chaque colonne citée dans le SELECT hormis les agrégats doit être incluse dans le GROUP BY. Mais le GROUP BY peut contenir des colonnes supplémentaires par rapport au SELECT. La clause Group by ne doit contenir que des champs de la clause SELECT. Attention : Ne faire des regroupements que sur des colonnes significatives, comme un identifiant par exemple, pour éviter les homonymes. Exemple : Indiquer le poids total d ingrédients en grammes. par recette SELECT Code_Recette, SUM(Quantite) FROM Contenir WHERE Unite_Quantite = Gr GROUP BY Code_Recette ; Page 10/32 Année SG - LMS

13 Exercice : Ajoutez la colonne «Unite_Quantite» lors de l affichage de la requête précédente (pour bien préciser que ce sont des grammes) : Autre exercice : Donner la liste des recettes par nombre de personnes : La clause HAVING C est l équivalent de la clause WHERE pour un GROUP BY. Cela sert de critère de sélection pour les regoupements. Ils s appliquent en général sur les agrégats. Exemple : : Indiquer les recettes dont le poids total en grammes est supérieur à 230. SELECT Code_Recette, SUM(Quantite) AS Somme_Qte FROM Contenir WHERE Unite_Quantite = Gr GROUP BY Code_Recette HAVING SUM(Quantite) > 230; Exercice Donnez la liste des recettes par nombre de personnes et dont le nombre de personnes ne dépasse pas 5 Attention : La clause HAVING doit suivre la clause GROUP BY et doit s appliquer à un regroupement de données sur lequel on a pratiqué un GROUP BY. Toutes les colonnes du HAVING doivent figurer dans le SELECT précédent. Page 11/32 Année SG - LMS

14 Les Différents opérateurs Les opérateurs de comparaisons : Opérateur Description = Egal à!= ou <> Différent de > Supérieur à >= Supérieur ou Egal à < Inférieur à <= Inférieur ou Egal à Like Comme Pour l'opérateur LIKE vous pouvez utilisez des caractères «Joker». Cet opérateur est très utile pour effectuer des recherches dans des chaînes alphanumériques. Il est à noter également que selon les SGBD les «Jokers» peuvent varier. Sous Access : * : remplace de 0 à n caractères quelconques exemple : like 'M*'? : remplace un caractère quelconque et un seul exemple : like '??A' Sous Oracle : % : remplace de 0 à n caractères quelconques exemple : like 'M%' _ : remplace un caractère quelconque et un seul exemple : like ' A' Exemple : Liste recettes commençant par la lettre T SELECT * FROM Recettes Where Nom_Recette like "T*" ; Si on remplace le LIKE par = quel résultat obtient-on? Exercice : Liste des noms des Ingrédients de 3 lettres. Remarquer que sous Access les majuscules ne se distingue pas des minuscules, mais sous Oracle la casse est à respecter. Page 12/32 Année SG - LMS

15 Les opérateurs logiques Opérateur Not And Or Description exprime le contraire de la condition les deux conditions doivent être vérifiées simultanément au moins une des deux conditions doit être vérifiée Les opérateurs logiques s utilisent après la clause WHERE vous ne pouvez les utiliser juste après le SELECT. Exercice: Liste des Recettes dont le code est supérieur à 2 : Les opérateurs arithmétiques Opérateur Description + et - Addition et Soustraction * et / Multiplication et Division ** et ^ Exponentiation La difficulté dans l utilisation des opérateurs arithmétiques consiste à se demander s il faut les utiliser dans le SELECT ou après le WHERE. Après le SELECT, l opération concerne tous les enregistrements : Exemple : Indiquer le temps total de préparation, de cuisson et de repos pour chaque recette : SELECT Nom_Recette, Preparation+Cuisson+Repos as Temps_Total FROM Recettes ; * Exemple : Indiquer le temps de préparation, de cuisson et de repos pour chaque recette dont le total de préparation est strictement supérieur à 40 mn: SELECT Nom_Recette, Preparation, Cuisson, Repos FROM Recettes WHERE PREPARATION+REPOS+CUISSON > 40 ; Page 13/32 Année SG - LMS

16 Exercice : Indiquer le temps moyen pour réaliser une recette : Ou Les opérateurs Spéciaux Opérateur Between AND In Is Null Description Entre et Dans (le champ) Est indéfini ou ne contient aucune donnée Any Au moins 1 All Tout BETWEEN AND L utilisation de BETWEEN dans la clause WHERE permet de déterminer un intervalle. Exemple : Liste des Chefs nés entre 1945 et 1955 Syntaxe sous Oracle : SELECT * FROM Chefs WHERE Date_Naiss_Chef BETWEEN 01/01/1945 AND 31/12/1955 ; Syntaxe sous Access : SELECT * FROM Chefs WHERE Date_Naiss_Chef BETWEEN #01/01/1945# AND #31/12/1955#; Page 14/32 Année SG - LMS

17 Exercice : Indiquer les recettes dont le temps de préparation se situe entre 0 et 15 mn: IN L utilisation de IN Dans la clause WHERE permet de rechercher une valeur dans un ensemble de valeurs données. Exemple : Liste des informations des Chefs dont le nom est soit GREGOIRE soit PINEL SELECT * FROM Chefs WHERE Nom_Chef IN ( GREGOIRE, PINEL ) ; Exercice : Liste des recettes dont le temps de préparation est soit 10 mn ou 20 mn L opérateur de concaténation L'opérateur de concaténation symbolisé par la double barre verticale (AltGR+6 sur votre clavier ou Alt+0124) est disponible avec Oracle. Le symbole & est disponible pour Access. Une fonction Concat est également disponible. Il permet de présenter un résultat de deux colonnes sur une seule colonne. Exemple : Liste avec flèche des codes recettes le nom de la recette. SELECT Code_Recette Il'->' Il Nom_Recette FROM Recettes ; Page 15/32 Année SG - LMS

18 Les fonctions les fonctions arithmétiques Attention : certaines fonctions qui suivent ne sont pas applicables à tous les SGBD (Notamment pour Access). ABS (n) : Valeur absolue de n ABS(-23.5) = 23.5 MOD (M,N) : Reste de la division entière de M par N MOD(7,2) = 1 SIGN (n) : signe d'un entier: -1 si n<0, a si n=0, 1 si n>0 SIGN(-23.5) = -1 SIGN(0) = 0 SIGN(+23.5) = +1 POWER (M,N) : puissance POWER(2,3) = 8 SQRT (n) : racine carrée de n SQRT(16) = 4 SQRT(-16) = NULL ROUND(N,[M]) : arrondi d'un nombre ROUND(23.462,2)=23.46 ROUND(23.466,2)=23.47 ROUND(1200,-3)=1000 ROUND(1500,-3)=2000 TRUNC(N,[M]): troncature d'un nombre (partie entière si M=0) TRUNC(23.462,2)=23.46 TRUNC(23.466,2)=23.46 TRUNC(1200,-3)=1000 SUBSTR (chaîne, position, longueur) : extraire une chaîne SUBSTR('MARTIN',2,3) = 'ART' Exemple sous Access : Ne retenir que l arrondi par défaut du temps moyen temps de préparation+cuisson+repos : SELECT Nom_Recette,ROUND ( (Preparation+Cuisson+Repos)/3, 2) FROM Recettes;Les fonctions sur les caractères Page 16/32 Année SG - LMS

19 CHR (n) : retourne le caractère de la valeur ASCII n CHR(65) donne 'A' UPPER (chaîne) : transformation en majuscule UPPER('Dupont') = 'DUPONT' LOWER ( chaîne) : transformation en minuscule LOWER(' Dupont') donne ' dupont' INITCAP (chaîne) : première lettre en majuscule, reste minuscule INITCAP('dupoNT') donne ' Dupont' LENGTH (chaîne) : longueur d'une chaîne de caractères LENGTH('DUPONT') donne 6 LPAD(chaîne,longueur,caractère) = compléter par la gauche LPAD('Dupont',10,'*') donne '****Dupont' RPAD(chaîne,longueur,caractère) = compléter par la droite RPAD('Dupont',10,'*') donne 'Dupont****' SOUNDEX (chaîne) : fonction de comparaison phonétique nompilote=soundex(' Dupont') Cette expression est vraie pour tous les noms de pilote dont la prononciation est proche de 'Dupont' Expression sur les dates Le mot clé SYSDATE correspond à la date en cours chez Oracle, le mot Date() correspond à la date du jour sous Access. Exemple sous Oracle : SELECT TO_CHAR(SYSDATE, 'dd-mon-yyyy HH:MI:SS AM') FROM dual; Dual est une table fictive appelée Dummy table sous Oracle. Les dates sont ordonnées chronologiquement du passé vers l avenir, c est pourquoi les dates du passé sont inférieures aux dates récentes. Cette notion est à appliquer pour toutes les dates (dates d achat, date de ventes etc.). La date est un entier dont la date de référence est le 01/01/1900. Il est donc possible de faire des comparaisons sur les dates : >, <, <=, >=, <>. Exemples Date1 + Nombre = Date2 (attention le nombre correspond aux jours pour une date!!!) '10/10/2007' + 3 = ' 13/10/2007' Page 17/32 Année SG - LMS

20 Date 1 - Nombre = Date2 '10/10/2007' - 3 = ' 07/10/2007' Date1 - Date2 = Nombre '10/10/2007' - ' 07/10/2007' = 3 L année, le mois ou le jour peut être extrait de la date à l aide des mots suivants : YEAR, MONTH, DAY ainsi : Year (#25/10/2007#) = 2007 ; Year (DateNaissEntneur) = 2007; Month (#25/10/2007#) = 10 ; Month (DateNaissEntneur) = 10; Day (#25/10/2007#) = 25; Day (DateNaissEntneur) = 25; Year (Date())+1 : l année prochaine ; Month (Date()) +1 : le mois prochain ; Day (Date()) 1 : hier Ces fonctions peuvent être utilisées lors d une projection (colonne calculée) dans le SELECT ou dans une sélection, clause WHERE. Sous Oracle : To_CHAR( 25/10/2005, yyyy ) = 2005 ; To_CHAR(DateNaissEntneur, yyyy ) = 2005 ; To_CHAR ( 25/10/2005, mm ) = 10 ; To_CHAR (DateNaissEntneur, mm ) = 10 ; To_CHAR ( 25/10/2005, dd ) = 25 ; To_CHAR (DateNaissEntneur, dd ) = 25 ; To_CHAR(sysdate, yyyy ) + 1 : l année prochaine ; To_CHAR(sysdate, mm ) + 1 : le mois prochain ; To_CHAR(sysdate, dd ) 1 : hier (extraction de la date en chiffre) To_CHAR(sysdate, day ) affiche le jour exact de la journée en cours (ex: lundi) TO_CHAR(sysdate, 'HH:MI:SS') affiche l heure, les minutes et secondes Exemple : Indiquer les Chefs nés en novembre sous Access. SELECT * FROM Chefs WHERE Month(Date_Naiss_Chef) = 11 ; ou : SELECT * FROM Chefs WHERE Date_Naiss_Chef like #*/11/*#; Sous Oracle : select * FROM Chefs WHERE to_char(date_naiss_chef,'mm') = 11 ; ou: select * FROM Chefs WHERE to_char(date_naiss_chef like '%/12/%' ; Page 18/32 Année SG - LMS

21 Attention : Les requêtes avec «joker» ne fonctionne qu avec * ou % et non avec? ou _ Exercice: Liste des noms des chefs dont l âge est compris entre à 40 et 60 ans (sous Access). Sous Oracle nous obtenons : Exercice : Indiquer quel est la date de naissance du plus jeune chef Expression sur les heures L heure est définie en HH :MM :SS. l heure est aussi à précéder et succéder de # sous Access ou avec TO_CHAR pour Oracle Jointure Un cas particulier simple de jointure sans condition est le produit cartésien. Définition : Le produit cartésien, de deux tables R et S, est une table T ayant pour colonne la concaténation (l association) des colonnes de R et S. Tous les enregistrements de T sont obtenus par la concaténation de chaque enregistrement de R à tous les enregistrements de S. La table T contient donc R * S lignes. Page 19/32 Année SG - LMS

22 La jointure de 2 tables Avec SQL, le produit cartésien s'exprime en incluant plusieurs tables dans la clause FROM. Pour réaliser la jointure on spécifiera la condition de la jointure dans la clause WHERE de la requête. Lorsque l on souhaite connaître la valeur d un enregistrement lié à une autre table, on effectue la liaison avec la clé primaire et la clé étrangère. Exemple : Afficher pour chaque nom de recette le libellé de son type + SELECT Nom_Recette, Libelle_Type FROM Recettes, Types WHERE Recettes.Code_Type= Types.Code_Type; NB : Parce qu il y a ambiguïté sur la colonne Code_Type (le même nom appartient à 2 tables), il faut préfixer la colonne par sa table pour trouver l égalité. Question : Quel effet a la requête suivante : SELECT * FROM Recettes, Types? Exercice : Afficher pour chaque recette le libellé de sa difficulté. Il est possible d utiliser des alias pour renommer les tables pour le temps de la requête. Exemple : (le même que précédemment) SELECT Nom_Recette, Libelle_Type FROM Recettes R, Types T WHERE R.Code_Type= T.Code_Type; Page 20/32 Année SG - LMS

23 Exercice : Refaire l exercice précédent avec des alias : Exercice : La requête suivante est-elle correcte? SELECT Nom_Recette, Libelle_Cout FROM Recettes R, Couts C WHERE R.Code_Cout= Couts.Code_Cout; La jointure de plusieurs tables On utilise les jointures de plusieurs tables lorsque l on souhaite obtenir un lien entre des tables reliées deux par deux. Nous travaillons alors sur les jointures Clé primaire/clé étrangère. La clause WHERE comporte alors une condition de jointure pour 2 tables, 2 conditions de jointure pour 3 tables etc. Exemple : Donner la quantité et l unité de quantité par Recette (Nom_Recette) et ses ingrédients (Nom_Ingredient) : SELECT Nom_Ingredient, Nom_Recette, Quantite, Unite_Quantite FROM Ingredients I, Contenir C, Recettes R WHERE I.Code_Ingredient = C.Code_Ingredient AND C.Code_Recette=R.Code_Recette ; Page 21/32 Année SG - LMS

24 Extrait du Exercice : Donner pour chaque nom de recette, le libellé de son type et le libellé de son coût : Les jointures naturelles Une forme particulière de l'opération de jointure consiste à n'afficher qu'une des colonnes communes aux deux tables. Il s'agit alors d'une jointure naturelle. Exemple : SELECT Nom_Recette, Nb_Personnes, Types.* FROM Recettes, Types WHERE Recettes.Code_Type = Types.Code_Type ; La jointure externe 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 semi-jointure ou de jointure externe (outer join). Page 22/32 Année SG - LMS

25 Lorsque la requête est basée sur deux tables, deux semi-jointures peuvent être réalisées : la semi-jointure droite et la semi-jointure gauche. Dans l exemple ci dessous, la semi-jointure gauche consiste à ajouter au résultat de la jointure normale, l ensemble des Ingrédients qui n auraient pas de nom d ingrédients, ici ce n est pas possible car nous avons une intégrité référentielle très forte. Ce résultat est obtenu en ajoutant le symbole (+) à côté de Code_Ingrédients. Exemple : Quels sont les libellés de tous les codes_ingrédient? SELECT * FROM Ingredients, Contenir WHERE Ingredients.Code_Ingredient = Contenir.Code_Ingredient(+); Le signe (+) permet d ajouter une ligne fictive vide (NULL), mais qui vérifie la condition de jointure. La semi-jointure droite consiste à ajouter (+) à côté de Ingredients.Code_Ingredient. Dans ce cas, il s agirait d afficher des Code_Ingredient possédant un numéro inexistant dans la table Ingredients. Cela est peu vraisemblable à cause de l intégrité référentielle qu il est nécessaire de vérifier entre Ingredients et Contenir. La jointure généralisée consiste à faire apparaître les lignes des deux tables qui ne satisfont pas à la condition de jointure. La réalisation se fera par l union de la semi-jointure droite et de la semijointure gauche. SELECT * FROM table1, table2 WHERE colonne1 = colonne2(+) UNION SELECT * FROM table1, table2 WHERE colonne1(+) Les techniques d imbrication Utilisation de la technique de l imbrication Définition :Une requête imbriquée est composée de deux ou plusieurs SELECT. La première est appelée requête principale, la ou les suivantes, sous-requêtes. L exécution se fait en deux temps : D abord les sous-requêtes qui extraient les valeurs intermédiaires Puis la requête principale s exécute sur les valeurs intermédiaires. Le lien entre deux SELECT est réalisé par : IN si la sous-requête fournit plusieurs valeurs = si la sous-requête ne fournit qu une seule valeur Utilisation de l opérateur IN, la formulation algébrique Le IN indique que l on peut obtenir plus d une valeur dans la requête imbriquée, on compare donc une valeur à une liste de valeurs. On peut également utiliser le NOT IN pour indiquer les valeurs que l on ne veut pas retenir dans la requête imbriquée. Page 23/32 Année SG - LMS

26 Lorsque l on utilise que des IN nous avons une Formulation algébrique Exemple : Quelles sont les recettes réalisées par Guillaume OUDARD? SELECT Nom_Recette FROM Recettes WHERE Code_Chef IN (SELECT Code_Chef FROM Chefs WHERE Nom_Chef = OUDARD and Prenom_Chef = Guillaume ) ; Exercice : Quel sont les recettes dont le libellé de difficulté est facile? Utilisation de l opérateur = L opérateur égal indique que l on obtient une et une seule valeur à l issue de la requête imbriquée. Le égal est à utiliser lorsque l on est sûr (à l aide du texte) que nous n avons qu une seule valeur réponse dans la table. Exemple : Liste des recettes dont chef s appelle «Bernard PINEL» SELECT Code_Recette, Nom_Recette FROM Recettes WHERE Code_Chef = (SELECT Code_Chef FROM Chefs WHERE Nom_Chef = PINEL AND Prenom_Chef = Bernard ) ; Remarque : C est parce qu on est sûr qu il n y a qu un seul Chef qui s appelle Bernard PINEL que l on peut utiliser l opérateur égal. Exercice : Quel est le nom et le prénom du seul chef de la recette «Crêpes au chocolat». Page 24/32 Année SG - LMS

27 A la place de IN, il est possible d utiliser ANY, ALL ou EXISTS : ces mots clés doivent être utilisés lorsque la sous-requête est susceptible de retourner plusieurs résultats Utilisation de l opérateur ANY Définition : Une valeur est inférieure à ANY (x < ANY) si la valeur est inférieure à au moins une valeur quelconque de l ensemble. ANY détermine si la condition WHERE est vérifiée pour au moins une des valeurs renvoyées par la sous-requête. NB : x < ANY (SELECT ) signifie x < (SELECT MAX ). x > ANY (SELECT ) signifie x > (SELECT MIN ) x = ANY (SELECT ) signifie x IN (SELECT ) Exemple : Liste des chefs qui ont au moins une recette à proposer. SELECT Nom_Chef, Prenom_chef FROM Chefs WHERE Code_chef = ANY (SELECT Code_chef FROM Recettes ) ; Exercice : Liste des recettes où il y a au moins une heure de repos : Utilisation de l opérateur ALL Définition : Une valeur est inférieure à ALL (x < ALL) si toutes la valeur est inférieure à toutes les valeurs retournée par le select imbriqué. ALL détermine si la condition WHERE est vérifiée pour toutes les valeurs renvoyées par une sous-requête. NB : x < ALL (SELECT ) signifie x < (SELECT MIN ) x > ALL (SELECT ) signifie x > (SELECT MAX ) x <> ALL (SELECT ) signifie x NOT IN (SELECT ) Exemple : Liste des codes recette dont la préparation est supérieure à 60 mn SELECT code_recette from Recette WHERE preparation > ALL (select preparation from Recette WHERE preparation = 60) ; Exercice : Liste des Recette dont la préparation est supérieure à «la tapenade» Page 25/32 Année SG - LMS

28 Utilisation de l opérateur EXISTS Définition : EXISTS permet de créer une sous-requête qui renvoie Vrai si elle retourne des valeurs, sinon elle retourne Faux. EXISTS permet d évaluer la clause WHERE c est à dire si l expression logique est vérifiée pour cet enregistrement, ce dernier est conservé. Exemple : Liste des Chefs qui ne font pas de recettes. SELECT * FROM Recettes WHERE NOT EXISTS (SELECT Code_chef FROM Chefs); Exercice : Liste des Recettes dont le code difficulté est «Difficile» Les requêtes sous-requêtes ou requêtes imbriquées Avec le langage SQL, vous pouvez très facilement combiner les opérations de jointure, sélection et projection. Il est également possible d'imbriquer des blocs SELECT...FROM...WHERE à plusieurs niveaux. Les requêtes peuvent être formulées à l aide de la formulation prédicative, de la formulation algébrique ou de la formulation mixte Les requête sous-requêtes Exercice : Quels sont les chef plus jeunes que Philippe PINEL? Les requête imbriquées Il existe 3 types de formulations de requêtes imbriquées : La formulation prédicative qui est une formulation sans les IN La formulation algébrique qui n utilise que des IN La formulation mixte qui utilise une imbrication simple et une imbrication avec IN. Prenons l exemple de la requête : Le chef OUDARD utilise quels ingrédients dans ses recettes? Page 26/32 Année SG - LMS

29 La formulation prédicative est la suivante : SELECT Nom_Ingredient FROM Ingredients, Contenir, Recettes, Chefs WHERE Ingredients.Code_Ingredient = Contenir.Code_Ingredient AND Contenir.Code_Recette = Recettes.Code_Recette AND Recettes.Code_Chef = Chefs.Code_Chef AND Nom_Chef = "OUDARD"; La formulation algébrique est la suivante : SELECT Nom_Ingredient FROM Ingredients WHERE Code_Ingredient IN (SELECT Code_Ingredient FROM Contenir WHERE Code_Recette IN (SELECT Code_Recette FROM Recettes WHERE Code_Chef IN (SELECT Code_Chef FROM Chefs WHERE Nom_Chef = "OUDARD"))); La formulation mixte est la suivante : SELECT Nom_Ingredient FROM Ingredients, Contenir WHERE Ingredients.Code_Ingredient = Contenir.Code_Ingredient AND Contenir.Code_Recette in (SELECT Code_Recette FROM Recettes WHERE Code_Chef IN (SELECT Code_Chef FROM Chefs WHERE Nom_Chef = "OUDARD")); Les requêtes dépendantes ou corrélées Elle constitue une forme très puissante de requêtes. La requête principale (ou une sous-requête s il y a plusieurs niveaux) fournit un ensemble de valeurs à la requête imbriquée. Pour chacune de ces valeurs, la requête imbriquée est évaluée. Exemple : Liste du nombres de personnes le plus élevé par recette. Page 27/32 Année SG - LMS

30 SELECT Code_Recette, Nb_Personnes FROM Recettes A WHERE Nb_Personnes = (SELECT max(nb_personnes) FROM Recettes B WHERE A.Code_Recette= B.Code_Recette); L autojointure Une autre forme de jointure dont on a besoin est l'autojointure. 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'a 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ées par le synonyme des différentes tables. Exemple : Afficher les Codes Recettes qui utilisent les mêmes ingrédients SELECT Code_Recette, Code_Ingredient FROM Contenir A WHERE A.Code_Ingredient in (SELECT Code_Ingredient FROM Contenir B WHERE A.Code_Recette <> B.Code_Recette ) ; Exercice : Afficher les recettes qui utilisent les mêmes nombres de personnes: Union, Intersection et Différence Syntaxe : SELECT... Opérateur ensembliste SELECT... Règles : 1. Même nombre de colonnes, de types identiques dans chacun des select 2. Les doublons sont éliminés (distinct implicite) 3. Les titres des colonnes sont identiques à ceux du premier Select. 4. La largeur de la colonne est égale à la plus grande de tous les select. 5. La clause Order By fait référence au numéro de colonne et non plus à son nom. Page 28/32 Année SG - LMS

31 Union L'opérateur d'union est UNION. Le résultat de l union de deux requêtes est l ensemble des enregistrements des deux requêtes. Les enregistrements des deux requêtes doivent avoir la même structure. Exemple: Liste des ingrédients et des recettes commençant par la lettre C ou A. SELECT Nom_Ingredient FROM Ingredients Where Nom_Ingredient like C* UNION SELECT Nom_Ingredient FROM Ingredients Where Nom_Ingredient like A* Intersection L'opérateur d'intersection est: INTERSECT Le résultat de l intersection de deux requêtes est l ensemble des enregistrements communes aux deux requêtes. Les enregistrements des deux requêtes doivent avoir la même structure Différence L'opérateur de différence est: MINUS (sous Oracle), sous Access Minus n existe pas, il faut utiliser NOT IN. Requête 1 Requête 2 est l ensemble des enregistrements de la Requête 1 qui ne sont pas dans la Requête 2. Les deux requêtes doivent voir des enregistrements de même type. Exemple: Liste des Chefs qui ne font pas la Tartiflette. (C est en fait la liste de tous les chef, moins celui qui fait la tartiflette) SELECT Code_Chef, Nom_Chef, Prenom_Chef FROM Chefs, Recettes WHERE Chefs.Code_chef = Recettes.Code_Chef MINUS SELECT Code_Chef, Nom_Chef, Prenom_Chef FROM Chefs, Recettes WHERE Chefs.Code_chef = Recettes.Code_Chef AND Nom_Recette = Tartiflette ; Les requêtes jointures peuvent toujours être écrites avec des sous-requêtes. La lourdeur des sous-requêtes fait qu il faut les réserver aux requêtes qui ne peuvent s écrire autrement. Pour chaque requête, posez-vous systématiquement la question : dois-je mettre un distinct? Page 29/32 Année SG - LMS

32 3. Les Tables de l exemple Table Ingrédients : 3.2. Table Recette 3.3. Table Types : 3.4. Table Couts Page 30/32 Année SG - LMS

33 3.5. Table Difficultes : 3.6. Table Contenir 3.7. Table Chefs Page 31/32 Année SG - LMS

34 3.8. Le MCD Recettes Code_Recette Nom_Recette Nb_Personnes Preparation Cuisson Repos 1,n Contenir Quantite Unité_Qté 1, n 1, 1 Ingrédients Code_Ingrédient Nom_Ingrédient 1, 1 1, 1 1, 1 1, n 1, n 1, n Chefs 1, n Types Difficultés Couts Code_Chef Nom_Chef Prenom_Chef Date_Naiss_Chef Adresse_Chef Telephone_Chef Code_Type Libelle_Type Code_Difficulte Libelle_Difficulte Code_Cout Libelle_Cout 3.9. Le MLD Graphique Recettes Ingrédients Code_Recette Nom_Recette Nb_Personnes Preparation Cuisson Fk_Code_Recette Fk_Code_Ingrédient Contenir Quantite Unité_Qté Code_Ingrédient Nom_Ingrédient Repos Fk_Code_Chef Fk_Code_Cout Fk_Code_Difficulte Chefs Code_Chef Nom_Chef Prenom_Chef Date_Naiss_Chef Adresse_Chef Telephone_Chef Types Difficultés Couts Code_Type Libelle_Type Code_Difficulte Libelle_Difficulte Code_Cout Libelle_Cout Page 32/32 Année SG - LMS

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

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

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

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

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

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

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

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

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

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

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

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

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

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

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

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du Proyecto FAO COPEMED Universidad de Alicante Ramón y Cajal, 4 03001 - Alicante, España GCP/REM/057/SPA Web : www.fao.org/fi/copemed Tel : +34 96 514 59 79 Fax : +34 96 514 59 78 Email : copemed@ua.es Formation

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

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

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

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

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

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

Apprendre le langage SQL - Le DML - 1 / 21 - Apprendre le langage SQL par l exemple Partie 2 : le DML Apprendre le langage SQL - Le DML - 1 / 21 - 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

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

Le langage SQL : Le Langage de Manipulation des Données (LMD)

Le langage SQL : Le Langage de Manipulation des Données (LMD) T-GSI STAGE RENOVATION - SQL.Chapitre 3 - Le langage SQL : Le Langage de Manipulation des Données (LMD) Sources du document : Livre bible Oracle 9i, J. Gabillaud, Editions Eni ; Support Oracle ; ISO Norme

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

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

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

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

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

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

Introduction au langage SQL

Introduction au langage SQL Introduction au langage SQL 1. Description SQL est un acronyme pour Structured Query Language qui a été conçu par IBM, et a succédé au langage SEQUEL. C est maintenant le langage le plus utilisé dans les

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

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

Il est nécessaire de connaître au moins un système d'exploitation de type graphique.

Il est nécessaire de connaître au moins un système d'exploitation de type graphique. GBD-030 Oracle Prise en main Saint-Denis à 9h30 5 jours Objectifs : Une formation Oracle complète pour découvrir tous les concepts du système et les différentes façons de les utiliser concrètement tout

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

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

Analyse informatique : la société SBK

Analyse informatique : la société SBK Analyse informatique : la société SBK Document remis au candidat : Le sujet comporte 12 pages numérotées de 1/12 à 12/12. Il vous est demandé de vérifier que le sujet est complet dès sa mise à votre disposition.

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

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28 Introduction 1/28 2/28 Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Créer des tables à partir d un modèle I Utiliser

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

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

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

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

Bases de données. Chapitre 1. 1.1 Généralité sur les bases de données. 1.2 Avec sqlite3. 1.1.1 Le langage SQL et les bases de données

Bases de données. Chapitre 1. 1.1 Généralité sur les bases de données. 1.2 Avec sqlite3. 1.1.1 Le langage SQL et les bases de données Chapitre 1 Bases de données 1.1 Généralité sur les bases de données 1.1.1 Le langage SQL et les bases de données La base de données (BDD) est un système qui enregistre des informations. Ces informations

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

Module Com231A - Web et Bases de Données Notion 3 : SQL

Module Com231A - Web et Bases de Données Notion 3 : SQL Module Com231A - Web et Bases de Données Notion 3 : SQL Qu est ce qu une base de données? Introduction Une base de données est un ensemble d au moins un tableau contenant des données. Exemple : une base

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

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

Langages de requêtes. Plan du cours. Base de données exemple. Objectifs du cours. Plan du cours. Base de données exemple

Langages de requêtes. Plan du cours. Base de données exemple. Objectifs du cours. Plan du cours. Base de données exemple Plan du cours Langages de requêtes M1 Informatique Année 2010-2011 Jérôme Darmont Introduction Algèbre relationnelle Langage SQL Langage XQuery http://eric.univ-lyon2.fr/~jdarmont/ http://eric.univ-lyon2.fr/~jdarmont/

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

SOMMAIRE. Travailler avec les requêtes... 3

SOMMAIRE. Travailler avec les requêtes... 3 Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de

Plus en détail

SEANCE 2 : REQUETES DE SELECTION & FORMULAIRES DE CONSULTATION

SEANCE 2 : REQUETES DE SELECTION & FORMULAIRES DE CONSULTATION SEANCE 2 : REQUETES DE SELECTION & FORMULAIRES DE CONSULTATION Année universitaire 20015-2016 Masters Économie Société - Finances Informatique appliquée SGBD Pierre-Henri GOUTTE La requête de sélection

Plus en détail

Théorie et pratique de Base de données Oracle M.Boubetra 1 Système d Information But : gérer un ensemble d informations Stockage Consultation Modification Suppression Edition 2 Conception d un système

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

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

1 Création et manipulation d une base de données

1 Création et manipulation d une base de données Université Paris 13 TP Base de données Année 2013-2014 Institut Galilée SQL et ORACLE LI3 1 Création et manipulation d une base de données ans ce TP, nous allons créer la base de données de l exercice

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

Bases de données et Systèmes transactionnels

Bases de données et Systèmes transactionnels Bases de données et Systèmes transactionnels Dominique Laurent dominique.laurent@u-cergy.fr Tao-Yan Jen jen@u-cergy.fr Plan du cours Introduction Modèle Entité/Association Langage SQL - ORACLE Architectures

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

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Introduction au Système de Gestion de Base de Données et aux Base de Données

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

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

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

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

Bases de données. Licence Pro QSSI. patrick.marcel@univ-tours.fr http://www.info.univ-tours.fr/ marcel

Bases de données. Licence Pro QSSI. patrick.marcel@univ-tours.fr http://www.info.univ-tours.fr/ marcel Bases de données Licence Pro QSSI patrick.marcel@univ-tours.fr http://www.info.univ-tours.fr/ marcel contexte nous avons vu comment exprimer des requêtes simples nous avons vu des requêtes que nous ne

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

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

Bases de données cours 2 Éléments d algèbre relationnelle. Catalin Dima

Bases de données cours 2 Éléments d algèbre relationnelle. Catalin Dima Bases de données cours 2 Éléments d algèbre relationnelle Catalin Dima Qu est-ce qu une algèbre? Algèbre : ensemble de domaines et d opérations. Exemple : les nombres (naturels, réels, complexes). Leurs

Plus en détail

Filière Licence professionnelle GSIE - Auxerre Introduction aux bases de données (partie 2)

Filière Licence professionnelle GSIE - Auxerre Introduction aux bases de données (partie 2) Filière Licence professionnelle GSIE - Auxerre Introduction aux bases de données (partie 2) Marie-Noëlle Terrasse Département IEM, Université de Bourgogne 7 octobre 2004 1 Remarques générales Pour ce TP

Plus en détail

Éléments de bases de données IFT187

Éléments de bases de données IFT187 Université de Sherbrooke Département d informatique Éléments de bases de données IFT187 Notes complémentaires et synthétiques Marc Frappier, Ph.D. professeur UNIVERSITÉ DE SHERBROOKE i Avertissement Ce

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

TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD

TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD TRAVAUX PRATIQUES DE BASES DE DONNEES PARTIE A : CONCEPTION DU MCD ET MLD Cette partie est à réaliser sur papier uniquement. Il s agit de réaliser un modèle conceptuel de données (MCD) suivi du modèle

Plus en détail

CALCULS SIMPLES : LES FORMULES

CALCULS SIMPLES : LES FORMULES CALCULS SIMPLES : LES FORMULES Excel est capable d'éditer une valeur en faisant un calcul à partir de valeurs contenues dans différentes cellules. intro I - LES FORMULES A - Qu'est-ce qu'une formule C'est

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

Cours SQL. Base du langage SQL et des bases de données

Cours SQL. Base du langage SQL et des bases de données Cours SQL Base du langage SQL et des bases de données Auteur Tony Archambeau Site web http://sql.sh Date 24 mai 2014 Licence Mis à disposition selon les termes de la licence Creative Commons Attribution

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

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

VIII. Interrogation de documents avec XQuery

VIII. Interrogation de documents avec XQuery VIII. Interrogation de documents avec XQuery 350 XQUERY? Est un langage d interrogation de données XML N est pas un dialecte XML Est un sur-ensemble de XPath 2.0 Utilise le même modèle de données (XDM)

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

Plus en détail

Rapport de Cryptographie

Rapport de Cryptographie Cryptographie [MIF30] / Année 2008-2009 Rapport de Cryptographie Les Injections SQL Sylvie Tixier & François-Xavier Charlet Page 1 20/05/2009 Sommaire Introduction...3 Définition d une injection SQL...3

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

Algèbre relationnelle

Algèbre relationnelle Algèbre relationnelle Concepts Descriptifs : Bilan RELATION ou TABLE ATTRIBUT ou COLONNE DOMAINE ou TYPE CLE CLE ETRANGERE Langages de manipulation Langages formels : base théorique solide Langages utilisateurs

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

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

UTILISER LE SERVEUR MYSQL...

UTILISER LE SERVEUR MYSQL... MySQL (pour Windows 9x) UTILISER LE SERVEUR MYSQL... 2 LANCER LE SERVEUR MYSQL... 2 ARRETER LE SERVEUR MYSQL... 3 TRAVAIL AVEC LA CONSOLE MYSQL... 3 CREATION / SUPPRESSION D'UN BASE... 3 UTILISER UN BASE...

Plus en détail

MySQL / SQL EXEMPLES

MySQL / SQL EXEMPLES MySQL_exemples_janv04_mpT EXEMPLES 1 MySQL / SQL EXEMPLES Typologie du langage Il est possible d'inclure des requêtes SQL dans un programme écrit dans un autre langage (en langage C par exemple), ainsi

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

Instructions SQL. Première partie : Langage de description et de gestion des données

Instructions SQL. Première partie : Langage de description et de gestion des données Instructions SQL Première partie : Langage de description et de gestion des données Quelques instructions et leur syntaxe 1. Introduction Trois principales catégories d instructions. Instructions de création

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

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1

3 - Administration de BD SQL. Chapitre III. Administration des BD SQL. Actions possibles. Composants ORACLE. Chapitre 3 : Administration des BD SQL 1 3 - Administration de BD SQL Chapitre III Administration des BD SQL 3.1 Création de BD 3.2 Gestion des utilisateurs 3.3 Administration des transactions 3.4 Accès à une BD distante 3.5 Conclusions Composants

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

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

1 Partie A : administration d une base de donnée à travers PhpMyAdmin

1 Partie A : administration d une base de donnée à travers PhpMyAdmin Ce TP se compose en 2 sections : une section de prise en main (sur ordinateur) et une section d exercice (sur papier) concernant l algèbre relationnelle. 1 Partie A : administration d une base de donnée

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation 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

Plus en détail

TEPZZ 74 84 A_T EP 2 743 843 A1 (19) (11) EP 2 743 843 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G06F 17/30 (2006.01)

TEPZZ 74 84 A_T EP 2 743 843 A1 (19) (11) EP 2 743 843 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G06F 17/30 (2006.01) (19) TEPZZ 74 84 A_T (11) EP 2 743 843 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication: 18.06.14 Bulletin 14/2 (1) Int Cl.: G06F 17/ (06.01) (21) Numéro de dépôt: 1319246.7 (22) Date de dépôt:

Plus en détail

Cours de Bases de Données Avancées 2006-2007 Groupe cinema, Rapport 4

Cours de Bases de Données Avancées 2006-2007 Groupe cinema, Rapport 4 1 Annexes Avec ce rapport il faut rendre en annexe le script SQL corrigé qui permet de créer la base de données selon votre modèle relationnel ainsi que de la peupler avec un nombre de tuples suffisant.

Plus en détail