![Free-eBooks.net](/resources/img/logo-nfe.png)
![All New Design](/resources/img/allnew.png)
Nous pouvons également créer des tables en utilisant le langage Transact SQL. L’étape de
création des tables est une étape importante de la conception de la base, car les données sont
organisées par rapport aux tables.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options] [select_statement]
Vous pouvez utiliser le mot réservé TEMPORARY lorsque vous créez une table. Une table
temporaire sera immédiatement effacée dès que la connexion se termine. Cela signifie que
vous pouvez utiliser le même nom de table temporaire depuis deux connexions différentes
sans risque de conflit entre les connexions. Vous pouvez aussi utiliser une table temporaire
qui a le même nom qu'une table existante (la table existante est alors cachée tant que dure la
table temporaire). Vous avez juste à avoir le privilège CREATE TEMPORARY TABLES pour
créer des tables temporaires.
Vous pouvez utiliser le mot réservé IF NOT EXISTS, de façon à ce qu'aucune erreur ne soit
affichée si la table que vous essayez de créer existe déjà. Notez qu'il n'y a pas de
comparaisons entre les structures de table lors du test d'existence.
Saisissons notre code SQL suivant :
create table FOURNISSEUR
(
NUMFOU int not null,
NOMFOU varchar(30) not null,
RUEFOU varchar(30) not null,
35
POSFOU varchar(5) not null,
VILFOU varchar(30) not null,
CONFOU varchar(15) not null,
SATISF smallint not null,
primary key (NUMFOU)
);
Pour exécuter votre requête, cliquez sur le bouton « Exécuter » pour lancer la requête..
Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables,
faite par l'intermédiaire de requêtes d'utilisateurs, afin que les données saisies dans la base
soient conformes aux données attendues. Ces contraintes doivent être exprimées dès la
création de la table grâce aux mots clés suivants :
• CONSTRAINT
• DEFAULT
• NOT NULL
• UNIQUE
• CHECK
• CONSTRAINT
• DEFAULT
• NOT NULL
• UNIQUE
• CHECK
Le langage SQL permet de définir une valeur par défaut lorsqu'un champ de la base n'est pas
renseigné grâce à la clause DEFAULT. Cela permet notamment de faciliter la création de
tables, ainsi que de garantir qu'un champ ne sera pas vide.
La clause DEFAULT doit être suivie par la valeur à affecter. Cette valeur peut être un des
types suivants : Constante numérique, constante alphanumérique (chaîne de caractères), le
mot clé USER (nom de l'utilisateur), le mot clé NULL, le mot clé CURRENT_DATE (date de
saisie), le mot clé CURRENT_TIME (heure de saisie), le mot clé CURRENT_TIMESTAMP
(date et heure de saisie).
Le mot clé NOT NULL permet de spécifier qu'un champ doit être saisi, c'est-à-dire que le
SGBD refusera d'insérer des tuples dont un champ comportant la clause NOT NULL n'est pas
renseigné.
Il est possible de faire un test sur un champ grâce à la clause CHECK() comportant une
condition logique portant sur une valeur entre les parenthèses. Si la valeur saisie est
différente de NULL, le SGBD va effectuer un test grâce à la condition logique. Celui-ci peut
éventuellement être une condition avec des ordres SELECT...
La clause UNIQUE permet de vérifier que la valeur saisie pour un champ n'existe pas déjà
dans la table. Cela permet de garantir que toutes les valeurs d'une colonne d'une table seront
différentes.
La clause AUTO_INCREMENT permet de définir l’auto-incrémentation. Si vous spécifiez une
colonne AUTO_INCREMENT dans une table, la table InnoDB va ajouter dans le dictionnaire
de données un compteur spécial appelé le compteur auto-incrément, qui est utilisé pour
36
assigner les nouvelles valeurs de la colonne. Le compteur est stocké uniquement en mémoire,
et non pas sur le disque.
create table AMI
(
IDAMI int not null AUTO_INCREMENT,
NUMEROADH int not null,
NUMEROADHAMI int not null,
DATEAMI TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
primary key (IDAMI)
);