Aller au contenu

Structured Query Language/Instruction CREATE TABLE

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Instruction CREATE TABLE
Icône de la faculté
Chapitre no 3
Leçon : Structured Query Language
Chap. préc. :Modélisation
Chap. suiv. :Requêtes SELECT
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Structured Query Language : Instruction CREATE TABLE
Structured Query Language/Instruction CREATE TABLE
 », n'a pu être restituée correctement ci-dessus.

Pour la suite de la leçon, nous aurons besoin de quelques données de tests, il faut donc commencer par créer une table :

CREATE TABLE test (
	id	INTEGER NOT NULL	PRIMARY KEY,
	nom	VARCHAR(30) NOT NULL,
	points	INTEGER,
	quand	TIMESTAMP NOT NULL
);

La requête ci-dessus assez standard, elle est établie par une norme que tous les SGBDR devraient respecter. Si toutefois elle ne s'exécutait pas ou renvoyait une erreur, il faudra rechercher dans la documentation spécifique au SGBDR utilisé.

La clé primaire s'incrémente automatiquement à chaque enregistrement, on peut néanmoins la préciser lors de l'insertion des données :

INSERT INTO test ( id, nom, points, quand ) VALUES
	( 1, 'shepard', 384, '2007-01-01 00:00:00' ),
	( 2, 'shepard', 194, '2007-01-03 12:51:25' ),
	( 3, 'visiteur', 156, '2007-01-03 12:54:19' ),
	( 4, 'shepard', 16, '2007-01-03 13:04:18' ),
	( 5, 'somebody', 958, '2007-01-05 23:16:08' ),
	( 6, 'somebody', 1084, '2007-01-06 02:15:59' ),
	( 7, 'shepard', 453, '2007-01-10 15:32:06' ),
	( 8, 'shepard', 35, '2007-01-10 15:43:15' ),
	( 9, 'visiteur', 125, '2007-01-11 12:13:15' ),
	( 10, 'somebody', 856, '2007-01-11 22:19:23' );
CREATE TABLE client
(Prenom char(50),
Nom char(50),
Adresse char(50),
Ville char(50),
Pays char(25),
DateDeNaissance date);


En mysql :

mysql> use test
Database changed
mysql> CREATE TABLE client
    -> (Prenom char(50),
    -> Nom char(50),
    -> Adresse char(50),
    -> Ville char(50),
    -> Pays char(25),
    -> DateDeNaissance date);
Query OK, 0 rows affected (0.08 sec)

mysql> describe client;
+-----------------+----------+------+-----+---------+-------+
| Field           | Type     | Null | Key | Default | Extra |
+-----------------+----------+------+-----+---------+-------+
| Prenom          | char(50) | YES  |     | NULL    |       |
| Nom             | char(50) | YES  |     | NULL    |       |
| Adresse         | char(50) | YES  |     | NULL    |       |
| Ville           | char(50) | YES  |     | NULL    |       |
| Pays            | char(25) | YES  |     | NULL    |       |
| DateDeNaissance | date     | YES  |     | NULL    |       |
+-----------------+----------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql>

Exemple avec une jointure

[modifier | modifier le wikicode]

On remplace juste VALUES par SELECT :

INSERT INTO test (id, nom, points, quand) SELECT id, nom, points, quand FROM match;