Achref El Mouelhi
elmouelhi.achref@gmail.com
2 Gestion de tables
I c
ELH
U
L MO
f E
c hre
c A
Suppression :
I c
DROP DATABASE nom_base_de_données [IF EXISTS];
EL H
U
L Msi O
IF EXISTS : pour éviter le message d’erreur la BD n’existe pas.
h r e fE
A c
c
Suppression :
I c
DROP DATABASE nom_base_de_données [IF EXISTS];
EL H
U
L Msi O
IF EXISTS : pour éviter le message d’erreur la BD n’existe pas.
h r e fE
A c
c
Pour utiliser la base de données
USE nom_base_de_données;
Suppression :
I c
DROP DATABASE nom_base_de_données [IF EXISTS];
EL H
U
L Msi O
IF EXISTS : pour éviter le message d’erreur la BD n’existe pas.
h r e fE
A c
c
Pour utiliser la base de données
USE nom_base_de_données;
c
MyISAM : rapide mais n’utilise pas les clés-étrangères [moteur par
I
L H
défaut de MySQL pour les versions antérieurs à 5.5]
E
InnoDB : plus lent, mais il utilise lesOU
défaut depuis la version 5.5.]L
M clés-étrangères [moteur par
h r e fE
Memory : utilise
A cla RAM pour le stockage de données
Merge
c
...
c h r e
c A
h r e
cclé primaire composée d’une seule colonne :
A
Dans le cascd’une
CREATE TABLE nom_table (
nom_colonne1 type PRIMARY KEY,
...
nom_colonnen type
);
H & H: Research and Training 5 / 22
Gestion de tables
NOT NULL : pour indiquer que ce champ doit toujours être rempli
(par défaut le null est accepté)
I c
ELH
AUTO INCREMENT : valeur à incrémenter automatiquement,
généralement pour les clés primaires U
L MO
E
DEFAULT : pour indiquer une valeur par défaut si le champ n’est
f
pas rempli
chre
c A
UNIQUE : nous pouvons avoir d’autres colonnes que la clé
primaire dont les valeurs sont uniques (exemple, numéro CNI,
numéro PASSEPORT, numéro carte vitale, numéro carte
étudiant...)
CHECK : préciser une contrainte sur les valeurs acceptées
I c
DROP TABLE nom_table;
ELH
U
L MO
f E
chre
c A
I c
DROP TABLE nom_table;
ELH
U
L MO
f E
hre
Pour supprimer toutes les données d’une table sans supprimer la
table
A c
c
TRUNCATE
TABLE nom_table;
I c
ELH
U
L MO
f E
chre
c A
I c
éeE
Ajouter une colonne à une position donnU
LH
ALTER TABLE nom_table L MO
ADD nom_colonne type
r e E
fpropriété AFTER
c h
c A
nom_colonne_existante;
I c
éeE
Ajouter une colonne à une position donnU
LH
ALTER TABLE nom_table L MO
ADD nom_colonne type
r e E
fpropriété AFTER
c h
c A
nom_colonne_existante;
Supprimer une colonne
ALTER TABLE nom_table
DROP nom_colonne ;
);
En modifiant la table
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte FOREIGN KEY ( I c
nom_colonne) REFERENCES table_dorigine( ELH
U
nom_colonne) ;
L MO
f E
chre
c A
En modifiant la table
ALTER TABLE nom_table
ADD CONSTRAINT nom_contrainte FOREIGN KEY ( I c
nom_colonne) REFERENCES table_dorigine( ELH
U
nom_colonne) ;
L MO
f E
chre
Attention c A
Il faut que les types des attributs référencés soient les mêmes.
Explication
Les tables peuvent avoir plusieurs contraintes I c
H
L é par le SGBD
Eattribu
O
Une contrainte non-nommée aura un nom U
En cas de violation d’uneE L M
d’erreur + le nomh r
de e f contrainte, le SGBD affiche un message
la contrainte violée
A c
c
connait pas le nom de la contrainte, on ne saura pas la
Si on ne
source du problème
AUTO INCREMENT
Par défaut, il commence de 1.
c
On peut toujours changer sa valeur initiale : AUTO INCREMENT
I
= 100
ELH
U
L MO
f E
chre
c A
AUTO INCREMENT
Par défaut, il commence de 1.
c
On peut toujours changer sa valeur initiale : AUTO INCREMENT
I
= 100
ELH
U
L MO
f E
chre
c A
CREATE TABLE etudiant(
num int PRIMARY KEY AUTO_INCREMENT,
age int
);
I c
H
Pour rendre une colonne auto-increment après création de la
EL
table
U
ALTER TABLE etudiant
L MO
f E
hre
MODIFY COLUMN num int AUTO_INCREMENT;
c
c A
Exemple de CHECK
I c
CREATE TABLE etudiant(
ELH
U
num int,
L MO
age int,
f E
CHECK (age < 150)
chre
c A
);
I c
ELH
U
L MO
f E
chre
c A
I c
Afficher le schéma d’une table (la description)
ELH
DESC[RIBE] nom_table; U
L MO
f E
chre
c A
I c
Afficher le schéma d’une table (la description)
ELH
DESC[RIBE] nom_table; U
L MO
f E
ou
A c hre
EXPLAIN
c
nom_table;
I c
Afficher le schéma d’une table (la description)
ELH
DESC[RIBE] nom_table; U
L MO
f E
ou
A c hre
EXPLAIN
c
nom_table;
ou aussi
SHOW COLUMNS FROM nom_table;
H & H: Research and Training 20 / 22
Gestion de tables
I c
ELH
U
L MO
f E
chre
c A
I c
Afficher les détails sur ma base de données
ELH
USE INFORMATION_SCHEMA; U
SELECT TABLE_NAME,
L MO
f E
hre
COLUMN_NAME,
CONSTRAINT_NAME, c
c A
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = "nom_BD"
AND TABLE_NAME = "nom_table"
AND REFERENCED_COLUMN_NAME IS NOT NULL;
H & H: Research and Training 21 / 22
Gestion de tables