STRUCTURED QUERY LANGUAGE (SQL)

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

Download "STRUCTURED QUERY LANGUAGE (SQL)"

Transcription

1 Catégorie : Informatique / Base de données STRUCTURED QUERY LANGUAGE (SQL) Version 1.2 du 01/02/2015 Emmanuel Fruchart

2 SOMMAIRE SOMMAIRE... 2 AVANT-PROPOS... 4 INTRODUCTION AU LANGAGE SQL... 5 I PRESENTATION HISTORIQUE... 5 II DESCRIPTION TECHNIQUE... 6 BASE DE DONNEES EXEMPLE : BDCOURS... 7 I CAHIER DES CHARGES... 7 A Années scolaires... 8 B Périodes scolaires... 9 C Classes D Matières E Professeurs F Professeurs de remplacement G Enseignements II MODELE RELATIONNEL LE LANGAGE DE DEFINITION DES DONNEES I INTRODUCTION II LES TYPES DE DONNEES SQL A Les types chaînes de caractères B Les types numériques C Les types temporels D Les types binaires E Les types pour la base exemple bdcours III CREATION ET SUPPRESSION D'UNE BASE DE DONNEES A Création d'une base de données B Suppression d'une base de données IV CREATION, MISE A JOUR, SUPPRESSION D'UNE TABLE A Création d'une table B Mise à jour d'une table C Suppression d'une table D Création de la base exemple bdcours LE LANGAGE DE MANIPULATION DES DONNEES I INTRODUCTION II INSERTION D'UNE DONNEE DANS UNE TABLE A Commande d'insertion d'une seule donnée B Insertion de données primaires dans la base exemple bdcours III INTERROGATION DES DONNEES A Interrogation des données d'une seule table, sans regroupement ) Introduction ) Les mots clés SELECT, ALL, DISTINCT ) Les clauses de sélection ) Critères de sélection ) Critères de tri B Interrogation des données d'une seule table, avec regroupement(s) ) Clauses de regroupement ) Critères de regroupement C Interrogation des données de plusieurs tables ) Requêtes imbriquées ) Union, intersection, différence ) Jointures IV INSERTION D'UN ENSEMBLE DE DONNEES EN UNE SEULE FOIS V MISE A JOUR DE DONNEES VI SUPPRESSION DE DONNEES Page 2/99 02/03/15

3 TRANSACTIONS / ACCES CONCURRENTS I TRANSACTIONS II ACCES CONCURRENTS CONFIDENTIALITE (OU CONTROLE) DES DONNEES I OCTROI DE PRIVILEGES II RETRAIT DE PRIVILEGES Page 3/99 02/03/15

4 AVANT-PROPOS Le langage SQL étant fortement lié à ces concepts, des connaissances dans les domaines suivants sont supposées acquises : systèmes de gestion de bases de données (couramment appelés SGBD) modèle relationnel / algèbre relationnelle Page 4/99 02/03/15

5 INTRODUCTION AU LANGAGE SQL I PRESENTATION HISTORIQUE SQL (Structured Query Language) est, comme sa traduction en français l'indique, un langage structuré de requêtes. A l'origine, SQL est une évolution du langage SEQUEL (Structured English as a QUEry Language") développé par la compagnie IBM dans les années 70 pour accompagner son premier SGBD relationnel appelé SYSTEM-R. SQL est peu à peu devenu la norme en matière de langage relationnel. Plusieurs versions apparaissent successivement : SQL/86 (datant de 1986) est le premier standard officiel ratifié par les comités ISO (International Organization for Standardization) et ANSI (American National Standards Institute). SQL/89 permet en plus la définition des contraintes de référence. SQL/92, encore appelé SQL-2 ou SQL Standard, étend la norme avec les caractéristiques suivantes : Mise en place des connexions et sessions pour le client / serveur. Normalisation des types de données date et heure. Ajout explicite des opérateurs d'intersection et de différence. Généralisation de l'opérateur de jointure. Définition des contraintes d'intégrité. Traitement du SQL dynamique. Introduction d'un catalogue pour chaque base de données. C'est sur cette norme SQL/92, qu'on appellera dans toute la suite SQL Standard, que ce support de cours sera basé. Page 5/99 02/03/15

6 II DESCRIPTION TECHNIQUE SQL admet les caractéristiques suivantes : C'est un langage relationnel de type ensembliste (en particulier, il n'utilise pas de variable!) On dit que le langage SQL réalise une intégration verticale : il est adapté aussi bien à l'administrateur de base de données qu'à l'architecte d'applications et qu'au développeur. Les trois types d'utilisateurs utilisent la même gamme de mots réservés, dans des portées peut-être différentes. On dit que le langage SQL. réalise une intégration horizontale : il met à la disposition d'un utilisateur quelconque d'une base de données relationnelle des commandes qui permettent de : définir les données (on parle de LDD ou Langage de Définition des Données). manipuler les données (on parle de LMD ou Langage de Manipulation des Données). contrôler les données (on parle de LCD, ou Langage de Contrôle des Données). Il peut être interprété directement, ou encore incorporé (embedded) dans un langage procédural (type C ou Pascal). Tous les principaux SGBD relationnels (SGBDR) du marché, dont DB2, Oracle, Informix, SQL Server, Sybase, Ingres ou Access ont adopté SQL. Cependant, chaque SGBDR utilise sa propre version, sa propre variante du langage SQL. Il existe donc un ensemble de dialectes SQL, mais ceux ci étant relativement proches les uns des autres, SQL est un langage relativement portable. Page 6/99 02/03/15

7 BASE DE DONNEES EXEMPLE : BDCOURS I CAHIER DES CHARGES Le responsable des enseignements d un lycée souhaite gérer les enseignements dispensés. Il souhaite mettre en place la base de données bdcours, contenant les informations et tables suivantes : Page 7/99 02/03/15

8 A Années scolaires Nom de la table : annee Champs : id_annee entier desc_annee 50 caractères nb_filles entier nb_garcons entier Une année scolaire de la table annee se définit de manière unique par son identifiant id_annee. Le champ desc_annee contient quant à lui une description littérale de l'année scolaire ainsi définie. Les champs nb_filles et nb_garçons sont là pour permettre d'établir des statistiques. Exemple : id_annee desc_annee nb_filles nb_garcons 2014 Année Scolaire Année Scolaire Page 8/99 02/03/15

9 B Périodes scolaires Nom de la table : periode Champs : id_periode 2 caractères desc_periode 50 caractères Une période de la table periode représente un trimestre de l année scolaire. Chaque période se définit de manière unique par son identifiant littéral id_periode. Le champ desc_periode contient quant à lui une description littérale de la periode ainsi définie. Exemple : id_periode desc_periode 1T Premier trimestre 2T Deuxième trimestre 3T Troisième trimestre Page 9/99 02/03/15

10 C Classes Nom de la table : classe Champs : id_classe 4 caractères desc_classe 50 caractères Au sein du lycée, on retrouve chaque année les mêmes classes (avec des élèves différents). Une classe de la table classe se définit de manière unique par son identifiant littéral id_classe. Le champ desc_classe contient quant à lui une description littérale de la classe ainsi définie. Exemple : id_classe desc_classe 2ND1 Seconde 1 2ND2 Seconde 2 2ND3 Seconde 3 1LIT 1ère L 1SES 1ère ES 1SCI 1ère S TLIT Terminale L TSES Terminale ES TSCI Terminale S Page 10/99 02/03/15

11 D Matières Nom de la table : matiere Champs : id_matiere 4 caractères desc_matiere 50 caractères Chaque matière enseignée de la table matiere se définit de manière unique par son identifiant littéral id_matiere. Le champ desc_matiere contient quant à lui sa description. Exemple : id_matiere desc_matiere ANGL Anglais FRAN Français HGEO Histoire Géographie MATH Mathématiques PHCH Physique Chimie PHIL Philosophie SCVT Sciences et Vie de la Terre SECS Sciences Economiques et Sociales Page 11/99 02/03/15

12 E Professeurs Nom de la table : professeur Champs : id_professeur 8 caractères nom 50 caractères prenom 50 caractères sexe 1 caractère date_naissance date id_matiere 4 caractères Un professeur du lycée est caractérisé dans la table professeur par son identifiant littéral id_professeur. Les champs nom, prenom et date_naissance donnent les informations minimales sur le professeur. A noter qu un même professeur peut enseigner éventuellement plusieurs matières mais possède une matière de rattachement qui est donnée par le champ id_matiere. Exemple : id_professeur nom prenom sexe date_naissance id_matiere DUBOISAM Dubois Amélie F ANGL LEROYTHO Leroy Thomas H ANGL DUBOISGE Dubois Gérard H FRAN MOREAUPA Moreau Patrick H FRAN DURANDST Durand Stéphane H HGEO MORELSTE Morel Stéphanie F HGEO FOURNIER Fournier Nicolas H MATH PETITCHR Petit Christophe H MATH GARCIATH Garcia Thierry H PHCH THOMASVI Thomas Vincent H PHCH GIRARDAN Girard Antoine H PHIL LAMBERTA Lambert Alice F NULL PHIL LEFEBVRE Lefebvre Géraldine F SCVT MARTINEZ Martinez Nathalie F SCVT LEROYPHI Leroy Philippe H SECS ROUSSELJ Roussel Jeanne F NULL SECS Page 12/99 02/03/15

13 F Professeurs de remplacement Nom de la table : professeur_rem Champs : id_professeur 8 caractères nom 50 caractères prenom 50 caractères sexe 1 caractère date_naissance date id_matiere 4 caractères Un professeur remplaçant du lycée est caractérisé dans la table professeur_rem par son identifiant littéral id_professeur. Les champs nom, prenom et date_naissance donnent les informations minimales sur le professeur. Exemple : id_professeur nom prenom sexe date_naissance id_matiere DUBOISAM Dubois Amélie F ANGL LEROYTHO Leroy Thomas H ANGL DUBOISGE Dubois Gérard H FRAN MOREAUPA Moreau Patrick H FRAN DURANDST Durand Stéphane H HGEO MORELSTE Morel Stéphanie F HGEO FOURNIER Fournier Nicolas H MATH PETITCHR Petit Christophe H MATH GARCIATH Garcia Thierry H PHCH THOMASVI Thomas Vincent H PHCH GIRARDAN Girard Antoine H PHIL LAMBERTA Lambert Alice F NULL PHIL LEFEBVRE Lefebvre Géraldine F SCVT MARTINEZ Martinez Nathalie F SCVT LEROYPHI Leroy Philippe H SECS ROUSSELJ Roussel Jeanne F NULL SECS Page 13/99 02/03/15

14 G Enseignements Le langage SQL Nom de la table : Champs : enseignement id_annee entier id_periode 2 caractères id_classe 4 caractères id_matiere 4 caractères id_professeur 8 caractères moyenne_classe réel Un enseignement se définit de manière unique dans la table enseignement par un quatuor (id_annee, id_periode, id_classe, id_matiere). Un professeur, caractérisé par son identifiant id_professeur, ainsi qu'une moyenne de classe moyenne_classe lui sont attribués. Nécessairement, les champs id_annee, id_periode, id_classe, id_matiere, id_professeur de la table enseignement doivent être respectivement référencés dans les tables annee, periode, classe, matiere et professeur. Exemple : id_annee id_periode id_classe id_matiere id_professeur moyenne_classe T 2ND1 ANGL DUBOISAM T 2ND1 FRAN DUBOISGE T 2ND1 HGEO DURANDST T 2ND1 MATH FOURNIER T 2ND1 PHCH GARCIATH T 2ND1 SCVT LEFEBVRE T 2ND1 SECS LEROYPHI 14.3 Page 14/99 02/03/15

15 II MODELE RELATIONNEL Le schéma relationnel de la base de données est donné ci-dessous : Le(s) champ(s) formant la clé primaire des tables est (sont) en gras dans le schéma. Les liens entre les champs de différentes tables représentent les clés étrangères. La clé primaire de la table annee est le champ id_annee. La clé primaire de la table periode est le champ id_periode. La clé primaire de la table classe est le champ id_classe. La clé primaire de la table matiere est le champ id_matiere. La clé primaire de la table professeur est le champ id_professeur. La clé primaire de la table professeur_rem est le champ id_professeur. La clé primaire de la table enseignement est le quatuor id_annee, id_periode, id_classe, id_matiere. Page 15/99 02/03/15

16 Le champ id_matiere de la table matiere est une clé étrangère pour le champ id_matiere de la table professeur Le champ id_matiere de la table matiere est une clé étrangère pour le champ id_matiere de la table professeur_rem Le champ id_annee de la table annee est une clé étrangère pour le champ id_annee de la table enseignement. Le champ id_periode de la table periode est une clé étrangère pour le champ id_periode de la table enseignement. Le champ id_classe de la table classe est une clé étrangère pour le champ id_classe de la table enseignement. Le champ id_matiere de la table matiere est une clé étrangère pour le champ id_matiere de la table enseignement. Le champ id_professeur de la table professeur est une clé étrangère pour le champ id_professeur de la table enseignement. Page 16/99 02/03/15

17 LE LANGAGE DE DEFINITION DES DONNEES I INTRODUCTION Le LDD, Langage de Définition des Données (DDL en anglais, Data Definition Language) est l'ensemble des commandes permettant de définir, modifier et supprimer un objet d'une base de données relationnelle. Nous allons d'abord nous intéresser aux différents types SQL possibles pour les champs. II LES TYPES DE DONNEES SQL Il existe 4 grandes classes de types : les types chaînes de caractères, les types numériques, les types temporels et les types binaires. A Les types chaînes de caractères Introduction CHAR(n) SQL Standard introduit les 2 types chaînes de caractères suivants : VARCHAR(n) Définition de CHAR(n) CHAR(n) s'utilise pour une chaîne de caractères de longueur fixe, avec n entre 1 et Pour ce type : On ne peut insérer de chaîne dont la longueur dépasse n. Une chaîne dont la longueur est inférieure à n sera complétée par des espaces (primordial pour la comparaison de chaînes). Page 17/99 02/03/15

18 Définition de VARCHAR(n) VARCHAR(n), quant à lui, s'utilise pour une chaîne de caractères de longueur variable, avec n compris entre 1 et Comme pour CHAR(n), il faut consulter la documentation du SGBD pour connaître la valeur maximale de n. Comment choisir? De manière générale, l'utilisation de CHAR est à privilégier si le contenu de la colonne est imprévisible, mais de taille maximale connue. A l'opposé, si les valeurs de la colonne occupent en général peu d'espace et que l'utilisation de la taille maximale de la colonne fait exception, on utilisera de préférence le type VARCHAR. Utilisation de constantes chaînes En SQL Standard, les constantes chaînes de caractères sont entourées par des apostrophes (les guillemets sont aussi souvent tolérés). Si la chaîne elle-même contient une apostrophe, celle ci doit être doublée. Par exemple 'L''eau vive'. Portabilité Chaque SGBD impose sa propre longueur maximale pour n. Il faut donc dans tous les cas consulter la documentation pour avoir ce renseignement. Pour le reste, les types standard sont quasiment implémentés sur tous les SGBD relationnels courants (le cas Oracle est traité au paragraphe suivant). Application à Oracle Sous Oracle, les types chaîne de caractères sont conformes à la norme, sauf le type VARCHAR(n) qui est remplacé par VARCHAR2(n). La valeur maximale de n est de 255 pour les CHAR et 2000 pour les VARCHAR2 Page 18/99 02/03/15

19 B Les types numériques Introduction SQL Standard introduit les types numériques suivants : SMALLINT INTEGER NUMERIC(p,d) DECIMAL(p,d) REAL DOUBLE PRECISION FLOAT Définition de SMALLINT SMALLINT s'utilise pour un entier signé entre et Définition de INTEGER INTEGER s'utilise pour un entier signé entre 2 31 et Définition de NUMERIC(p, d) et DECIMAL(p, d) NUMERIC(p,d) ou DECIMAL(p,d) s'emploie pour un nombre décimal à p chiffres significatifs dont d après la virgule. Définition de REAL REAL s'utilise pour un nombre réel dit à simple précision, avec au moins 7 chiffres significatifs. Page 19/99 02/03/15

20 Définition de DOUBLE PRECISION et FLOAT DOUBLE PRECISION ou FLOAT s'emploie pour un nombre réel dit à double précision, avec au moins 15 chiffres significatifs. Utilisation de constantes numériques A noter que les constantes numériques ont un format "classique". Par exemple, 5 ou 2.5 ou même 5.4E-5 (pour le réel 5.4 * 10-5 ). Portabilité Il existence des divergences quant à l implémentation de ces types numériques standard et l ajout d autres types numériques dans les différents SGBD existants. Comme pour les types littéraux, la documentation spécifique au SGBD utilisé doit donc être consultée avant d'utiliser les types numériques. Application à Oracle Le SGBD Oracle ne possède réellement qu'un seul type numérique qui est NUMBER. Ceci dit, Oracle accepte syntaxiquement, pour la portabilité du langage SQL, les autres types numériques SQL Standard, qui sont alors convertis au format NUMBER. Le type NUMBER, pour un nombre à virgule flottante entre et , se décline sous 3 formes : NUMBER NUMBER(p) NUMBER(p,d) Les entiers p et d représentent successivement le nombre de chiffres significatifs et le nombre de chiffres après la virgule. Si d n'est pas renseigné, 0 est pris par défaut. L'entier p est inférieur ou égal à 38. On ne peut insérer de nombres comprenant plus que p chiffres significatifs. Page 20/99 02/03/15

21 C Les types temporels Introduction SQL Standard introduit les types temporels suivants : DATE TIME TIMESTAMP INTERVAL Définition de DATE Le type DATE, comme son nom l'indique, s'utilise pour une date, 2 chiffres étant réservés pour le jour, 2 pour le mois et 4 pour l'année. Définition de TIME Le type TIME représente une heure, au format "heure minute seconde". Attention, les secondes peuvent éventuellement contenir un certain nombre de décimales. Définition de TIMESTAMP Le type TIMESTAMP s'emploie pour un moment précis, c'est à dire une date avec heures, minutes et secondes avec 6 chiffres après la virgule, c'est à dire une précision en microsecondes. Définition de INTERVAL Le type INTERVAL s'emploie pour un intervalle de temps. Utilisation de constantes temporelles Le format des constantes de type temporel dépend des options que l'administrateur de la base de données a choisies à la création de la base (par exemple, '01/01/2000' si mode "français" ou '2000/01/01' si mode "anglais"). Page 21/99 02/03/15

22 Portabilité Il existe des divergences quant à l implémentation des types temporels SQL Standard et l ajout d autres types temporels dans les différents SGBD relationnels existants. Là encore, la documentation spécifique au SGBD utilisé doit donc être consultée avant d'utiliser les types temporels. Application à Oracle Oracle ne possède qu'un seul type temporel qui est DATE, qui inclut un temps en heures, minutes et secondes. Un constante de type DATE est une chaîne entre apostrophes. D Les types binaires Introduction Ces types peuvent servir pour l'enregistrement de données type images et sons, mais nous ne les utiliserons pas dans le cadre de ce cours. BIT SQL Standard introduit les types binaires suivants : BIT VARYING Définition de BIT BIT s'utilise pour un type binaire de longueur constante. Définition de BIT VARYING BIT VARYING s'emploie pour un type binaire de longueur variable. Application à Oracle Sous Oracle, le type binaire est LONG RAW. On n'utilisera pas ce type de données dans le cadre de ce cours. Page 22/99 02/03/15

23 E Les types pour la base exemple bdcours Afin de facilement pouvoir porter notre base exemple sur des S.G.B.D. multiples, et compte tenu du fait qu'oracle gère la plupart des types standards SQL (dans un souci de portabilité), on va utiliser les types CHAR(n) pour les chaînes de caractères, INTEGER pour les entiers, FLOAT pour les réels et DATE pour les dates. Ainsi, on obtiendra les types suivants : annee periode classe id_annee desc_annee nb_filles nb_garcons id_periode desc_periode id_classe desc_classe INTEGER CHAR(50) INTEGER INTEGER CHAR(2) CHAR(100) CHAR(4) CHAR(100) matiere id_matiere desc_matiere CHAR(4) CHAR(100) professeur professeur_rem id_professeur CHAR(8) id_professeur CHAR(8) nom CHAR(50) nom CHAR(50) prenom CHAR(50) prenom CHAR(50) sexe CHAR(1) sexe CHAR(1) date_naissance DATE date_naissance DATE id_matiere CHAR(4) id_matiere CHAR(4) enseignement id_annee id_periode id_classe id_matiere id_professeur moyenne_classe INTEGER CHAR(2) CHAR(4) CHAR(4) CHAR(8) FLOAT Page 23/99 02/03/15

24 III CREATION ET SUPPRESSION D'UNE BASE DE DONNEES A Création d'une base de données Instruction standard SQL de création d'une base CREATE DATABASE nom_base; Le caractère ";" marque la fin de toute requête S.Q.L. Attention, sous Oracle, les bases de données sont en fait créés par l'administrateur Oracle au moment de la configuration du S.G.B.D. par des outils dédiés, de sorte que l'instruction ci-dessus est obsolète. L'utilisateur, lors de la connexion à une base de données, spécifie son nom d'utilisateur, son mot de passe, et l'alias de base utilisée. Il peut alors accéder alors aux objets de cette base de données. B Suppression d'une base de données Instruction standard SQL de suppression d'une base DROP DATABASE nom_base; Attention, sous Oracle, les bases de données sont en fait gérées par l'administrateur Oracle au moyen d'outils dédiés, de sorte que l'instruction ci-dessus est obsolète. Page 24/99 02/03/15

25 IV CREATION, MISE A JOUR, SUPPRESSION D'UNE TABLE A Création d'une table Instruction standard SQL de création d'une table (aussi valable sous Oracle) CREATE TABLE nom_table ( nom_ colonne type_ colonne [DEFAULT valeur] [contrainte_colonne],.. [...] [....], nom_ colonne type_ colonne [DEFAULT valeur] [contrainte _colonne], CONSTRAINT nom_contrainte_table contrainte_table,...., CONSTRAINT nom_contrainte_table contrainte_table ) ; Il est important de noter que les paramètres entre crochets sont facultatifs donc optionnels. Il faut faire très attention à la syntaxe précise (notamment, ne pas oublier de virgules, ni en rajouter avant de fermer la parenthèse finale de l'instruction). Noms des colonnes Les noms des colonnes seront, de préférence, des noms communs, sans caractères spéciaux, ni accents. Types des colonnes Les types de colonnes ont été étudiées dans II. Valeurs par défaut Ces valeurs sont des constantes du type de la colonne (ex : 2000 pour une colonne de type INTEGER, pour une colonne de type FLOAT, 'Chaîne par défaut' pour une colonne chaîne de caractères). Page 25/99 02/03/15

26 Contraintes de colonnes Les contraintes de colonne possibles sont : PRIMARY KEY : pour dire que la colonne en question est la clé primaire de la table. NOT NULL : pour dire que les valeurs de la colonne doivent absolument être renseignées. UNIQUE : pour empêcher la présence de doublons dans les valeurs de la colonne. CHECK (expression_de_condition_colonne) : pour spécifier que les données de la colonne doivent respecter une certaine condition portant sur la colonne uniquement. REFERENCES nom_table_reference (nom_colonne_reference) : pour spécifier que la colonne est reliée à une clé étrangère extérieure qui est le champ nom_colonne_reference de la table nom_table_reference. Noms des contraintes de tables Les noms des contraintes de table seront, de préférence, des noms communs, sans caractères spéciaux, ni accents, composés classiquement de symboles représentant les types de contrainte (exemple PKperiode pour la clé primaire de la table periode).. Contraintes de tables Les contraintes de table possibles sont : PRIMARY KEY (nom_colonne1, nom_colonne2, ) : pour dire que la clé primaire de la table est formée des champs nom_colonne1, nom_colonne2, UNIQUE(nom_colonne1, nom_colonne2, ) : pour empêcher la présence de doublons dans les valeurs des t - uplets (valeur_colonne1, valeur_colonne2, ). CHECK (expression_de_condition_table) : pour spécifier que les données de la table doivent respecter une certaine condition portant sur tout ou partie des colonnes de la table. FOREIGN KEY(nom_colonne) REFERENCES nom_table_ref (nom_colonne_ref) : pour spécifier que la colonne est reliée à une clé étrangère extérieure qui est le champ nom_colonne_ref de la table nom_table_ref. Les expressions de conditions sur une colonne ou sur la table (contraintes CHECK colonne ou table) seront étudiées plus en détails dans IV. En effet, elles ont la même syntaxe que les critères d'interrogation dans les requêtes SQL. Des exemples de telles expressions seront étudiées à la fin de ce chapitre lors de la création de la base exemple bdcours. Page 26/99 02/03/15

27 Remarque Sous Oracle, ainsi que sous certains autres S.G.B.D. du marché, on peut aussi créer une table en utilisant le résultat d'une requête de sélection (voir ci-après, chapitre IV.) de la manière suivante : CREATE TABLE nom_table AS SELECT. FROM ; La table créée comportera les colonnes sélectionnées dans la requête effectuée (avec leur type d'origine) et sera initialisée avec les données résultant de cette même requête. Page 27/99 02/03/15

28 B Mise à jour d'une table Instruction standard SQL de mise à jour d'une table (aussi valable sous Oracle) ALTER TABLE nom_table ordre_de_mise_a_jour; Ordres de mise à jour Ils se déclinent sous 5 formes : Ajout d'une colonne à la définition de la table ADD COLUMN nom_ colonne type_ colonne [DEFAULT valeur] [contrainte_colonne] Ajout d'une contrainte de table à la définition de la table ADD CONSTRAINT nom_contrainte_table contrainte_table Modification de la définition d'une colonne (nécessairement déjà existante) ALTER nom_ colonne type_ colonne [DEFAULT valeur] [contrainte_colonne] Suppression d'une colonne à la définition de la table DROP COLUMN nom_ colonne Suppression d'une contrainte de table à la définition de la table DROP CONSTRAINT nom_contrainte_table C Suppression d'une table Instruction standard SQL de suppression d'une table (aussi valable sous Oracle) DROP TABLE nom_ table; Page 28/99 02/03/15

29 D Création de la base exemple bdcours Le langage SQL Un script SQL est un certain nombre de commandes SQL, séparées par des points-virgules, visant à effectuer un certain nombre d opérations sur une base de données (définition d une base, insertion de données, mise à jour ) Voici un exemple de script SQL standard de création des tables de la base de données exemple bdcours, aussi applicable sous Oracle : create database if not exists bdcours; use bdcours; drop table if exists enseignement; drop table if exists professeur; drop table if exists annee; drop table if exists periode; drop table if exists classe; drop table if exists matiere; create table annee ( id_annee integer NOT NULL, desc_annee char(50), nb_filles integer, nb_garcons integer, constraint PK_annee PRIMARY KEY(id_annee), constraint CK_annee CHECK(id_annee >= 2014 and id_annee < 2500) ); create table periode ( id_periode char(2) NOT NULL, desc_periode char(100), constraint PK_periode PRIMARY KEY(id_periode) ); create table classe ( id_classe char(4) NOT NULL, desc_classe char(100), constraint PK_classe PRIMARY KEY(id_classe) ); create table matiere ( id_matiere char(4) NOT NULL, desc_matiere char(100), constraint PK_matiere PRIMARY KEY(id_matiere) ); Page 29/99 02/03/15

30 create table professeur ( id_professeur char(8) NOT NULL, nom char(50) NOT NULL, prenom char(50) NOT NULL, sexe char(1) NOT NULL, date_naissance date, id_matiere char(4) NOT NULL, constraint PK_professeur PRIMARY KEY(id_professeur), constraint FK_prof_mat FOREIGN KEY(id_matiere) REFERENCES MATIERE(id_matiere), constraint CK_prof_sexe CHECK(sexe IN ('H', 'F')) ); create table professeur_rem ( id_professeur char(8) NOT NULL, nom char(50) NOT NULL, prenom char(50) NOT NULL, sexe char(1) NOT NULL, date_naissance date, id_matiere char(4) NOT NULL, constraint PK_profrem PRIMARY KEY(id_professeur), constraint FK_profrem_mat FOREIGN KEY(id_matiere) REFERENCES MATIERE(id_matiere), constraint CK_profrem_sexe CHECK(sexe IN ('H', 'F')) ); create table enseignement ( id_annee integer NOT NULL, id_periode char(2) NOT NULL, id_classe char(4) NOT NULL, id_matiere char(4) NOT NULL, id_professeur char(8) NOT NULL, moyenne_classe float, constraint PK_enseign PRIMARY KEY (id_annee, id_periode, id_classe, id_matiere), constraint FK_enseign_ann FOREIGN KEY(id_annee) REFERENCES ANNEE(id_annee), constraint FK_enseign_per FOREIGN KEY(id_periode) constraint FK_enseign_cla REFERENCES PERIODE(id_periode), FOREIGN KEY(id_classe) REFERENCES CLASSE(id_classe), Le langage SQL constraint FK_enseign_mat FOREIGN KEY(id_matiere) REFERENCES MATIERE(id_matiere), constraint FK_enseign_prof FOREIGN KEY(id_professeur) REFERENCES PROFESSEUR(id_professeur), constraint CK_moyenne CHECK(moyenne_classe BETWEEN 0 AND 20) ); Page 30/99 02/03/15

31 LE LANGAGE DE MANIPULATION DES DONNEES I INTRODUCTION Le langage de manipulation des données (LMD, ou DML en anglais pour Data Manipulation Language) est l'ensemble des commandes permettant d'interroger et de modifier les données d'une base de données relationnelle. L'interrogation consiste en l'obtention de l'ensemble des tuplets qui satisfont un critère de qualification. En S.Q.L., la commande d'interrogation est SELECT. On dit alors qu'on effectue une requête de sélection sur la base de données. La modification revêt un triple aspect : ajout, mise à jour, et suppression de données. Il s'agit respectivement des commandes INSERT, UPDATE et DELETE. Quand un champ (d'une colonne) d'un enregistrement d'une table est non renseigné, ou encore vide, on dit que sa valeur est la valeur NULL. Ceci est vrai quel que soit le type du champ, chaîne de caractère, numérique, ou temporel. NULL ne représente ni zéro, ni une valeur par défaut quelconque. NULL représente une absence de valeur. Un problème se pose lorsque dans un critère SQL par exemple, l'une des valeurs d'un des attributs est la valeur NULL. Comment comparer par exemple un champ comme le nom d'un professeur et 2 valeurs comme "Sarlat" et NULL? La règle est qu'en pratique aucune règle de gestion de la valeur NULL n'existe en tant que standard. Autrement dit, il faut soit consulter la documentation du S.G.B.D. sur lequel on travaille, soit utiliser en plus le test IS NULL ou IS NOT NULL (voir par la suite) en plus dans le critère à utiliser. Page 31/99 02/03/15

32 II INSERTION D'UNE DONNEE DANS UNE TABLE A Commande d'insertion d'une seule donnée Instruction standard SQL d insertion d'une seule donnée dans une table INSERT INTO VALUES nom_table (valeur_colonne1, valeur_colonne2, ); Avec cette syntaxe, les valeurs de toutes les colonnes doivent être renseignées, éventuellement au besoin avec la valeur NULL. Une deuxième syntaxe possible est : INSERT INTO nom_table (colonnea, colonneb, ) VALUES (valeur_colonnea, valeur_colonneb, ); Avec cette syntaxe, seules les valeurs des colonnes A, B (quelles qu'elles soient) sont renseignées, les valeurs des autres colonnes pour la ligne insérée étant positionnés à NULL, ou a la valeur par défaut de la colonne s'il en existe une. Cette syntaxe est donc possible seulement si parmi les colonnes non renseignées ne figure aucune colonne avec la contrainte NOT NULL (notamment aucune colonne faisant partie de la clé primaire de la table). Exemple illustratif de la première syntaxe INSERT INTO VALUES professeur (' SARLATJE ', 'Sarlat', 'Jean-Michel', NULL); Exemple illustratif de la seconde syntaxe INSERT INTO professeur (id_professeur, nom, prenom) VALUES (' SARLATJE ', 'Sarlat', 'Jean-Michel'); Page 32/99 02/03/15

33 B Insertion de données primaires dans la base exemple bdcours Voici un exemple de script SQL standard d'insertion de données dans les tables de la base de données exemple bdcours, aussi applicable sous Oracle : use bdcours; delete from enseignement; delete from professeur; delete from annee; delete from periode; delete from classe; delete from matiere; insert into annee values (2014, 'Année Scolaire ', 150, 150); insert into annee values (2015, 'Année Scolaire ', 157, 142); insert into periode values ('1T', 'Premier trimestre'); insert into periode values ('2T', 'Deuxième trimestre'); insert into periode values ('3T', 'Troisième trimestre'); insert into classe values ('2ND1', 'Seconde 1'); insert into classe values ('2ND2', 'Seconde 2'); insert into classe values ('2ND3', 'Seconde 3'); insert into classe values ('1LIT', '1ère L'); insert into classe values ('1SES', '1ère ES'); insert into classe values ('1SCI', '1ère S'); insert into classe values ('TLIT', 'Terminale L'); insert into classe values ('TSES', 'Terminale ES'); insert into classe values ('TSCI', 'Terminale S'); insert into matiere values ('ANGL', 'Anglais'); insert into matiere values ('FRAN', 'Français'); insert into matiere values ('HGEO', 'Histoire Géographie'); insert into matiere values ('MATH', 'Mathématiques'); insert into matiere values ('PHCH', 'Physique Chimie'); insert into matiere values ('PHIL', 'Philosophie'); insert into matiere values ('SCVT', 'Sciences et Vie de la Terre'); insert into matiere values ('SECS', 'Sciences Economiques et Sociales'); Page 33/99 02/03/15

34 insert into professeur values ('DUBOISAM', 'Dubois', 'Amélie', 'F', ' ', 'ANGL'); insert into professeur values ('LEROYTHO', 'Leroy', 'Thomas', 'H', ' ', 'ANGL'); insert into professeur values ('DUBOISGE', 'Dubois', 'Gérard', 'H', ' ', 'FRAN'); insert into professeur values ('MOREAUPA', 'Moreau', 'Patrick', 'H', ' ', 'FRAN'); insert into professeur values ('DURANDST', 'Durand', 'Stéphane', 'H', ' ','HGEO'); insert into professeur values ('MORELSTE', 'Morel', 'Stéphanie','F', ' ', 'HGEO'); insert into professeur values ('FOURNIER', 'Fournier', 'Nicolas','H', ' ', 'MATH'); insert into professeur values ('PETITCHR', 'Petit', 'Christophe','H', ' ', 'MATH'); insert into professeur values ('GARCIATH', 'Garcia', 'Thierry','H',' ', 'PHCH'); insert into professeur values ('THOMASVI', 'Thomas', 'Vincent','H', ' ', 'PHCH'); insert into professeur values ('GIRARDAN', 'Girard', 'Antoine','H', ' ', 'PHIL'); insert into professeur values ('LAMBERTA', 'Lambert', 'Alice','F', NULL, 'PHIL'); insert into professeur values ('LEFEBVRE', 'Lefebvre', 'Géraldine','F', ' ','SCVT'); insert into professeur values ('MARTINEZ', 'Martinez', 'Nathalie','F', ' ', 'SCVT'); insert into professeur values ('LEROYPHI', 'Leroy', 'Philippe','H', ' ', 'SECS'); insert into professeur values ('ROUSSELJ', 'Roussel', 'Jeanne','F', NULL, 'SECS'); insert into professeur_rem values ('DUBOISAM', 'Dubois', 'Amélie', 'F', NULL, 'ANGL'); insert into professeur_rem values ('DURANDST', 'Durand', 'Stéphane', 'H', NULL, 'HGEO'); insert into professeur_rem values ('LEROYXAV', 'Leroy', 'Xavier', 'H', NULL, 'FRAN'); insert into professeur_rem values ('LAMBERTP', 'Lambert', 'Pierre', 'H', NULL, 'FRAN'); insert into professeur_rem values ('RICHARDP', 'Richard', 'Pascal', 'H', NULL, 'FRAN'); insert into professeur_rem values ('CASTELAI', 'Castelain', 'Alice', 'F', NULL, 'FRAN'); insert into enseignement values (2014, '1T', '2ND1', 'ANGL', 'DUBOISAM', 11.5); insert into enseignement values (2014, '1T', '2ND1', 'FRAN', 'DUBOISGE', 10.1); insert into enseignement values (2014, '1T', '2ND1', 'HGEO', 'DURANDST', 13); insert into enseignement values (2014, '1T', '2ND1', 'MATH', 'FOURNIER', 10.4); insert into enseignement values (2014, '1T', '2ND1', 'PHCH', 'GARCIATH', 12.1); insert into enseignement values (2014, '1T', '2ND1', 'SCVT', 'LEFEBVRE', 11.8); insert into enseignement values (2014, '1T', '2ND1', 'SECS', 'LEROYPHI', 14.3); insert into enseignement values (2014, '2T', '2ND1', 'ANGL', 'DUBOISAM', 11.4); insert into enseignement values (2014, '2T', '2ND1', 'FRAN', 'DUBOISGE', 10.8); insert into enseignement values (2014, '2T', '2ND1', 'HGEO', 'DURANDST', 13.2); insert into enseignement values (2014, '2T', '2ND1', 'MATH', 'FOURNIER', 10.7); insert into enseignement values (2014, '2T', '2ND1', 'PHCH', 'GARCIATH', 13.1); insert into enseignement values (2014, '2T', '2ND1', 'SCVT', 'LEFEBVRE', 11.4); insert into enseignement values (2014, '2T', '2ND1', 'SECS', 'LEROYPHI', 13.4); insert into enseignement values (2014, '3T', '2ND1', 'ANGL', 'DUBOISAM', 12.5); insert into enseignement values (2014, '3T', '2ND1', 'FRAN', 'DUBOISGE', 11.1); insert into enseignement values (2014, '3T', '2ND1', 'HGEO', 'DURANDST', 12.2); insert into enseignement values (2014, '3T', '2ND1', 'MATH', 'FOURNIER', 10.8); insert into enseignement values (2014, '3T', '2ND1', 'PHCH', 'GARCIATH', 13.1); insert into enseignement values (2014, '3T', '2ND1', 'SCVT', 'LEFEBVRE', 14.8); insert into enseignement values (2014, '3T', '2ND1', 'SECS', 'LEROYPHI', 11.3); Page 34/99 02/03/15

35 III INTERROGATION DES DONNEES L'interrogation consiste en l'obtention de l'ensemble des t-uplets qui satisfont un critère de qualification. En S.Q.L., la commande d'interrogation est SELECT. On dit alors qu'on effectue une requête de sélection sur la base de données. On étudiera d'abord les mécanismes d'interrogation des données sur une seule table, avant de généraliser l'étude à l'interrogation de données provenant d'un ensemble de tables. A Interrogation des données d'une seule table, sans regroupement 1) Introduction Instruction standard SQL la plus simple d interrogation des données d une table (aussi valable sous Oracle) SELECT [ALL DISTINCT] clause_de_selection FROM nom_table [WHERE critere_de_selection] [ORDER BY critere_de_tri]; Comme précédemment, il est important de noter que les paramètres entre crochets sont facultatifs donc optionnels. Le symbole montre un choix optionnel (de type l un ou l autre). Typiquement, le SELECT de base permet de "récupérer" certaines données d'une table dont les valeurs satisfont une condition spécifique. Page 35/99 02/03/15

36 2) Les mots clés SELECT, ALL, DISTINCT Exemple d'illustration SELECT de base Liste des couples (nom, prénom) des professeurs dont le nom est Dubois SELECT FROM WHERE nom, prenom professeur nom = 'Dubois'; L expression "nom, prenom" est dans cette requête la clause de sélection. L'expression "professeur" est le nom de la table. L'expression "nom = 'Dubois'" est le critère de sélection. On remarque qu'aucun mot clé ALL ou DISTINCT n'est ici utilisé (voir ci-après). La réponse du S.G.B.D. à la requête est : nom prenom Dubois Amélie Dubois Gérard Page 36/99 02/03/15

37 Exemple d'illustration SELECT de base avec le mot clé ALL Le mot clé ALL permet de garder tous les t-uplets réponse à la requête, même si certains sont en double (c'est l'option par défaut, lorsqu'aucun mot ALL ou DISTINCT n'est présent) Liste des noms des professeurs répertoriés SELECT FROM nom professeur; D'après les définitions précédentes, cette requête peut tout aussi bien être remplacée par la requête équivalente SELECT FROM ALL nom professeur; L expression "nom" est dans cette requête la clause de sélection. L'expression "professeur" est le nom de la table. Il n'y a pas de critère de sélection. Pour traiter cette requête, le S.G.B.D. va lister les lignes de la table professeur et sélectionner uniquement les données de la colonne nom, sans éliminer d'éventuels doublons dans les réponses. La réponse du S.G.B.D. à la requête sera donc : nom Dubois Leroy Dubois Moreau Durand Morel Fournier Petit Garcia Thomas Girard Lambert Lefebvre Martinez Leroy Roussel On remarque que la réponse à la requête contient plusieurs données en doublons. Page 37/99 02/03/15

38 Exemple d'illustration SELECT de base avec le mot clé DISTINCT Le mot clé DISTINCT permet d'éliminer les doublons dans les t-uplets réponse à la requête. Liste des noms distincts des professeurs répertoriés SELECT DISTINCT nom FROM professeur; Pour traiter cette requête, le S.G.B.D. va lister les lignes de la table professeur et sélectionner les données de la colonne nom, en éliminant après coup les éventuels doublons dans les réponses. Et la réponse du S.G.B.D. à la requête serait donc : nom Dubois Leroy Moreau Durand Morel Fournier Petit Garcia Thomas Girard Lambert Lefebvre Martinez Roussel Page 38/99 02/03/15

39 3) Les clauses de sélection Exemple d'illustration sélection de toutes les colonnes Liste des professeurs répertoriés (sous entendu avec toutes leurs caractéristiques) SELECT * FROM professeur; Dans cette requête, le symbole "*" représente l'ensemble des colonnes de la table professeur. La requête est donc équivalente à la requête : SELECT FROM id_professeur, nom, prenom, sexe, date_naissance, id_matiere professeur; La réponse du S.G.B.D. serait donc le contenu de la table professeur, soit : id_professeur nom prenom sexe date_naissance id_matiere DUBOISAM Dubois Amélie F ANGL LEROYTHO Leroy Thomas H ANGL DUBOISGE Dubois Gérard H FRAN MOREAUPA Moreau Patrick H FRAN DURANDST Durand Stéphane H HGEO MORELSTE Morel Stéphanie F HGEO FOURNIER Fournier Nicolas H MATH PETITCHR Petit Christophe H MATH GARCIATH Garcia Thierry H PHCH THOMASVI Thomas Vincent H PHCH GIRARDAN Girard Antoine H PHIL LAMBERTA Lambert Alice F NULL PHIL LEFEBVRE Lefebvre Géraldine F SCVT MARTINEZ Martinez Nathalie F SCVT LEROYPHI Leroy Philippe H SECS ROUSSELJ Roussel Jeanne F NULL SECS Page 39/99 02/03/15

40 Exemple d'illustration sélection de certaines colonnes Liste (nom, prenom, date_naissance) des professeurs répertoriés SELECT FROM nom, prenom, date_naissance professeur; La réponse du S.G.B.D. serait donc le contenu de la table professeur, en éliminant les colonnes non sélectionnées, soit : nom prenom date_naissance Dubois Amélie Leroy Thomas Dubois Gérard Moreau Patrick Durand Stéphane Morel Stéphanie Fournier Nicolas Petit Christophe Garcia Thierry Thomas Vincent Girard Antoine Lambert Alice NULL Lefebvre Géraldine Martinez Nathalie Leroy Philippe Roussel Jeanne NULL Page 40/99 02/03/15

41 Exemple d'illustration incorporation de colonnes constantes chaines de caractères Liste des caractéristiques (sauf les identifiants) des professeurs répertoriés et incorporation de la colonne constante chaîne de caractères 'DATE DE NAISSANCE' SELECT FROM nom, prenom, sexe, 'DATE DE NAISSANCE', date_naissance professeur; La réponse du S.G.B.D. serait donc le contenu de la table professeur, en éliminant les colonnes id_professeur et id_matiere, non sélectionnées ici, et en insérant une colonne constante chaîne de caractère, soit : nom prenom sexe DATE DE NAISSANCE date_naissance Dubois Amélie F DATE DE NAISSANCE Leroy Thomas H DATE DE NAISSANCE Dubois Gérard H DATE DE NAISSANCE Moreau Patrick H DATE DE NAISSANCE Durand Stéphane H DATE DE NAISSANCE Morel Stéphanie F DATE DE NAISSANCE Fournier Nicolas H DATE DE NAISSANCE Petit Christophe H DATE DE NAISSANCE Garcia Thierry H DATE DE NAISSANCE Thomas Vincent H DATE DE NAISSANCE Girard Antoine H DATE DE NAISSANCE Lambert Alice F DATE DE NAISSANCE NULL Lefebvre Géraldine F DATE DE NAISSANCE Martinez Nathalie F DATE DE NAISSANCE Leroy Philippe H DATE DE NAISSANCE Roussel Jeanne F DATE DE NAISSANCE NULL Page 41/99 02/03/15

42 Exemple d'illustration incorporation de colonnes constantes numériques Le langage SQL Liste des caractéristiques (sauf les identifiants) des professeurs répertoriés et incorporation de la colonne constante numérique 2015 SELECT FROM 2015, nom, prenom, sexe, date_naissance professeur; La réponse du S.G.B.D. serait donc le contenu de la table professeur, en éliminant les colonnes id_professeur et id_matiere, non sélectionnées ici, et en insérant une colonne constante numérique, soit : 2015 nom prenom sexe date_naissance 2015 Dubois Amélie F Leroy Thomas H Dubois Gérard H Moreau Patrick H Durand Stéphane H Morel Stéphanie F Fournier Nicolas H Petit Christophe H Garcia Thierry H Thomas Vincent H Girard Antoine H Lambert Alice F NULL 2015 Lefebvre Géraldine F Martinez Nathalie F Leroy Philippe H Roussel Jeanne F NULL Page 42/99 02/03/15

43 Exemple d'illustration fonctions arithmétiques sur les colonnes sélectionnées Le langage SQL Liste des années répertoriées avec identifiant indicé à 0 pour 2000, 1 pour 2001, etc SELECT FROM id_annee , desc_annee annee; La réponse du S.G.B.D. serait : id_annee desc_annee 14 Année Scolaire Année Scolaire Liste (id_annee, nombre total d'élèves) des années repertoriées SELECT FROM id_annee, nb_filles + nb_garcons annee; La réponse du S.G.B.D. serait : id_annee nb_filles + nb_garcons Liste (id_annee, 'Pourcentage de filles : ', % de filles) des années répertoriées SELECT FROM id_annee, 'Pourcentage de filles :', nb_filles * 100 / (nb_filles + nb_garcons) annee; La réponse à la requête serait : id_annee Pourcentage de filles : nb_filles * 100 / (nb_filles + nb_garcons) 2014 Pourcentage de filles : Pourcentage de filles : Page 43/99 02/03/15

44 Exemple d'illustration fonctions littérales LOWER et UPPER sur les colonnes sélectionnées Le langage SQL Liste (nom en majuscules, prénom en minuscules, date_naissance) des professeurs répertoriés SELECT FROM UPPER(nom), LOWER(prenom), date_naissance professeur; La réponse du S.G.B.D. serait : UPPER(nom) LOWER(prenom) date_naissance DUBOIS amélie LEROY thomas DUBOIS gérard MOREAU patrick DURAND stéphane MOREL stéphanie FOURNIER nicolas PETIT christophe GARCIA thierry THOMAS vincent GIRARD antoine LAMBERT alice NULL LEFEBVRE géraldine MARTINEZ nathalie LEROY philippe ROUSSEL jeanne NULL Page 44/99 02/03/15

45 Exemple d'illustration fonction littérale CONCAT (concaténation) sur les colonnes sélectionnées Liste (nom en majuscule espace prenom en minuscule, date_naissance) des professeurs répertoriés SELECT FROM CONCAT(UPPER(nom), ' ', LOWER(prenom)), date_naissance professeur; La réponse du S.G.B.D. serait : A noter que la syntaxe de l'expression de concaténation est fortement dépendante du S.G.B.D. sur lequel on travaille (ex : CONCAT() ou ou autre). Consulter la documentation pour de plus amples détails. CONCAT(UPPER(nom), ' ', LOWER(prenom)) date_naissance DUBOIS amélie LEROY thomas DUBOIS gérard MOREAU patrick DURAND stéphane MOREL stéphanie FOURNIER nicolas PETIT christophe GARCIA thierry THOMAS vincent GIRARD antoine LAMBERT alice NULL LEFEBVRE géraldine MARTINEZ nathalie LEROY philippe ROUSSEL jeanne NULL Page 45/99 02/03/15

46 Exemple d'illustration fonction littérale SUBSTRING (sous-chaine) sur les colonnes sélectionnées Liste sans doublons des 3 premières lettres des prénoms des professeurs répertoriés SELECT DISTINCT SUBSTRING(prenom FROM 1 FOR 3) FROM professeur; La réponse du S.G.B.D. serait : SUBSTRING(prenom FROM 1 FOR 3) Amé Tho Gér Pat Sté Nic Chr Thi Vin Ant Ali Nat Phi Jea Page 46/99 02/03/15

47 Exemple d'illustration fonction littérale CHARACTER_LENGTH (nombre de caractères d'une chaîne) sur les colonnes sélectionnées Le langage SQL Liste globale (prénom, longueur du prénom) des professeurs répertoriés SELECT ALL prenom, CHARACTER_LENGTH(prenom) FROM professeur; La réponse du S.G.B.D. serait : prenom CHARACTER_LENGTH(prenom) Amélie 6 Thomas 6 Gérard 6 Patrick 7 Stéphane 8 Stéphanie 9 Nicolas 7 Christophe 10 Thierry 7 Vincent 7 Antoine 7 Alice 5 Géraldine 9 Nathalie 8 Philippe 8 Jeanne 6 A noter que la syntaxe de l'expression du nombre de caractères est fortement dépendante du S.G.B.D. sur lequel on travaille (ex : CHARACTER_LENGTH () ou len() ou autre). Consulter la documentation pour de plus amples détails. Page 47/99 02/03/15

48 Exemples d'illustration utilisation du mot clé COUNT S.Q.L. permet aussi de compter les lignes résultat d'une requête au moyen du mot clé COUNT. Nombre de professeurs répertoriés SELECT FROM COUNT(*) professeur; Requête équivalente à SELECT FROM COUNT(prenom) professeur; En pratique, on privilégie de loin la première forme. Dans les 2 cas, le S.G.B.D. va effectuer les requêtes SELECT sans les COUNT et va compter le nombre de lignes trouvées. Le résultat est donc ici : COUNT(prenom) 16 Nombre de noms distincts répertoriés de professeurs SELECT FROM COUNT(DISTINCT nom) professeur; Le S.G.B.D. va effectuer la requête SELECT sans les COUNT, et récupérer 14 noms distincts (deux doublons). Il va compter le nombre de lignes trouvées. Le résultat est donc ici : COUNT(DISTINCT nom) 14 Page 48/99 02/03/15

49 Exemples d'illustration utilisation des mot clé SUM, MIN, MAX, AVG S.Q.L. permet aussi de faire des calculs sur les lignes résultat d'une requête au moyen des mots clé SUM (somme de), MIN (minimum), MAX (maximum), AVG (moyenne). Plus grand nombre de filles, et plus petit nombre de filles des années SELECT FROM MAX(nb_filles), MIN(nb_filles) annee; La réponse du S.G.B.D. serait : MAX(nb_filles) MIN(nb_filles) Somme des nombres de filles, moyenne du nombre de garçons de la table annee SELECT FROM SUM(nb_filles), AVG(nb_garcons) annee; La réponse du S.G.B.D. serait : SUM(nb_filles) AVG(nb_garcons) Page 49/99 02/03/15

50 4) Critères de sélection Exemples d'illustration utilisation des mots clé =, <> (différent de), <, >, <=, >= Liste des caractéristiques du ou des professeurs dont le nom est 'Leroy' SELECT * FROM professeur WHERE nom = 'Leroy'; La réponse du S.G.B.D. serait : id_professeur nom prenom sexe date_naissance id_matiere LEROYTHO Leroy Thomas H ANGL LEROYPHI Leroy Philippe H SECS Liste des caractéristiques du ou des professeurs dont le nom est après 'Lombart' dans l'ordre alphabétique SELECT * FROM professeur WHERE nom > 'Lombart'; La réponse du S.G.B.D. serait (critère classique comparant les chaînes de caractères) : id_professeur nom prenom sexe date_naissance id_matiere MOREAUPA Moreau Patrick H FRAN MORELSTE Morel Stéphanie F HGEO PETITCHR Petit Christophe H MATH THOMASVI Thomas Vincent H PHCH MARTINEZ Martinez Nathalie F SCVT ROUSSELJ Roussel Jeanne F NULL SECS Page 50/99 02/03/15

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

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

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

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

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

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

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

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

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

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

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

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

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

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

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

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

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

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

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

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012 Initiation à SQL Le langage de communication avec une base de données relationnelles Application avec PostgreSQL Nathalie Camelin 2011/2012 Université du Maine Institut Claude Chappe D'après Levy Estève

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

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

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Un modèle de données définit un mode de représentation de l information selon trois composantes : 1. Des structures de données. 2. Des contraintes qui permettent

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

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 Loïc Maisonnasse 1 Objectif Ce TD a pour objectif de vous familiariser avec le langage de requêtes SQL. Et de vous apprendre à écrire des requêtes SQL pour

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

TP3 : Creation de tables 1 seance

TP3 : Creation de tables 1 seance Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Les bases de données Page 1 / 8

Les bases de données Page 1 / 8 Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

Plus en détail

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

LE LANGAGE SQL2 1. INTRODUCTION

LE LANGAGE SQL2 1. INTRODUCTION LE LANGAGE SQL2 1. INTRODUCTION Les serveurs de données relationnels présentent aujourd hui une interface externe sous forme d un langage de recherche et mise à jour, permettant de spécifier les ensembles

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

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

FileMaker 13. Guide de référence SQL

FileMaker 13. Guide de référence SQL FileMaker 13 Guide de référence SQL 2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

Historisation des données

Historisation des données Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",

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

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

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

INTRODUCTION : Données structurées et accès simplifié

INTRODUCTION : Données structurées et accès simplifié INTRODUCTION : Données structurées et accès simplifié À l'origine de l'informatique, le stockage d'information se faisait sur cartes perforées. Ces supports pauvres ne permettaient pas de définir la structuration

Plus en détail

Les BASES de DONNEES dans WampServer

Les BASES de DONNEES dans WampServer Les BASES de DONNEES dans WampServer 1 Définitions Générales Une base de données (BDD) permet d'enregistrer, de stocker, de ranger des données de façon organisée et hiérarchisée. SQL est le langage qui

Plus en détail

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Bases de données relationnelles & SQL

Bases de données relationnelles & SQL Bases de données relationnelles & SQL Objectifs Appréhender les concepts du modèle relationnel. Etre capable de concevoir un schéma relationnel. Etre capable de créer une base de données relationnelle

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR Système de Gestion de Bases de Données Relationnelles MySQL Youssef CHAHIR 1 PLAN Introduction Démarrer MySQL Syntaxe de MySQL Types des attributs Identificateurs Effectuer des requêtes Fonctions de MySQL

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres. INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES Durée : 1h30 Date : 17/05/2006 Coordonnateurs : Amel Bouzeghoub et Bruno Defude Documents autorisés : ceux distribués en cours Avertissements

Plus en détail

Bases de Données Relationnelles. Le Modèle Relationnel

Bases de Données Relationnelles. Le Modèle Relationnel Bases de Données Relationnelles Le Modèle Relationnel Le modèle relationnel modèle de niveau logique modèle simple : deux concepts relation (table) attribut (colonne) défini par Ted Codd en 1970 ; prix

Plus en détail

NF26 Data warehouse et Outils Décisionnels Printemps 2010

NF26 Data warehouse et Outils Décisionnels Printemps 2010 NF26 Data warehouse et Outils Décisionnels Printemps 2010 Rapport Modélisation Datamart VU Xuan Truong LAURENS Francis Analyse des données Avant de proposer un modèle dimensionnel, une analyse exhaustive

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Cours: Administration d'une Base de Données

Cours: Administration d'une Base de Données Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1

Plus en détail

Intégrité sémantique dans les bases de données relationnelles

Intégrité sémantique dans les bases de données relationnelles Intégrité sémantique dans les bases de données relationnelles 1 - Intégrité sémantique Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU Ecole Polytechnique Universitaire de Marseille Fev. 2013

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

1 Position du problème

1 Position du problème Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo

Plus en détail

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL Sommaire Etablir une connexion avec une base de données distante sur PostGreSQL 1 Connexion avec le module dblink...3 1.1 Création du module dblink... 3 1.2 Exemple de Mise en oeuvre... 4 1.3 Création

Plus en détail

Vincent Augusto 2010-2011

Vincent Augusto 2010-2011 le des Systèmes Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2010-2011 Un 1/73 le des Un 2/73 1 2 3 4 le 5 6 7 8 Un le des Un 3/73 Contenu du cours : Techniques pour l analyse

Plus en détail

Bible MySQL! La première version de MySQL est apparue en 1995. Cette première version est créée pour un usage personnel à partir de msql.

Bible MySQL! La première version de MySQL est apparue en 1995. Cette première version est créée pour un usage personnel à partir de msql. Bible MySQL! Bref historique de MySQL 1. MySQL MySQL est le Système de Gestion de Base de Données Relationnelle (SGBDR) Open Source le plus répandu dans le monde. Il est développé par MySQL AB, une entreprise

Plus en détail

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES BASE DE DONNEES La plupart des entreprises possèdent des bases de données informatiques contenant des informations essentielles à leur fonctionnement. Ces informations concernent ses clients, ses produits,

Plus en détail

Créer une base de données

Créer une base de données Access Créer une base de données SOMMAIRE Généralités sur les bases de données... 3 Création de la base de données... 4 A) Lancement d'access... 4 B) Enregistrement de la base de données vide... 4 Création

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

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

Plus en détail

SUPPORT SQL. Thierry GRANDADAM

SUPPORT SQL. Thierry GRANDADAM SUPPORT SQL Thierry GRANDADAM TABLE DE MATIERES 1. PRESENTATION DE SQL...1 1.1. Historique...1 1.2. Mise en œuvre...1 1.3. Les versions...1 2. LES RESEAUX...2 2.1. Les différentes familles...2 2.2. Définition

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier

Plus en détail

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Initiation aux bases de données (SGBD) Walter RUDAMETKIN Initiation aux bases de données (SGBD) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Moi Je suis étranger J'ai un accent Je me trompe beaucoup en français (et en info, et en math, et...)

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche (sebastien@nameche.fr)

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche (sebastien@nameche.fr) Support de cours Introduction à SQL et MySQL 2003, Sébastien Namèche (sebastien@nameche.fr) Licence de Libre Diffusion des Documents -- LLDD version 1 (Par Bernard Lang, http://pauillac.inria.fr/~lang/licence/lldd.html)

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Conception des bases de données : Modèle Entité-Association

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

TD n 10 : Ma première Base de Données

TD n 10 : Ma première Base de Données TD n 10 : Ma première Base de Données 4 heures Rédigé par Pascal Delahaye 11 mars 2015 Le but de ce TD est de découvrirles principales fonctions d OpenOffice Base, le systèmede gestion de bases de données

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

Mejdi BLAGHGI & Anis ASSÈS

Mejdi BLAGHGI & Anis ASSÈS Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Djerba Support de Cours

Plus en détail

Introduction aux Bases de Données

Introduction aux Bases de Données Introduction aux Bases de Données I. Bases de données I. Bases de données Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Exemples classiques d'applications BD

Plus en détail

Université de Nice Sophia-Antipolis. Langage SQL. version 5.7 du polycopié. Richard Grin

Université de Nice Sophia-Antipolis. Langage SQL. version 5.7 du polycopié. Richard Grin Université de Nice Sophia-Antipolis Langage SQL version 5.7 du polycopié Richard Grin 4 janvier 2008 Table des matières Présentation du polycopié vi 1 Introduction 1 1.1 Présentation de SQL.......................

Plus en détail

Utilisation du BDE pour la maintenance des fichiers DBF de l'application TopoCad:

Utilisation du BDE pour la maintenance des fichiers DBF de l'application TopoCad: Utilisation du BDE pour la maintenance des fichiers DBF de l'application TopoCad: Nous allons voir autour d'un exemple concret une facon de modifier les fichiers DBF de l'application. Le but est de modifier

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

Création de Sous-Formulaires

Création de Sous-Formulaires Création de Sous-Formulaires Révision 1.01 du 02/01/04 Réalisé avec : OOo 1.1.0 Plate-forme / Os : Toutes Distribué par le projet Fr.OpenOffice.org Table des Matières 1 But de ce how-to...3 2 Pré-requis...3

Plus en détail

Bases de données Outils de gestion

Bases de données Outils de gestion 11/03/2010 Bases de données Outils de gestion Mise en place d outils pour gérer, stocker et utiliser les informations d une recherche biomédicale ent réalisé par L. QUINQUIS d épidémiologie et de biostatistique

Plus en détail

Introduction aux Bases de Données 2004/2005

Introduction aux Bases de Données 2004/2005 Introduction aux Bases de Données 2004/2005 Chapitre 6: Le langage SQL Ecole Nationale Supérieur de Physique de Strasbourg Christian Wolf christian.wolf@ensps.u-strasbg.fr 6.1 Stockage physique Film numfil

Plus en détail