MySQL Cours TP 05
23 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
23 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

INSIA Bases de données ING 1 MySQL – Cours et TP 05 Création des tables et des tuples LA BIBLE : MySQL 5.0 Reference Manual http://dev.mysql.com/doc/refman/5.0/fr/index.html Site officiel MySql : http://www-fr.mysql.com/ Documentation MySQL : http://mysql.org/ La Base de Données Open Source la plus Populaire au Monde 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 3 2 Contrainte d’intégrité référentielle : CIR 8 3 Modification des tables 12 4 Suppression des tables 13 5. Récupération du code sous mysql : show create table 14 6. Moteur MyISAM et moteur InnoDB 15 SQL : CREATION DE LA BASE DE DONNEES. LES TUPLES : LE DML 17 1. Création des tuples 17 2. Modification et suppression des tuples 18 3. Suppression des tuples 19 4. Remplacement des tuples 19 TP N°5 : CMS DES TUPLES ET DES TABLES 21 INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 05 - page 1/23 - Bertrand LIAUDET Présentation 21 Exercice 1 : charger les tables de la base de données 21 Exercice 2 : modification et création de la BD 22 Exercice 3 : création de la BD via un SELECT et des ALTER 23 Exercice 4 : passage de InnoDB à MyISAM et retour en InnoDB 23 Première édition : septembre 2007 Deuxième édition : septembre 2008 INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 05 - page 2/23 - Bertrand LIAUDET SQL : CREATION DE LA BASE DE DONNEES. LES TABLES : LE DDL ...

Informations

Publié par
Nombre de lectures 152
Langue Français

Extrait


INSIA
Bases de données
ING 1
MySQL – Cours et TP 05

Création des tables et des tuples

LA BIBLE : MySQL 5.0 Reference Manual
http://dev.mysql.com/doc/refman/5.0/fr/index.html

Site officiel MySql : http://www-fr.mysql.com/
Documentation MySQL : http://mysql.org/
La Base de Données Open Source la plus Populaire au Monde
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 3
2 Contrainte d’intégrité référentielle : CIR 8
3 Modification des tables 12
4 Suppression des tables 13
5. Récupération du code sous mysql : show create table 14
6. Moteur MyISAM et moteur InnoDB 15
SQL : CREATION DE LA BASE DE DONNEES. LES TUPLES : LE DML 17
1. Création des tuples 17
2. Modification et suppression des tuples 18
3. Suppression des tuples 19
4. Remplacement des tuples 19
TP N°5 : CMS DES TUPLES ET DES TABLES 21
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 05 - page 1/23 - Bertrand LIAUDET Présentation 21
Exercice 1 : charger les tables de la base de données 21
Exercice 2 : modification et création de la BD 22
Exercice 3 : création de la BD via un SELECT et des ALTER 23
Exercice 4 : passage de InnoDB à MyISAM et retour en InnoDB 23

Première édition : septembre 2007
Deuxième édition : septembre 2008

INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 05 - page 2/23 - Bertrand LIAUDET 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
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
http://dev.mysql.com/doc/refman/5.0/fr/create-table.html
Syntaxe MySQL
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 05 - page 3/23 - Bertrand LIAUDET 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.
Exemple

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)
);


Les types
http://dev.mysql.com/doc/refman/5.0/fr/column-types.html

Voici quelques types de données de mysql :

char(n) : chaîne de caractères de longueur fixe (1<=n<=255).
varchar(n) : chaîne de caractère de longueur variable (A<n<2000).
integer: entier (ou int)
float(nb chiffre max, nb chiffre après la virgule) : nombre fixe ou flottant
date : date
time : heure
datetime : date et heure
year : année
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 05 - page 4/23 - Bertrand LIAUDET enum : 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 ».

La connaissance des types est spécifique au SGBD sur lequel on travaille.

Autres types MySQL :
tinyint, smallint, mediumint, bigint, double precision, numeric, decimal, blob, text, tinyblob,
tinytext, mediumblob, mediumtext, longtext, longblob, set.
Les contraintes d’intégrité
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.
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;
INSIA - BASES DE DONNÉES – ING 1 – Piscine Cours 05 - page 5/23 - Bertrand LIAUDET
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','1981-11-17',5000,NULL,10,NULL);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER','1981-05-1',2850,NULL,30,7839);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER','1981-06-9',2450,NULL,10,;
INSERT INTO EMP VALUES (7566,'JONES','MANAGER','1981-04-2',2975,NULL,20,7839);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN','1981-09-28',1250,1400,30,7698);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN','1981-02-20',1600,300,30,7698);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN','1981-09-8',1500,0,30,7698);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK','1981-12-3',950,NULL,30,7698);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN','1981-02-22',1250,500,30,7698);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST','1981-12-3',3000,NULL,20,7566);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK','1980-12-17',

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents