Créer une base de données et des tables MySQL en invite de commande

Lancer et se connecter sur le serveur SQL

Je me place dans le dossier contenant l’exécutable mysql.exe, je clique droit dans le dossier tout en maintenant la touche « majuscule » enfoncée, je choisis « Ouvrir une fenêtre de commande ici » dans le menu contextuel.

Dans la fenêtre cmd.exe, je tape :

mysql -u root -p
Enter password: ************

Pour les besoins de cet article, je me connecte sur mon serveur MySQL/MariaDB avec l’utilisateur (-u, user) root puis je tape mon mot de passe -p, password) quand le serveur m’y invite.

(MariaDB est un système de gestion de base de données édité sous licence GPL. Il s’agit d’un fork communautaire de MySQL)

_images/db1.png

Je suis maintenant à la racine de mon serveur de bases de données. Le chevron « > » attend mes commandes.

Nous allons créer une base de données de magasin :

Nom de la base de données : magasin

  • 1ère table : clients
  • 2ème table : marchandises
  • 3ème table : ventes

Création de la base de donnée « magasin » :

MariaDB [(none)]> CREATE DATABASE magasin;
Query OK, 1 row affected (0.04 sec)

MariaDB [(none)]>

CREATE DATABASE magasin;

Par convention, le langage SQL s’écrit en majuscules pour le dissocier des noms de bases ou de tables. Une instruction se termine toujours par un point-virgule pour être exécutée.

Le serveur me dit que ma requête est ok ! Query OK

Nous allons maintenant charger et utiliser la nouvelle base de données :

MariaDB [(none)]> USE magasin;
Database changed
MariaDB [magasin]>

La base de données est bien chargée grâce au code USE magasin;

Le serveur nous en donne la preuve MariaDB [magasin]>

Création de la première table « clients »:

MariaDB [magasin]> CREATE TABLE clients(
        -> num_client INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        -> nom VARCHAR(20),
        -> prenom VARCHAR(20)
        -> )
        -> ;
Query OK, 0 rows affected (0.11 sec)

MariaDB [magasin]>

Nous avons trois attributs de données relatives à nos clients : num_client, nom, prenom.

Vous avez remarqué que je remplace les espaces vides par un undescore et que je n’utilise pas d’accents… Les serveurs de base de données n’aiment pas ça !

Chaque attribut a ses propres caractéristiques :

  • num_client (numéro du client) est un nombre entier (INT, integer), il ne peut pas être nul ou sans valeur (NOT NULL), il est auto incrémentable (1 suivi de 2 suivi de 3… De manière automatique ! Et le plus important, il s’agit d’une clé primaire ! Chaque table doit avoir un attribut réservé à la clé primaire, l’identifiant principal de chaque donnée présente dans la table.
  • nom est une chaîne de caractères d’un poids de 20 octets
  • prenom est une chaîne de caractères d’un poids de 20 octets

Les attributs et leurs caractéristiques sont entre parenthèses après l’instruction CREATE TABLE clients. Ce sont les arguments de cette instruction. Le point-virgule termine la commande et permet de l’exécuter.

Nous allons vérifier si notre table « clients » a bien été créée dans la base de données « magasin »:

SHOW tables;

MariaDB [magasin]> SHOW TABLES;
+-------------------+
| Tables_in_magasin |
+-------------------+
| clients           |
+-------------------+
1 row in set (0.10 sec)

MariaDB [magasin]>

Voilà qui est fait ! Maintenant, vérifions les attributs de données que nous avons créés :

DESCRIBE clients;

MariaDB [magasin]> DESCRIBE clients;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| num_client | int(11)     | NO   | PRI | NULL    | auto_increment |
| nom        | varchar(20) | YES  |     | NULL    |                |
| prenom     | varchar(20) | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
3 rows in set (0.12 sec)

MariaDB [magasin]>

Voilà le récapitulatif de nos attributs et leurs caractéristiques. Remarquez que la valeur par défaut de num_client est NULL puisque notre serveur attribue de lui-même un numéro à chaque client en commençant par 1 pour le premier.

Création de la deuxième table « marchandises » :

MariaDB [magasin]> CREATE TABLE marchandises(
        -> num_marchandise INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        -> nom_marchandise VARCHAR(20),
        -> prix_marchandise INT NOT NULL,
        -> description_marchandise TEXT
        -> );
Query OK, 0 rows affected (0.05 sec)

MariaDB [magasin]>

L’attribut « description_marchandise » est de type TEXT, ce qui permet d’écrire un texte long.

Voilà qui est fait !

MariaDB [magasin]> SHOW TABLES;
+-------------------+
| Tables_in_magasin |
+-------------------+
| clients           |
| marchandises      |
+-------------------+
2 rows in set (0.00 sec)

MariaDB [magasin]>

Création de la troisième table « ventes » :

MariaDB [magasin]> CREATE TABLE ventes(
        -> num_vente INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        -> date_vente DATE,
        -> marchandise_num INT,
        -> client_num INT,
        -> FOREIGN KEY (marchandise_num) REFERENCES marchandises (num_marchandise),
        -> FOREIGN KEY (client_num) REFERENCES clients (num_client)
        -> );
Query OK, 0 rows affected (0.16 sec)

MariaDB [magasin]>

Voilà, comme il s’agit de bases de données relationnelles, il faut créer des relations entre les tables. Ce qui est la fonction essentielle des clés étrangères.

FOREIGN KEY (marchandise_num) REFERENCES marchandises (num_marchandise)

une clé étrangère « marchandise_num » qui est la référence de la clé primaire « num_marchandise » de la table « marchandises »

MariaDB [magasin]> SHOW TABLES;
+-------------------+
| Tables_in_magasin |
+-------------------+
| clients           |
| marchandises      |
| ventes            |
+-------------------+
3 rows in set (0.00 sec)

MariaDB [magasin]>

Votre base de donnée est terminée. Elle contient 3 tables. Il suffit maintenant d’y inclure des données.

Pour finir, nous quittons proprement notre serveur de bases de données avec la commande « exit ».

MariaDB [magasin]> exit
Bye

C:\Program Files\MariaDB 10.0\bin>