Le langage SQL offre des commandes de définition, de modification et de destruction de structures. Ces commandes permettent de créer une nouvelle base de données ou une nouvelle table, de supprimer une table existante et d'ajouter une colonne à une table existante. L'ensemble de ces commandes forme un sous-langage de SQL dénommé SQL-DDL pour Data Definition Language (Langage de définition de données).
Pour créer la base de données Librairie en SQL, il suffit d'entrer la ligne de code suivante:
Requête SQL permettant de créer la base de donnée librairie.
La clause CREATE DATASE permet de créer une nouvelle base de données appelée librairie. Bien que SQL soit insensible à la casse, il est recommandé d'entrer les commandes SQL en majuscules et le nom des bases de données, des tables et des attributs en minuscules. Ceci permet en effet de distinguer les commandes SQL des bases, tables ou attributs avec lesquels on travaille. En outre, évitez d'utiliser des caractères spéciaux dans le nom donné à vos bases de données, vos tables et leurs colonnes car ils ne sont pas pris en charge par le SGBD à l'exception du tiret bas. Remplacez ainsi les éventuels espaces situés dans le nom de vos tables par des tirets bas ( _ ).
La clause USE permet de spécifier au SGBD sur quelle base de données l'utilisateur va travailler par la suite.
Notez que les commentaires sont précédés d'un dièse et que chaque commande SQL se termine par un point-virgule.
La clause CREATE TABLE permet de définir une nouvelle table dans la base de données en précisant le nom et le type de chacune des colonnes de la table ainsi que les contraintes qu'elles doivent respecter:
Requête SQL permettant de créer la table client
Rappelons que MySQL supporte des données de différents types résumés dans les tableaux suivants:
Complétez les informations manquantes du tableau suivant en indiquant notamment pour chaque nom de colonne le type de données le plus approprié:
|
Les contraintes de champs, permettant de spécifier différentes contraintes d'intégrité portant sur un seul attribut, sont généralement placées après la déclaration du type de l'attribut. Les différentes variantes possibles sont les suivantes:
Certaines contraintes, comme les contraintes d'intégrité référentielle, peuvent s'appliquer à plusieurs attributs. Dans pareils cas, ces contraintes sont déclarées après la définition des champs:
Requête SQL permettant de créer la table commande
Toute table peut être supprimée à l'aide de la clause DROP TABLE:
Requête SQL permettant de supprimer la table client
Si, au moment de la suppression, la table contenait des enregistrements, ceux-ci sont préalablement supprimées, opération qui est soumise aux contraintes référentielles qui concernent la table.
La clause INSERT INTO ... VALUES ... permet d'insérer de nouveaux enregistrements dans une table. La liste des champs doit contenir les noms des champs auxquels une valeur sera affectée dans la liste des valeurs. Si la clé primaire a été déclarée de type AUTO_INCREMENT, il ne faut pas la spécifier lors de l'insertion d'un nouvel enregistrement: c'est le SGBD qui s'en chargera automatiquement. Les champs dans la liste des champs doit correspondre exactement et dans l'ordre aux valeurs spécifiées dans la liste des valeurs:
Insertion d'un enregistrement dans la table client
Notons qu'il est possible de modifier l'ordre des champs déclarés avant la clause VALUES. Dans ce cas, les valeurs des champs de l'enregistrement à insérer doivent être exactement dans le même ordre que les noms des champs. De plus, il est possible de ne pas référencer tous les champs: dans ce cas, les champs non référencés prendront la valeur NULL ou la valeur par défaut si elle a été spécifiée lors de la définition de la table par la contrainte de champ DEFAULT.
Insertion d'un enregistrement dans la table client avec ordre des champs modifié
Finalement, remarquons qu'il est possible d'insérer plusieurs enregistrements dans une même table à l'aide d'une seule requête. A ce dessein, il suffit de mettre les valeurs des champs de chaque nouvel enregistrement entre parenthèse et de séparer chaque enregistrement du suivant à l'aide d'une virgule.
Insertion multiple dans la table client
En vous basant sur le schéma relationnel ci-dessous de la base de données Librairie, créez les tables client, commande, ligneCommande et produit à l'aide des requêtes adéquates SQL entrées dans la console de phpMyAdmin. Attribuez à chaque table ses attributs avec leur type et déclarez correctement les clés primaires et étrangères de chaque table.
Schéma relationnel de la base de donnée Librairie
Une fois les tables construites, peuplez-les en y insérant les données provenant des fichiers Client.csv, Commande.csv, LigneCommande.csv et Produit.csv.
|