Partie I
SQL de base
20
© Éditions Eyrolles
désigne soit la base connectée soit une autre base (dans ce cas, il faut que l’utilisateur
courant ait le droit de créér une table dans l’autre base). Nous aborderons ces points dans
le chapitre Contrôle des données et nous considérerons jusque-là que nous travaillons dans
la base courante (ce sera votre configuration la plupart du temps).
q
nomTable : mêmes limitations que pour le nom de la base.
q
colonnei typei : nom d’une colonne (mêmes caractéristiques que pour les noms des
tables) et son type ( INTEGER , CHAR , DATE …). Nous verrons quels types sont disponibles
sous MySQL. La directive DEFAULT fixe une valeur par défaut. La directive NOT NULL
interdit que la valeur de la colonne soit nulle.
NULL représente une valeur qu’on peut considérer comme non disponible, non affectée, inconnue ou inapplicable. Elle est différente d’un espace pour un caractère ou d’un zéro pour un
nombre.
q
COMMENT : (jusqu’à 60 caractères) permet de commenter une colonne. Ce texte sera
ensuite automatiquement affiché à l’aide des commandes SHOW CREATE TABLE et SHOW
FULL COLUMNS (voir le chapitre 5).
q
nomContraintei typeContraintei : nom de la contrainte et son type (clé primaire,
clé étrangère, etc.). Nous allons détailler dans le paragraphe suivant les différentes
contraintes possibles.
q
ENGINE : définit le type de table (par défaut InnoDB , bien adapté à la programmation de
transactions et adopté dans cet ouvrage). MyISAM correspond au type par défaut des
versions 3, parfaitement robuste, mais ne supportant pas pour l’heure l’intégrité référentielle. D’autres types existent, citons MEMORY pour les tables temporaires, ARCHIVE , etc.
q
« ; » : symbole par défaut qui termine une instruction MySQL en mode ligne de
commande (en l’absence d’un autre délimiteur).
Délimiteurs
En mode ligne de commande, il est possible (par la directive delimiter ) de choisir le
symbole qui terminera chaque instruction. Dans l’exemple suivant on choisit le dollar ; au
cours de l’ouvrage nous resterons avec le symbole par défaut de MySQL à savoir « ; ».
delimiter $
CREATE TABLE Test (t CHAR(8))$
Sensibilité à la casse
Alors que MySQL est sensible par défaut à la casse (au niveau des noms de base et de table)
dans la plupart des distributions Unix, il ne l’est pas pour Windows ! En revanche, concernant
les noms de colonnes, index, alias de colonnes, déclencheurs et procédures cataloguées,
Précédent

- 42/418

Suivant