© Éditions Eyrolles
19
Chapitre 1
Définition des données
Ce chapitre décrit les instructions SQL qui constituent l’aspect LDD (langage de définition
des données). À cet effet, nous verrons notamment comment déclarer une table avec ses éventuels index et contraintes.
Tables relationnelles
Une table est créée en SQL par l’instruction CREATE TABLE , modifiée au niveau de sa structure par l’instruction ALTER TABLE et supprimée par la commande DROP TABLE .
Création d’une table ( CREATE TABLE )
Pour pouvoir créer une table dans votre base, il faut que vous ayez reçu le privilège CREATE .
Le mécanisme des privilèges est décrit au chapitre 5.
La syntaxe SQL simplifiée est la suivante :
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [ nomBase .] nomTable
( colonne1 type1
[NOT NULL | NULL] [DEFAULT valeur1 ] [COMMENT 'chaine1' ]
[ , colonne2 type2
[NOT NULL | NULL] [DEFAULT valeur2 ] [COMMENT 'chaine2' ] ]
[CONSTRAINT nomContrainte1 typeContrainte1 ] ... )
[ENGINE= InnoDB | MyISAM | ... ];
q
TEMPORARY : pour créer une table qui n’existera que durant la session courante (la table
sera supprimée à la déconnexion). Deux connexions peuvent ainsi créer deux tables
temporaires de même nom sans risquer de conflit. Il faut posséder le privilège CREATE
TEMPORARY TABLES .
q
IF NOT EXISTS : permet d’éviter qu’une erreur se produise si la table existe déjà (si
c’est le cas, elle n’est aucunement affectée par la tentative de création).
q
nomBase : (jusqu’à 64 caractères permis dans un nom de répertoire ou de fichier sauf
« / », « \ » et « . ») s’il est omis, il sera assimilé à la base connectée. S’il est précisé, il
19
Chapitre 1
Définition des données
Ce chapitre décrit les instructions SQL qui constituent l’aspect LDD (langage de définition
des données). À cet effet, nous verrons notamment comment déclarer une table avec ses éventuels index et contraintes.
Tables relationnelles
Une table est créée en SQL par l’instruction CREATE TABLE , modifiée au niveau de sa structure par l’instruction ALTER TABLE et supprimée par la commande DROP TABLE .
Création d’une table ( CREATE TABLE )
Pour pouvoir créer une table dans votre base, il faut que vous ayez reçu le privilège CREATE .
Le mécanisme des privilèges est décrit au chapitre 5.
La syntaxe SQL simplifiée est la suivante :
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [ nomBase .] nomTable
( colonne1 type1
[NOT NULL | NULL] [DEFAULT valeur1 ] [COMMENT 'chaine1' ]
[ , colonne2 type2
[NOT NULL | NULL] [DEFAULT valeur2 ] [COMMENT 'chaine2' ] ]
[CONSTRAINT nomContrainte1 typeContrainte1 ] ... )
[ENGINE= InnoDB | MyISAM | ... ];
q
TEMPORARY : pour créer une table qui n’existera que durant la session courante (la table
sera supprimée à la déconnexion). Deux connexions peuvent ainsi créer deux tables
temporaires de même nom sans risquer de conflit. Il faut posséder le privilège CREATE
TEMPORARY TABLES .
q
IF NOT EXISTS : permet d’éviter qu’une erreur se produise si la table existe déjà (si
c’est le cas, elle n’est aucunement affectée par la tentative de création).
q
nomBase : (jusqu’à 64 caractères permis dans un nom de répertoire ou de fichier sauf
« / », « \ » et « . ») s’il est omis, il sera assimilé à la base connectée. S’il est précisé, il
