Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML
|
|
- Fabien Michaud
- il y a 8 ans
- Total affichages :
Transcription
1 Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML MariaDB : Site officiel MySQL : Zone pour les développeurs : Téléchargement : Documentations MySQL : Mémo SQL : Bertrand LIAUDET SOMMAIRE SOMMAIRE 1 SQL : CREATION DE LA BASE DE DONNEES. LES TABLES : LE DDL 3 0. Présentation 3 1. Création des tables 4 2 Contrainte d intégrité référentielle : CIR 9 3 Modification des tables 13 4 Suppression des tables Récupération du code sous mysql : show create table Moteur MyISAM et moteur InnoDB 16 SQL : CREATION DE LA BASE DE DONNEES. LES TUPLES : LE DML Création des tuples Modification et suppression des tuples Suppression des tuples Remplacement des tuples 22 TP N 5 : CMS DES TUPLES ET DES TABLES 23 Présentation 23 Exercice 1 : charger les tables de la base de données 23 Exercice 2 : modification et création de la BD 24 Exercice 3 : création de la BD via un SELECT et des ALTER 25 Exercice 4 : Exporter - Importer 25 BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 1/26 - Bertrand LIAUDET
2 Exercice 5 : passage de InnoDB à MyISAM et retour en InnoDB 26 Première édition : septembre 2007 Deuxième édition : septembre 2008 Troisième édition : septembre 2009 BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 2/26 - Bertrand LIAUDET
3 SQL : CREATION DE LA BASE DE DONNEES. LES TABLES : LE DDL PRINCIPALES NOTIONS CREATE TABLE INSERT INTO ALTER TABLE UPDATE DROP TABLE DELETE FROM Contraintes d intégrité non référentielles Moteur MyISAM Contraintes d intégrité référentielle Moteur InnoDB Show create table 0. Présentation Les trois opérations fondamentales de «création» au sens large de la base de données sont : la création, la modification et la suppression Ces opérations correspondent au sigle : CMS La CMS s applique aux tables, aux tuples mais aussi aux utilisateurs. CMS des tables : Le DDL : Data Definition Language CREATE TABLE ALTER TABLE DROP TABLE CMS des tuples : Le DML : Data Manipulation Language INSERT INTO UPDATE DELETE FROM REPLACE BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 3/26 - Bertrand LIAUDET
4 1. Création des tables Une fois le modèle des données réalisé, il reste à créer la base de données. Créer d abord les tables, puis les tuples. Création des tables Syntaxe MySQL Exemple En première approche, la commande a la syntaxe suivante : CREATE table NomTable ( attribut_1 type [contrainte d intégrité], attribut_2 type [contrainte d intégrité],, attribut_n type [contrainte d intégrité], [contrainte d intégrité] ); Les contraintes sont facultatives. L ordre dans la liste est au choix. La table est une coquille vide : c'est une structure. Elle permettra ensuite de créer des tuples. CREATE TABLE DEPT ( ND integer primary key auto_increment, NOM varchar(14) not NULL, VILLE varchar(13) ); CREATE TABLE EMP ( NE integer primary key auto_increment, NOM varchar(10) not NULL, JOB enum ('PRESIDENT','MANAGER', 'SALESMAN', 'CLERK', 'ANALYST'), DATEMB date, SAL float(7,2), COMM float(7,2), ND integer not null, foreign key(nd) references DEPT(ND), NEchef integer, foreign key(nechef) references EMP(NE) ); BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 4/26 - Bertrand LIAUDET
5 Les types La connaissance des types est plus ou moins spécifique au SGBD avec lequel on travaille. Les types numériques BOOL, BOOLEAN, BIT INT (M), INTEGER (M), TINYINT (M), SMALLINT (M), MEDIUMINT (M), BIGINT (M) FLOAT(precision), FLOAT (M,D), DOUBLE (M,D), DOUBLE PRECISION (M,D), REAL (M,D) avec : M : nb chiffres max, D : nb chiffres après la virgule DECIMAL (M,D), DEC (M,D) avec M : taille de l affichage, D: nombre de décimal, M>=D, si M=D alors 1 < n < 1. Les types date DATE, DATETIME, TIME TIMESTAMP : pour gérer automatiquement la date de création ou de mise à jour. YEAR(2 4) Type chaîne CHAR(M), NCHAR(M), CHARACTER : taille statique, 255 max. VARCHAR(M), NATIONAL VARCHAR(M) : taille dynamique, 2000 max. BLOB, TEXT, TINYBLOB, TINYTEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEXT : taille dynamique, jusqu à 4GO. Type chaine : enum et set ENUM('value1','value2',...) : permet de proposer une liste de valeurs pour l attribut. Remarque : les valeurs proposées seront les seules possibles. L enum se comporte donc comme un «check». SET('value1','value2',...) : zéro, une ou plusieurs valeurs parmi une liste BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 5/26 - Bertrand LIAUDET
6 Les contraintes d intégrité Notion de contrainte d intégrité Le type Une contrainte d intégrité est un élément de définition des données qui s applique à un attribut et qui fixe une contrainte de valeur pour les données de l attribut. Le type est la première contrainte d intégrité. Selon les SGBD, plus ou moins de vérifications seront effectuées. MySQL est très permissif : les réels sont arrondis en entier si nécessaire, les entier et les réels sont considérés comme des chaînes de caractères si nécessaire. Les chaînes de caractères qui peuvent être lues comme des entiers ou des réels sont considérées comme des entiers ou des réels si nécessaire. Toutefois : Une chaîne de caractère contenant du texte ne peut pas correspondre à un entier ou un réel. Les date doivent avoir le format : yyyy-mm-jj et le nombre de jour et nombre de mois doit être cohérent. Liste des contraintes d intégrité PRIMARY KEY : permet de définir les clés primaires. Cette contrainte garantit le fait que la valeur est différente de NULL et qu elle est unique dans la table. FOREIGN KEY : permet de définir les clés étrangères. Cette contrainte garantit que la valeur fait bien référence à une clé primaire existant dans une autre table. NOT NULL : impose le fait que la valeur de l attribut doit être renseignée. UNIQUE : impose le fait que chaque tuple de la table doit, pour l attribut concerné, avoir une valeur différente de celle des autres ou NULL. DEFAULT : permet de définir une valeur par défaut. ENUM : permet de définir un ensemble de valeurs possible pour l attribut. Cette contrainte garantit le fait que la valeur de l attribut appartiendra à cet ensemble. Le SQL standard propose le mot-clé CHECK qui permet de gérer plus de vérifications sur les valeurs possibles de pour l attribut. Conséquences des contraintes d intégrité PRIMARY KEY, NOT NULL, UNIQUE et CHECK : ces quatre contraintes ont le même type de conséquence : si on cherche à donner une valeur à un attribut qui n est pas conforme à ce qui est précisé dans la définition de l attribut (valeur NULL s il est défini NOT NULL ou PRIMARY KEY, valeur existant déjà s il est défini UNIQUE ou PRIMARY KEY, valeur n appartenant pas au domaine spécifié par le CHECK), alors le SGBD renvoie un message d erreur et ne modifie pas la base de données. Ainsi, un premier niveau de cohérence des données est maintenu. DEFAULT : donne une valeur par défaut si il n y a pas de saisie. FOREIGN KEY : cette contrainte garantit que la valeur fait bien référence à une clé primaire existant dans une autre table. Les conséquences pratiques de cette contraintes seront abordées au prochain chapitre. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 6/26 - Bertrand LIAUDET
7 Exemples de code Exemple 1 -- Création de la BD : on supprime la database, on la recrée, on l'utilise drop database if exists empdept; create database empdept; use empdept; -- Création des tables CREATE TABLE DEPT ( ND integer primary key auto_increment, NOM varchar(14) not NULL, VILLE varchar(13) ) ENGINE InnoDB; CREATE TABLE EMP ( NE integer primary key auto_increment, NOM varchar(10) not NULL, JOB varchar(9), DATEMB date, SAL float(7,2), COMM float(7,2), ND integer not null, foreign key(nd) references DEPT(ND), NEchef integer, foreign key(nechef) references EMP(NE) ) ENGINE InnoDB; -- création des tuples INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK'), (20,'RESEARCH','DALLAS'), (30,'SALES','CHICAGO'), (40,'OPERATIONS','BOSTON') ; INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',' ',5000,NULL,10,NULL); INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',' ',2850,NULL,30,7839); INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',' ',2450,NULL,10,7839); INSERT INTO EMP VALUES (7566,'JONES','MANAGER',' ',2975,NULL,20,7839); INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',' ',1250,1400,30,7698); INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',' ',1600,300,30,7698); INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',' ',1500,0,30,7698); INSERT INTO EMP VALUES (7900,'JAMES','CLERK',' ',950,NULL,30,7698); INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',' ',1250,500,30,7698); INSERT INTO EMP VALUES (7902,'FORD','ANALYST',' ',3000,NULL,20,7566); INSERT INTO EMP VALUES (7369,'SMITH','CLERK',' ',800,NULL,20,7902); INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',' ',3000,NULL,20,7566); INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',' ',1100,NULL,20,7788); INSERT INTO EMP VALUES (7934,'MILLER','CLERK',' ',1300,NULL,10,7782); Remarques Insert into : on peut faire un insert into par tuple (c est le cas des employés) ou faire un insert into pour tous les tuples (c est le cas des départements). Variante de l exemple 1 BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 7/26 - Bertrand LIAUDET
8 CREATE TABLE EMP ( NE integer auto_increment, NOM varchar(10), JOB enum ('PRESIDENT','MANAGER', 'SALESMAN', 'CLERK', 'ANALYST'), DATEMB date, SAL float(7,2) check (sal >1000), -- mysql ne gère pas le check! COMM float(7,2) default 100, ND integer not null, NEchef integer, primary key(ne) ) ENGINE InnoDB; CREATE TABLE DEPT ( ND integer auto_increment, NOM varchar(14), VILLE varchar(13), primary key(nd) ) ENGINE InnoDB; ALTER TABLE EMP ADD constraint KEYND foreign key(nd) references DEPT(ND); ALTER TABLE EMP ADD constraint KEYNECHEF foreign key(nechef) references EMP(NE); Remarques JOB enum Check : pas géré par MySQL Defautl : Comm default 100 Les foreign key gérées en altération. De ce fait, on peut créer les tables dans n importe quel ordre. Create table as select On peut créer une table et la remplir à partir d un select : Create table nomtable as select ; Cette table contiendra les attributs et les tuples du select. Elle ne contiendra aucune contraintes d intégrité. Tous les attributs sont à NULL par défaut. Pour y ajouter des contraintes d intégrité, il faudra faire des ALTER TABLE. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 8/26 - Bertrand LIAUDET
9 2 Contrainte d intégrité référentielle : CIR Notion de contrainte d intégrité référentielle FOREIGN KEY est une caractéristique pour un attribut qui définit une contrainte d intégrité référentielle. Une CIR garantit que la valeur de l attribut fait bien référence à une clé primaire existant dans une autre table. Une CIR concerne deux attributs (et donc en général deux tables) : Une CIR s applique à un attribut maître : celui qui fait référence à un autre attribut. Une CIR concerne un attribut joint : celui qui est référé par l attribut maître. La présence de CIR à des conséquences : Sur la création, modification, suppression des tables. Sur la création et la modification de tuples propriétaires de la CIR. Sur la modification et la suppression de tuples référés par une CIR. Conséquences de l intégrité référentielle sur les tables Création et modification d une table maître (avec une clé étrangère) La table jointe doit être créée avant la table maître. Exemple : il faut créer la table des départements avant celle des employés car la table des employés fait référence à la table des départements. Suppression d une table jointe (dont la clé primaire est référencée par d autres tables) La table maître doit être supprimée avant la table jointe. Exemple : il faut supprimer la table des employés avant celle des départements car la table aucune table ne fait référence à la table des employés tandis que la table des départements est référencée par la table des employés. Ajout et suppression des CIR indépendamment des tables Pour pouvoir créer les tables dans n importe quel ordre (par ordre alphabétique par exemple), il suffit de créer les CIR après avoir créer les tables (avec un ALTER TABLE). Pour pouvoir supprimer les tables dans n importe quel ordre, il suffit de supprimer les CIR avant de supprimer les tables (avec un ALTER TABLE). Conséquences de l intégrité référentielle sur les tuples Création et modification d un tuple maître (avec une clé étrangère) Le tuple joint doit être créé avant le tuple maître. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 9/26 - Bertrand LIAUDET
10 Suppression d un tuple joint (dont la clé primaire est référencée par d autres tuples) Un tuple joint ne peut pas être supprimé. En cas de tentative d une telle suppression, 3 cas peuvent se présenter : Exemple : Soit on interdit la suppression du tuple joint. Il faudra alors commencer par détruire le ou les tuples maîtres correspondant pour pouvoir supprimer le tuple joint. C est la situation par défaut. Soit le système supprime le tuple joint et les tuples maître correspondant : ainsi il n y a plus de tuples maître faisant référence au tuple joint. Dans ce cas on ajoute : ON DELETE CASCADE à la définition de la clé étrangère. ND integer not null, foreign key(nd) references DEPT(ND) on delete cascade Dans notre exemple, cela signifie que si on supprime un département, on supprimera aussi tous les employés du départements ce qui n est certainement pas un bon choix de modélisation! Soit le système supprime le tuple joint et met la clé étrangère correspondante des tuples maîtres à NULL pour qu il n y ait plus de tuples maîtres qui fassent référence au tuple joint. Dans ce cas on ajoute : ON DELETE SET NULL à la définition de la clé étrangère. Exemple : ND integer not null, foreign key(nd) references DEPT(ND) on delete set NULL Dans notre exemple, cela signifie que si on supprime un département, les employés du département auront désormais la valeur NULL comme numéro de département. C est possible à condition que le numéro de département de l employé ne soit pas déclaré NOT NULL. Modification d un tuple joint (dont la clé primaire est référencée par d autres tuples) Un tuple joint ne peut pas être modifié. En cas de tentative d une telle suppression, 2 cas peuvent se présenter : Exemple: Soit on interdit la modification du tuple joint. Il faudra commencer par modifier le ou les tuples maîtres correspondant pour pouvoir modifier le tuple joint. C est la situation par défaut. Soit le système modifie le tuple joint et les tuples maîtres correspondants pour qu ils fassent correctement référence au tuple joint. Dans ce cas on ajoute : ON UPDATE CASCADE à la définition de la clé étrangère. ND integer not null, foreign key(nd) references DEPT(ND) on update cascade Dans notre exemple, cela signifie que si on modifie la clé primaire d un département, on modifiera aussi les numéros de départements des employés de ce département. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 10/26 - Bertrand LIAUDET
11 Nommer les contraintes : CONSTRAINT nomcontrainte En SQL standard, on peut nommer toutes les contraintes, ce qui permettra ensuite de désactiver et de réactiver les contraintes en y faisant références par leur nom. Pour cela, il suffit d ajouter «CONSTRAINT nomcontrainte» devant la déclaration de la contrainte. MySQL ne gère que le nom des CIR. Syntaxe SQL Création de CIR dans un CREATE TABLE Syntaxe générale Exemples FOREIGN KEY(nomAttMaître) [CONSTRAINT nomcontrainte] REFERENCES nomtablejointe(nomattjoint) CREATE TABLE EMP ( NE integer primary key auto_increment, ND integer not null, foreign key(nd) references DEPT(ND), NEchef integer, foreign key(nechef) references EMP(NE) ); Ou encore : CREATE TABLE EMP ( NE integer primary key auto_increment, ND integer not null, NEchef integer, constraint KEYND foreign key(nd) references DEPT(ND), foreign key(nechef) references EMP(NE) ); Nom d une CIR : show create table mysql> show create table emp; emp CREATE TABLE `emp` ( `NE` int(11) NOT NULL auto_increment, CONSTRAINT `emp_ibfk_1` FOREIGN KEY (`ND`) REFERENCES `dept` (`ND`), CONSTRAINT `emp_ibfk_2` FOREIGN KEY (`NEchef`) REFERENCES `emp` (`NE`) ) ENGINE=InnoDB AUTO_INCREMENT=7935 DEFAULT CHARSET=latin1 La CIR sur ND est nommée automatiquement : `emp_ibfk_1`. La CIR sur NEchef est nommée automatiquement : `emp_ibfk_2` Création de CIR par un ALTER TABLE CREATE TABLE EMP ( NE integer auto_increment, NEchef integer, primary key(ne) ) ENGINE InnoDB; BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 11/26 - Bertrand LIAUDET
12 CREATE TABLE DEPT ( ND integer auto_increment, primary key(nd) ) ENGINE InnoDB; ALTER TABLE EMP ADD constraint KEYND foreign key(nd) references DEPT(ND); ALTER TABLE EMP ADD foreign key(nechef) references EMP(NE); Autres possibilités Selon les SGBD, d autres possibilités de définition de contraintes d intégrité seront possibles. Elles sont à analyser au cas par cas en fonction du SGBD sur lequel on travaille. Cependant, les plus importantes ont été abordées. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 12/26 - Bertrand LIAUDET
13 3 Modification des tables Modification des attributs Ajouter un ou plusieurs attributs à la table : ALTER TABLE NomTable ADD ( attribut_1 type [contrainte], attribut_2 type [contrainte],, attribut_n type [contrainte] ); Modifier un attribut de la table ALTER TABLE NomTable MODIFY attribut_1 type [contrainte] ; La modification permet d annuler les contraintes de type NOT NULL ou auto_increment. Supprimer un attribut de la table ALTER TABLE NomTable DROP attribut ; Attention La modification et la suppression des attributs doivent être manipulées avec prudence : une table peut contenir des milliers de données. Il ne faut pas les supprimer ou modifier une table sans précaution. Ajout et suppression de contraintes d'intégrité Ajouter une contrainte Exemple ALTER TABLE NomTable ADD [ CONSTRAINT nomcontrainte] Contrainte ; ALTER TABLE emp ADD CONSTRAINT keynd FOREIGN KEY(ND) REFERENCES DEPT(ND); Suppression d une contrainte nommée ALTER TABLE emp ADD foreign key(nd) references DEPT(ND); ALTER TABLE NomTable DROP type de contrainte nom_de_contrainte; BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 13/26 - Bertrand LIAUDET
14 Exemple ALTER TABLE emp DROP foreign key KEYND; Récupérer le nom des contraintes : show create table matable Si on n a pas nommé les contraintes à la création, MySQL les nomme automatiquement. Pour récupérer le nom, il faut utiliser la commande Show create table matable On obtient alors le nom de la contrainte derrière le mot clé CONSTRAINT. Suppression de la clé primaire ALTER TABLE NomTable DROP primary key ; On ne peut supprimer la clé primaire que si ce n est pas un auto incrément, et uniquement si elle n est pas référencée par une clé étrangère. 4 Suppression des tables Attention : DROP TABLE NomTable ; La modification et la suppression des tables doit être manipulées avec prudence : une table peut contenir des milliers de données. Il ne faut pas les supprimer ou modifier une table sans précaution. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 14/26 - Bertrand LIAUDET
15 5. Récupération du code sous mysql : show create table Show create table La commande show create table nomtable permet de récuperer le code de création d une table. Exemple 1 : mysql> show create table dept; emp CREATE TABLE `dept` ( `ND` int(11) NOT NULL auto_increment, `NOM` varchar(14) default NULL, `VILLE` varchar(13) default NULL, PRIMARY KEY (`ND`) ) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=latin1 Remarques 1. le n du prochain ID automatique sera InnoDB est un choix de SGBD. C est celui par défaut. 3. Le code est exploitable directement pour créer une table. Exemple 2 : mysql> show create table emp; emp CREATE TABLE `emp` ( `NE` int(11) NOT NULL auto_increment, `NOM` varchar(10) default NULL, `JOB` varchar(9) default NULL, `DATEMB` date default NULL, `SAL` float(7,2) default NULL, `COMM` float(7,2) default NULL, `ND` int(11) NOT NULL, `NEchef` int(11) default NULL, PRIMARY KEY (`NE`), KEY `ND` (`ND`), KEY `NEchef` (`NEchef`), CONSTRAINT `emp_ibfk_1` FOREIGN KEY (`ND`) REFERENCES `dept` (`ND`), CONSTRAINT `emp_ibfk_2` FOREIGN KEY (`NEchef`) REFERENCES `emp` (`NE`) ) ENGINE=InnoDB AUTO_INCREMENT=7944 DEFAULT CHARSET=latin1 Remarques 1. Le n du prochain ID automatique sera Les clés étrangères sont déclarées en plusieurs étapes : avec KEY et avec CONSTRAINT 3. Le code est exploitable directement pour créer une table. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 15/26 - Bertrand LIAUDET
16 Rappels d autres commandes Show databases : lister toutes les databases auxquelles on a accès. Create database nomdatabase : créer une database. Drop database nomdatabase : supprimer une database. Use nomdatabase : utiliser une database. Show tables : lister les tables de la database en cours. Desc nomtable : lister les attributs d une table Show index from nomtable : lister les index d une table Show create table nomtable : afficher le code de creation d une table 6. Moteur MyISAM et moteur InnoDB MyISAM et InnoDB MySQL propose deux type de moteur pour le SGBD : Le moteur MyISAM Le moteur InnoDB Le moteur MyISAM est le moteur par défaut. Il est rapide mais ne gère ni les clés étrangères, ni les transactions. Le moteur InnoDB gère les transactions et les clés étrangères. Quel moteur choisir? Par défaut, il vaut mieux choisir le moteur InnoDB qui prend en compte la norme SQL. Pour améliorer les performance, on peut revenir, si nécessaire au moteur MyISAM. Conclusion : toujours InnoDB!!! Etant donné que les performances sont, dans un premier temps, une question secondaire, et que par contre, on veut absolument apprendre à gérer finement les contraintes de clés étrangères puis les transactions : On utilisera toujours le moteur InnoDB!!! Conséquence syntaxique : ENGINE InnoDB On ajoute : ENGINE InnoDB à la fin de la création de la table : CREATE TABLE DEPT ( ND integer auto_increment, NOM varchar(14), VILLE varchar(13), primary key(nd) ) ENGINE InnoDB; BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 16/26 - Bertrand LIAUDET
17 Passage d un moteur à l autre On peut modifier le moteur d une table : Passage en MyISAM ALTER TABLE emp TYPE MyISAM ; Pour passer en d InnoDB à MyISAM, il ne doit pas y avoir de clé étrangère. Il faut donc commencer par supprimer les contraintes nommées de clé étrangère. Passage en InnoDB ALTER TABLE emp TYPE InnoDB ; Le passage de MyISAM a InnoDB est possible directement. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 17/26 - Bertrand LIAUDET
18 SQL : CREATION DE LA BASE DE DONNEES. LES TUPLES : LE DML 1. Création des tuples Une fois les tables créées, il faut créer les tuples, c est-à-dire les données à proprement parler. Création de tuples Syntaxe MySQL Exemple INSERT INTO NomTable (attribut_1,, attribut_n ) values (valeur_1,, valeur_n ) ; INSERT INTO departements (ND, nom, ville) values (10, 'ADMINISTRATION', 'PARIS') ; ou encore, sans préciser la liste des attributs : INSERT INTO departements values (20, 'VENTES', 'PARIS') ; ou encore, en série : INSERT INTO departements values (20, 'VENTES', 'PARIS'), (10, 'ADMIN', 'PARIS') ; ; Utilisation de l auto-incrément Directement INSERT INTO departements (nom, ville) values ('VENTES', 'PARIS'); Dans ce cas, il faut préciser la liste des attributs qu on veut affecter sans préciser le nom de l attribut clé, et ne pas mettre de valeur pour l attribut clé. Au minimum, on écrira donc : INSERT INTO departements ( ) values ( ); En passant une valeur NULL En passant une valeur NULL ou, on fait jouer l auto-incrément : INSERT INTO departements values (NULL, 'VENTES', 'PARIS'); BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 18/26 - Bertrand LIAUDET
19 Ou bien INSERT INTO departements values ('', 'VENTES', 'PARIS'); Gestion des clés étrangères : la fonction last_insert_id() La fonction last_insert_id() permet de récupérer le dernier numéro de clé primaire donnée. C est utile pour faire un lien sur une clé étrangère : INSERT INTO employes values (NULL, 'DURAND', 'ANALYST', ' ', 2000, NULL, last_insert_id(),7839); Cette instruction permet de créer l employé DURAND et de l affecter dans le département qu on vient de créer précédemment. A noter que la fonction «last_insert_id()» est gérée au niveau de chaque client. Création de tuples en série On peut insérer dans une table des tuples résultant de l interrogation de la base de données elle-même. INSERT INTO NomTable ( liste d'attributs ) SELECT liste d'attributs from ; Les tuples de la table résultant du select sont créés dans la table de l'insert. Attention : La table résultant du select doit avoir le même schéma que celle dans laquelle les tuples sont insérés. Exporter les données A partir de mysql Production d un fichier «csv» exploitable sous Excel. Chemin absolu mysql> SELECT * INTO OUTFILE c:/dept.csv fields terminated by, FROM dept; Chemin relatif : DATADIR mysql> SELECT * INTO OUTFILE./dept.csv fields terminated by, FROM dept; BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 19/26 - Bertrand LIAUDET
20 Chemin relatif : DATADIR / BDused mysql> SELECT * INTO OUTFILE dept.csv fields terminated by, FROM dept; A partir du SE C: \ > mysql dbname u user p >output.tab On passe en mode batch, l affichage est redirigé dans le fichier output.tab Ou bien C: \ > mysql dbname u user p pager=cat>output.tab Remarque : output.tab est écrasé au début de l opération, mais toutes les commandes de la même session sont executées à la suite Autre usage : C: \ > mysql dbname u user p < fichier.sql > output.tab Importer les données On peut importer des données en précisant le format de séparation des champs. Par exemple: les fichiers csv produit par Excel utilisent la virgule comme séparateur. Attention : La table correspondant au fichier importé doit avoir le même schéma que celle dans laquelle les tuples sont insérés. Chemin absolu mysql> LOAD DATA INFILE c:/dept.csv INTO TABLE dept fields terminated by, ; Chemin relatif : DATADIR mysql> LOAD DATA INFILE./dept.csv INTO TABLE dept fields terminated by, ; Chemin relatif : DATADIR / BDused mysql> LOAD DATA INFILE dept.csv INTO TABLE dept fields terminated by, ; Chemin relatif : DATADIR / BD au choix mysql> LOAD DATA INFILE./empdept/dept.csv INTO TABLE dept fields terminated by, ; BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 20/26 - Bertrand LIAUDET
21 2. Modification et suppression des tuples Modification de toute la colonne On peut modifier la valeur d un attribut d un tuple : UPDATE NomTable SET attribut = expression ; L expression peut être une valeur constante, ou une valeur calculée à partir d un élément de la BD : soit directement un attribut, soit le résultat d un select (qui devra donc avoir comme résultat une valeur atomique). Attention : La modification est effectuée pour tous les tuples. Modification de certains tuples dans la colonne On peut sélectionner certains tuples en ajoutant la clause where : UPDATE NomTable SET attribut_1 = expression ou ( SELECT ) WHERE condition ; Remarque Le Select dans le Set ne doit pas faire référence à la table de l update. Modification de plusieurs attributs à la fois La syntaxe générale est la suivante : UPDATE NomTable SET attribut_1 = expression ou ( SELECT ), attribut_n = expression_n ou ( SELECT ) WHERE condition; Exemple UPDATE emp SET salaire = salaire * 1,1 WHERE job = Manager ; BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 21/26 - Bertrand LIAUDET
22 3. Suppression des tuples On peut supprimer des tuples en précisant lesquels par la clause where : DELETE FROM NomTable WHERE condition ; Attention!!! La suppression des tuples doit être manipulée avec prudence : il est possible de détruire tous les tuples d'une table en une seule commande. Il n y a pas de possibilité de retour en arrière (le ROLLBACK ne sert que dans une transaction). La seule façon de retrouver des tuples détruits par erreur sera de revenir à la dernière sauvegarde ce qui risque d être pénalisant ou de passer par les fichiers de journaux. 4. Remplacement des tuples Remplacer un tuple est équivalent à le supprimer (DELETE) et le créer à nouveau (INSERT INTO). 4 cas de figure 1. Si la clé primaire est dans le SET et que la valeur de la clé primaire existe déjà, alors il y aura effectivement remplacement des autres attributs (DELETE + INSERT) avec les valeurs précisées dans le SET. Les attributs non spécifiés dans le SET passent à NULL. 2. Si la clé primaire est dans le SET et que la valeur de la clé primaire n existe pas déjà, alors il y création d un nouveau tuple (INSERT) avec les valeurs précisées dans le SET. Les attributs non spécifiés dans le SET sont à NULL. 3. Si la clé primaire n est pas dans le SET et qu il y a un auto-incrément, alors il y création d un nouveau tuple (INSERT) avec les valeurs précisées dans le SET. Les attributs non spécifiés dans le SET sont à NULL. 4. Si la clé primaire n est pas dans le SET et qu il n y a pas d auto-incrément, alors la commande génère une ERREUR. Syntaxe La syntaxe du REPLACE est celle de l UPDATE mais sans clause WHERE. REPLACE FROM NomTable SET attribut_1 = expression ou ( SELECT ), attribut_n = expression_n ou ( SELECT ) ; BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 22/26 - Bertrand LIAUDET
23 TP N 5 : CMS DES TUPLES ET DES TABLES Présentation L exercice consiste à écrire des requêtes SQL d interrogation de la BD. On utilise la base des employés. Exercice 1 : charger les tables de la base de données Présentation On travaillera sur les tables suivantes : EMPLOYES(NE, NOM, JOB, DATEMB, SAL, COMM, #ND, *NEchef) NE numéro de l employé. Clé primaire. NOM nom de l employé. JOB intitulé du poste occupé. DATEMB date d embauche. SAL salaire de l employé. COMM commission (part de salaire variable). #ND n du département dans lequel travaille l employé. Clé étrangère. *NEchef n d employé du chef de l employé. Clé étrangère réflexive. DEPARTEMENTS(ND, NOM, VILLE) ND numéro des départements de l entreprise. Clé primaire. NOM nom des départements de l entreprise. VILLE nom des villes où sont situés les départements. Exercice : lancer le script de création de la BD 1. Télécharger le script de création de la BD : EmployesTP05.txt 2. Lancer ce script de création de la BD. 3. Corriger les erreurs dans l ordre : lister toutes les erreurs une par une. Pour corriger les erreurs, il faut les traiter dans l ordre, warnings compris. 4. Enregistrer un script corrigé. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 23/26 - Bertrand LIAUDET
24 Exercice 2 : modification et création de la BD Méthode de travail Dans un fichier texte à votre nom+tp05, écrire tous les scripts demandés avec l intitulé des questions. Utilisez un fichier de test pour tester individuellement les questions. Le mieux est de recharger régulièrement une BD propre : le script corrigé du TP05. Les requêtes : CMS (Création Modification Suppression) des tuples 1. Faire une augmentation de salaire de 20% à tous les employés du département 20. Commencer par faire une requête de recherche des tuples concernés. 2. Augmenter la commission de 200 à tous les vendeurs de Chicago. Commencer par faire une requête de recherche des tuples concernés. 2. bis : Augmenter de 10 % tous les subordonnés des employés qui gagnent plus que Essayer de créer l employé Dupond dont le numéro d employé est On n a pas plus d informations le concernant. Quel problème cela pose-t-il? 4. Essayer de créer l employé Dupond dont le numéro d employé est 7839 et qui travaille dans le département 10. Quel problème cela pose-t-il? Comment pouvez-vous le résoudre? 5. Essayer de supprimer le département 10. Quel problème cela pose-t-il? 6. Essayer de supprimer l employé n Quel problème cela pose-t-il? 7. Créer l employé Dupond. Son numéro est le Il est MANAGER. Sa date d embauche est le 1 février Son salaire est Il n a pas de commission. Son supérieur hiérarchique est le Président. Il travaille dans le département 30. Turner (7844) et James (7900) passe sous sa responsabilité. Ecrivez le script de mise à jour de la base de données. Exécuter ce script. 8. Dupond et les employés sous sa responsabilité travaille désormais dans le département 40. Ecrivez le script de mise à jour de la base de données. 9. Blake (7698) démissionne. Tous les employés sous sa responsabilité passent sous celle de Dupond et dans son département. Son département est supprimé. Tous les employés de son département passent dans le département de Dupond. Ecrivez le script de mise à jour de la base de données. Dans le script on commencera par lister tous les subordonnés de Blake et tous les employés de son département. 10. Ajouter un nouveau département. Il est à PARIS. Son nom est «INFO». On souhaite gérer le numéro du département automatiquement. Quel est le numéro de ce nouveau département? BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 24/26 - Bertrand LIAUDET
25 Exercice 3 : création de la BD via un SELECT et des ALTER Méthode de travail Continuer à écrire les scripts dans le fichier de l exercice précédent. Les requêtes 11. Recharger une BD propre : le script corrigé du TP Dans une nouvelle BD, la BD «exotest», Créer une table «empcomplet» avec tous les tuples qui contiennent tous les employés avec toutes les infos sur leurs départements et sur leur chef.. On n aura par contre pas d information sur le département du chef et sur le chef du chef. 13. Ajouter les contraintes d intégrité. 14. Le département de DALLAS a été déplacé à SAN FRANCISCO. Faites la mise à jour de la BD. 15. BLAKE (7698) s appelle désormais MORTIMER. Changer son nom. 16. Reconstituer les deux tables des employés et des départements. 17. Ajouter les contraintes d intégrité. 18. Supprimer la table «empcomplet» Exercice 4 : Exporter - Importer Méthode de travail Continuer à écrire les scripts dans le fichier de l exercice précédent. Les requêtes 19. Recharger une BD propre : le script corrigé du TP Exporter les données correspondant à la requête : «tous les employés avec leur job, le numéro de leur département et la ville de leur département.» dans un fichier «eox4.csv dont les champs seront séparés par des virgules. Le fichier doit se trouver dans le répertoire des données de la BD. 21. Ouvrer ce fichier avec un éditeur de texte (bloc-note) puis avec un tableur (excel). 22. Créer une nouvelle BD appelée : test. 23. Dans la BD test, créer une table sans tuples dont les champs correspondent aux champs de la requête de l exercice précédent. 24. Importer les données du fichier exo4.csv, en le laissant dans son répertoire, dans la table que vous venez de créer. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 25/26 - Bertrand LIAUDET
26 Exercice 5 : passage de InnoDB à MyISAM et retour en InnoDB Méthode de travail Continuer à écrire les scripts dans le fichier de l exercice précédent. Les requêtes 25. Recharger une BD propre : le script corrigé du TP Faites passer dynamiquement (via des ALTER TABLE) la BD empdept créée en InnoDB en MyISAM. Ecrire le script correspondant à toutes les étapes à franchir. 27. Refaire passer la BD en InnoDB et ajouter les clés étrangères. Ecrire le script correspondant. BASES DE DONNÉES - Niveau 1 - MySQL - MariaDB - Cours 05 - page 26/26 - Bertrand LIAUDET
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étailBases 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étailCré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étailLe 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étailPour 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étailLe 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étailTP 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étailPHP 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étail1. 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étailCOMMANDES 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étailBases 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étailI. 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étailSystè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étailWEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :
BES WEBDEVELOPER - SYSTEME DE GESTION DE BASES DE DONNEES - 5XBDR-1 1 WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable : dans le cadre de mise en situations simples et
Plus en détailSQL 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étailLangage 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étailLangage 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étailHistorisation 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étailCREATION 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étailLe 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étailTP3 : 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étailNFA 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étailChapitre 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étailLes 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étailLangage 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étailLe 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étailCours: 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étail1. 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étailIntégrité des données
. Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les
Plus en détailBases de données et sites WEB
Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues
Plus en détailSQL 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étail1/ 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étailIntroduction 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étailAuto-évaluation Oracle: cours de base
Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE
Plus en détailModélisation et Gestion des bases de données avec mysql workbench
Modélisation et Gestion des bases de données avec mysql workbench par novembre 2011 Table des matières 1 Installation 3 1.1 Ecran de chargement 3 1.2 Page d accueil 3 2 Réalisation d une base de données
Plus en détailPlan. 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étailI4 : 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étailORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010
ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle
Plus en détailInté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étailISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL
ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé
Plus en détailInitiation à 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étailApplication 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étailCompé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étailDOSSIER 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étailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage
Plus en détailwww.evogue.fr SUPPORT DE COURS / PHP PARTIE 3
L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 Sommaire Sommaire... 2 Eléments initiaux... 3 Base de données... 3 Tables... 4 membres... 4 commandes... 4 articles... 4 details_commandes...
Plus en détailModule Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)
Plus en détailBible 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étailBases 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étailGestion des transactions et accès concurrents dans les bases de données relationnelles
Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.
Plus en détailPartie 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étailEcole Industrielle et Commerciale de la ville de Namur. Structure et application des bases de données. Y. Mine
Ecole Industrielle et Commerciale de la ville de Namur Structure et application des bases de données 2è graduat en informatique et systèmes * technologie de l information 2008 2009 Y. Mine Table des matières
Plus en détailTechniques de stockage. Techniques de stockage, P. Rigaux p.1/43
Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation
Plus en détailA 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étailIntroduction 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étailOptimisations des SGBDR. Étude de cas : MySQL
Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique
Plus en détailGestion de base de données
Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505
Plus en détailBases 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étailObjectifs du TP : Initiation à Access
Objectifs du TP : Initiation à Access I. Introduction Microsoft Access fait partie de l ensemble Microsoft Office. C est un SGBDR (système de gestion de bases de données relationnelles) présentant une
Plus en détailBases de données élémentaires Maude Manouvrier
Licence MI2E- 1ère année Outils en Informatique Bases de données élémentaires Maude Manouvrier Définitions générales et positionnement du cours dans la formation Vocabulaire relatif aux bases de données
Plus en détailNotes 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étailUML et les Bases de Données
CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..
Plus en détailLicence 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étailGestion 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étailBases de données et sites WEB Licence d informatique LI345
Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet
Plus en détailLes 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étailSupport 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étailPHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Plus en détailFileMaker 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étailDevoir 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étailLes 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étailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions
Plus en détailSGBDR. 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étailMySQL / 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étailStockage 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étailOpenPaaS 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étailIntroduction à MySQL (ou MySQL en 3 heures montre en main)
Contexte MySQL Introduction à MySQL (ou MySQL en 3 heures montre en main) Guillaume Allègre Guillaume.Allegre@silecs.info INP Grenoble - Formation Continue 2012 Contexte MySQL LAMP LAMP - contexte et architecture
Plus en détail14/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étailINSTITUT 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étailLe 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étailPlan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions
Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailPHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214
PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans
Plus en détailECR_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étailOptimisation de MySQL
Olivier DASINI Optimisation de MySQL http://dasini.net/blog/ 1 Votre conférencier Olivier DASINI Formateur certifié MySQL Consultant technologies Open Sources olivier@dasini.net 2 Au programme... Introduction
Plus en détailPratique et administration des systèmes
Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de
Plus en détailPartie II Cours 3 (suite) : Sécurité de bases de données
Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr/sources/ssi.html Plan du cours 1 Introduction
Plus en détailA 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étail1 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étailInstallation d'un serveur FTP géré par une base de données MySQL
BTS INFORMATIQUE DE GESTION Option Administrateur de réseaux développement d applications COMPTE-RENDU D ACTIVITE ACTIVITE N 2 Nom et Prénom : Casanova Grégory Identification (objectif) de l activité Installation
Plus en détailStructure fonctionnelle d un SGBD
Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert
Plus en détail1 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étailPHP 4 PARTIE : BASE DE DONNEES
PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux
Plus en détailMagasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)
Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Définition (G. Gardarin) Entrepôt : ensemble de données historisées variant
Plus en détailDéveloppement de base de données Microsoft SQL Server 2012. Durée : 5 jours Référence : DPSQL12. Contenu
Développement de base de données Microsoft SQL Server 2012 Durée : 5 jours Référence : DPSQL12 Cette formation permet aux participants de maîtriser les fonctionnalités de Microsoft SQL Server 2012 telles
Plus en détailConstruction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création
Construction d un EDD avec SQL 2008 R2 Plan Analyse du DW construit Construction de la base DW dans SQL 2008 Construction des tables de faits et dimensions Injection des données Étapes de l injection des
Plus en détailProcé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étailAccess et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.
Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,
Plus en détail