Vous êtes débutant en SQL et vous voulez apprendre à créer un table SQL ? On vous explique tout étape par étape dans ce tuto !
La création de tables dans les bases de données est une compétence très utile, et pas seulement pour les ingénieurs logiciels ou les administrateurs de bases de données. Elle vous permet de concevoir ou de modifier la structure d’une base de données et de stocker des données liées les unes aux autres. Dans cet article, vous apprendrez ce qu’est une table de base de données, qui les crée et comment utiliser la syntaxe de la commande CREATE TABLE.
Sommaire :
Qu’est-ce qu’une table de base de données ?
Une base de données relationnelle est constituée de diverses structures telles que des tables, des vues, des procédures et des déclencheurs. L’élément principal d’une base de données est la table. Il s’agit d’une structure qui stocke réellement les données. Dans la plupart des cas, une base de données contient plus d’une table et les tables sont liées les unes aux autres (c’est-à-dire que les tables stockent des informations liées, comme le nom, la couleur des yeux et la taille d’une personne).
L’image ci-dessous montre un exemple de base de données SQL. Remarquez que cette base de données comporte plusieurs tables. Les lignes indiquent les relations entre les tables :
Comme vous le voyez, il y a beaucoup de tables : Type, Member, Entry, Team, Tournament etc. Dans une base de données SQL, chaque table a un nom et stocke des données dans des lignes et des colonnes. Chaque ligne stocke des détails sur un objet spécifique.
Par exemple, la table Member stocke des informations sur les membres. Chaque ligne correspond à un données spécifique : MemberID, LastName, FirstName, MemberType, Phone…
Les détails de chaque ligne doivent être atomiques (c’est-à-dire qu’ils ne peuvent pas être plus petits ou plus spécifiques), nous devons donc les diviser en colonnes. Chaque colonne stocke un type de donnée.
Le nom de la table doit décrire les données stockées dans cette table. Vous devez également définir le ou les types de données utilisés dans les colonnes de la table lorsque vous la créez. (Vous devez disposer d’une autorisation CREATE TABLE pour faire tout cela).
Qui crée des tables SQL ?
Vous savez ce qu’est une table, mais cela soulève une autre question : qui crée les tables dans une base de données ? Plusieurs groupes différents de personnes peuvent créer des tables de base de données.
Le premier groupe est constitué des concepteurs de la base de données. Ils définissent la structure de la base de données : ce que les tables contiennent, les relations entre les tables, la manière dont les tables stockent les informations. Ils conçoivent de nouvelles bases de données pour des applications ou des services spécifiques.
Les administrateurs de bases de données (DBA) s’occupent des serveurs de bases de données. Ils entretiennent, créent et modifient les bases de données. La création de nouvelles tables fait partie de leur travail.
Les ingénieurs logiciels et les développeurs d’applications créent également des tables de base de données. Lorsqu’ils créent une nouvelle application, ils doivent souvent concevoir une base de données pour celle-ci.
Les analystes de données constituent un autre groupe qui crée parfois des tableaux. Ils utilisent des bases de données pour stocker les données qu’ils analysent et peuvent utiliser des tableaux pour conserver les résultats de leur analyse.
Bien entendu, la conception de bases de données et la création de tableaux peuvent être utiles à tous ceux qui travaillent avec des données ou utilisent des bases de données.
Comment créer une table SQL ?
La création d’une table dans une base de données est très simple. Il suffit d’utiliser la syntaxe SQL standard de la commande CREATE TABLE :
CREATE TABLE nom_table
(
column1 data_type,
column2 data_type,
…
) ;
Voyons un peu ce qui se passe ici. D’abord, vous mettez le mot-clé CREATE TABLE, suivi du nom de la table. Ce nom ne doit pas être un mot clé SQL (comme CREATE, LIKE, ou NULL). Il doit être unique dans la base de données – si une table est nommée personne, les autres tables de la même base de données ne peuvent pas porter ce nom – et décrire les données stockées dans la table.
Après le nom, vous ajoutez une paire de parenthèses. À l’intérieur des parenthèses, vous listez les noms des colonnes avec leurs types de données. Un type de données définit le type de valeurs (nombres, texte, dates, heures, etc.) que vous pouvez stocker dans une colonne. Les types de données les plus courants sont les suivants :
- INTEGER/INT stocke des nombres entiers comme -2567, 0 , 1 et 67.
- VARCHAR stocke les données textuelles. Vous pouvez spécifier le nombre maximum de caractères comme ceci : VARCHAR(n). Par exemple, varchar(4) peut stocker les textes « Lisa », « Os » ou « Gary ».
- CHAR est similaire, mais au lieu de définir la longueur maximale, vous définissez la longueur absolue. Par exemple, CHAR(4) enregistrera ‘Os’ sous la forme ‘Os ‘. Notez les deux espaces supplémentaires, qui portent la longueur à 4.
- FLOAT stocke les nombres à virgule flottante, tels que -25,865, 42,6 et 35,0.
- DECIMAL est similaire à float dans la mesure où il stocke des nombres à virgule. Cependant, vous pouvez indiquer le nombre total maximal de chiffres (p) et le nombre de chiffres après la virgule (s) comme suit : DECIMAL(p,s). En d’autres termes, decimal(4,2) peut stocker 12,56, 1,56, 70. Contrairement à FLOAT, DECIMAL permet des calculs précis. Utilisez-le pour stocker des valeurs monétaires.
- TIME stocke les données de temps, par exemple ’12:34:50′.
- DATE stocke les données de date, par exemple ‘2020-09-09’.
- DATETIME stocke les données de date et d’heure dans un seul champ, par exemple ‘2022-04-30 12:34:50’.
Cette syntaxe de base CREATE TABLE est la même pour la plupart des moteurs SQL ; vous pouvez l’utiliser dans Oracle, SQL Server, MySQL ou PostgreSQL.
Création d’une table de base de données SQL simple
Créons une table appelée client qui stocke des informations sur les clients d’une entreprise. Chaque ligne contient des données sur un client spécifique. La table doit comporter les colonnes ID, last_name, first_name et registration_date. Les colonnes définies dans la table stockent des données atomiques sur chaque client : son numéro d’identification, son nom, son prénom et la date à laquelle il s’est enregistré comme client.
Voici la commande que nous utiliserions :
CREATE TABLE customer
(
ID int,
nom_famille varchar(80),
prenom varchar(80),
date_d'enregistrement date
) ;
Nous commençons par le mot-clé CREATE TABLE, après quoi nous donnons le nom de la nouvelle table : customer. Ensuite, entre parenthèses, nous donnons les noms des colonnes et les types de données. La première colonne est ID, qui stocke des valeurs entières comme 1,2,3. Les deuxième et troisième colonnes, last_name et first_name, sont des chaînes de caractères ; nous utiliserons varchar(80) pour elles. N’oubliez pas que la valeur entre parenthèses indique le nombre maximal de caractères de la chaîne. Enfin, la colonne registration_date stocke la date à laquelle la personne a été enregistrée.
Les types de données contrôlent le type d’informations qui peuvent être saisies dans une colonne ; vous ne pouvez pas saisir de lettres ou de symboles dans une colonne INT comme ID. Pour en savoir plus sur les types de données, consultez les cours Les bases de la création de tables en SQL et Les types de données en SQL.
Définition de colonnes sans valeurs vides ou répétées
L’instruction CREATE TABLE présentée dans la dernière section permet aux utilisateurs d’insérer des valeurs non uniques ou des valeurs vides (NULL) dans un champ. Par exemple, vous pouvez avoir la même valeur d’identification pour plusieurs clients. Nous pouvons modifier ce comportement en créant une table avec des contraintes : nous ajouterons des contraintes à ID pour empêcher les NULL et les valeurs non uniques ; nous ajouterons également des contraintes aux colonnes first_name et last_name pour empêcher les NULL dans ces colonnes. Jetez un coup d’oeil :
CREATE TABLE customer
(
ID int NOT NULL UNIQUE,
last_name varchar(80) NOT NULL,
first_name varchar(80) NOT NULL,
date_d'enregistrement date
) ;
SQL offre le mot-clé NOT NULL, qui, lorsqu’il est ajouté à la définition de la colonne, n’autorise pas les valeurs vides (NULL) lors de l’insertion ou de la modification d’une ligne. Dans notre exemple, nous ne pouvons pas omettre (ou insérer un NULL) dans les colonnes first_name, last_name ou ID. Elles doivent avoir une valeur.
Un autre mot-clé précieux est UNIQUE. En ajoutant ce mot-clé, vous pouvez vous assurer que toutes les valeurs de cette colonne sont différentes dans chaque ligne. Dans notre exemple, la colonne ID stocke des valeurs uniques qui identifient chaque client. Vous pouvez en savoir plus sur les différents types de contraintes dans le cours Contraintes SQL.
Créer une table SQL à partir de données stockées dans une autre table
On peut créer une nouvelle table sans définir de colonnes : le processus se base sur les données et les colonnes d’autres tables.
Utilisez cette méthode si vous souhaitez créer des tables et insérer des données stockées dans des colonnes spécifiques d’une autre table. Voici la syntaxe :
CREATE TABLE nom_nouvelle_table
SELECT col1, col2, …
FROM nom_table_existant ;
Tout d’abord, nous fournissons le mot-clé CREATE TABLE et le nom de la nouvelle table. Ensuite, nous utilisons la commande SELECT. Celle-ci vous permet de spécifier les colonnes et la ou les tables à partir desquelles vous copiez les données vers la nouvelle table. Les noms et les types de données de ces colonnes seront automatiquement définis dans la nouvelle table.
Ci-dessous, nous créons la table Member_old en utilisant les colonnes MemberID, FirstName, LastName et Type de la table Member :
CREATE TABLE Member_old
SELECT MemberID, FirstName, LastName, Type
FROM Member ;
Remarquez que la nouvelle table ne stocke pas toutes les colonnes de la table Member.
En savoir plus sur les structures de bases de données
Si vous êtes intéressé par la construction de structures de bases de données telles que les tables, vous pouvez utiliser de nombreux tutoriels SQL en ligne. Sur SQLfr.com, vous trouverez des articles tels que créer une base de données SQL, restaurer une base de données SQL, importer une base de données SQL ou encore créer une procédure stockée SQL.