Création des tables en SQL

Le SQL (Structured Query Langage) est un langage de requêtes qui nous permet de faire des interrogations (les requêtes) sur un SGBD (Système de Gestion de Base de Données).

Nous venons de faire une petite introduction sur les bases de données, et maintenant, nous allons voir en détail comment utiliser le SQL pour developper cette base de données.

Tout le code donné dans ce tutorial ne peut être interprété que par votre SGBD. Ce code ne pourra pas être inclus dans vos pages PHP.
En effet, vous devrez utiliser ce code dans votre PHPMyAdmin par exemple.

Reprenons l'exemple précédent, et on observe comment faire pour créer nos deux tables.

Créons tout d'abord la table liste_proprietaire :

table_liste_proprietaire.sql
CREATE TABLE liste_proprietaire (
numero INT(5) NOT NULL,
nom VARCHAR(20) NOT NULL,
telephone VARCHAR(14) NOT NULL
) TYPE=MyISAM;


Nous venons ici de créer notre table liste_proprietaire, table contenant trois attributs :
  • numero qui correspond à un nombre entier (INT) de 5 chiffre
  • nom qui correspond à une suite de caractères (VARCHAR) de 20 caractères
  • telephone qui correspond à une suite de caractères (VARCHAR) de 14 caractères


Nous utilisons VARCHAR pour des chaînes de caractères pouvant mêler du texte et des nombres. Toutefois, à la fin de ce tutorial, nous allons passer en revue tous les types d'attributs possibles.

De plus, pour chacun de ces attributs, nous imposons que pour chaque tuple donné, aucun attribut ne peut être vide (on a mis un NOT NULL pour tous les attributs).
Enfin, le type MyISAM précise que nous avons affaire à une base de données de type MySQL.


Créons ensuite la table liste_disque :

table_liste_disque.sql
CREATE TABLE liste_disque (
numero INT(5) NOT NULL,
auteur VARCHAR(50) NOT NULL,
titre VARCHAR(50) NOT NULL
) TYPE=MyISAM;


Vu que les attributs ressemblent beaucoup à la première table, nous ne ferons aucun commentaire sur cette table.


En revanche, nous aurions pu utiliser l'extra AUTO_INCREMENT pour les attributs numero de la table liste_proprietaire. En effet, si on imagine la page WEB nous permettant d'insérer des membres dans la liste des propriétaires, on s'imagine mal qu'il faille préciser a chaque fois le numéro du nouveau propriétaire.
Afin de palier à ce léger désagrément, nous allons applique un extra à l'attribut de la première table, nous permettant de faire en fait une incrémentation automatique à chaque insertion d'un nouveau propriétaire.

On aura alors la table liste_proprietaire définit comme ceci :

table liste_proprietaire.sql
CREATE TABLE liste_proprietaire (
numero INT(5) NOT NULL AUTO_INCREMENT,
nom VARCHAR(20) NOT NULL,
telephone VARCHAR(14) NOT NULL,
PRIMARY KEY (numero)
) TYPE=MyISAM;




Remarquons alors la ligne PRIMARY KEY (numero) qui nous indique que la clé primaire de notre table est l'attribut numero. Ceci veut dire que l'on est capable d'identifier n'importe quel tuple de la table rien qu'à partir de l'attribut numero.


Passons maintenant en revue l'intégralité des types possibles pour les attributs d'une table SQL. On a alors :
  • TINYINT : entier de 0 à 255 (non signé)
  • SMALLINT : entier de 0 à 65 535 (non signé)
  • MEDIUMINT : entier de 0 à 16 777 215 (non signé)
  • INT : entier de 0 à 4 294 967 295 (non signé)
  • BIGINT : entier de 0 à 18 446 744 073 709 551 615 (non signé)
  • DECIMAL : un nombre à virgule flottante (soit un nombre réel)
  • DATE : une date allant du 1000-01-01 au 9999-12-31
  • DATETIME : une date comportant une heure allant du 1000-01-01 00:00:00 au 9999-12-31 23:59:59
  • TIMESTAMP : une date comportant une heure exprimée en secondes depuis le 1er janvier 1970 jusqu'à l'instant présent
  • TIME : une mesure de l'heure qui va de -838:59:59 à 838:59:59
  • YEAR : une année qui va de 1901 à 2155
  • CHAR : une chaîne de caractères de taille fixée (de 1 à 255 caractères)
  • VARCHAR : une chaîne de caractères de taille variable (de 1 à 255 caractères)
  • TINYTEXT ou TINYBLOB : un objet BLOB ou TEXT ayant une longueur maximale de 255 caractères
  • TEXT ou BLOB : un objet BLOB ou TEXT ayant une longueur maximale de 65 535 caractères
  • MEDIUMTEXT ou MEDIUMBLOB : un objet BLOB ou TEXT ayant une longueur maximale de 16 777 215 caractères
  • LONGTEXT ou LONGBLOB : un objet BLOB ou TEXT ayant une longueur maximale de 4 294 967 295 caractères


Attention !!!

Il est tout de fois possible de créer des tables directement à partir d'une page en PHP. Dans ce cas, pour créer les tables, il n'est absolument pas nécessaire de passer par votre PHPMyAdmin, chose que je déconseille fortement pour les débutants.
En clair, au début, utiliser PHPMyAdmin pour créer vos tables, puis, une fois que vous aurez bien compris le principe, vous pourrez alors créer vos tables directement à partir de vos scripts (ce qui est tout de même déconseillé).
LoadingChargement en cours