Structured Query Language/Instruction CREATE TABLE
Apparence
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' );
Autre exemple
[modifier | modifier le wikicode]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;