Création significative de tableaux

Dans les conférences précédentes, nous nous sommes déjà un peu familiarisés avec les requêtes pour créer des tables, il est maintenant temps d'approfondir cela.

La création d'une table est très similaire à la déclaration d'une classe en Java et a ce modèle :

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

Par exemple, écrivons une requête qui crée une table avec des utilisateurs :

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Cela semble très simple, car beaucoup de nuances ne sont pas indiquées ici.

Tout d'abord, le tableau peut avoir des paramètres supplémentaires.

Et deuxièmement, chaque colonne peut avoir des paramètres supplémentaires.

Et nous allons commencer par les paramètres de création des colonnes.

Clés dans le tableau

Outre le nom et le type de données, une colonne de tableau peut également avoir les paramètres suivants :

CLÉ PRIMAIRE La colonne est la clé de la table
CLÉ UNIQUE Toutes les valeurs de colonne doivent être uniques.
Valeur par défaut Valeur par défaut
NON NUL L'interdiction d'accepter la valeur NULL
INCRÉMENTATION AUTOMATIQUE SQL Server incrémentera automatiquement la valeur lorsqu'un nouvel enregistrement est ajouté à la table
GÉNÉRÉ Champ calculé
STOCKAGE Où stocker les données : sur disque ou en mémoire
COMMENTAIRE Commentaire de colonne, par exemple titre dans la langue locale

Ci-dessous, nous examinerons certains d'entre eux.

Tout d'abord, c'est PRIMARY KEY .

Le plus souvent, il s'agit d'une colonne séparée avec le nom id et le type INT. Il s'agit de la soi-disant "clé principale" de la table, et toutes ses lignes ont des valeurs uniques pour cette clé. Il est principalement utilisé pour que d'autres tables puissent faire référence aux enregistrements de notre table et pointer vers son enregistrement spécifique.

La seconde est UNIQUE KEY .

À certains égards, il est similaire à PRIMARY KEY, bien que sa charge sémantique soit complètement différente. Si une colonne a l'attribut UNIQUE, toutes les valeurs de cette colonne doivent être uniques. Un bon exemple de la différence entre UNIQUE KEY et PRIMARY KEY est la liste des personnes au bureau des passeports.

Le numéro fiscal est une CLÉ PRIMAIRE, il est utilisé pour faciliter la référence à la bonne personne à partir d'autres tables.

Le numéro de passeport est une CLE UNIQUE. Deux personnes ne peuvent pas avoir le même numéro de passeport. Cependant, le numéro de passeport peut être modifié. Par exemple, lors du changement de nom de famille. Et le numéro fiscal restera avec vous pour toujours. C'est la tâche principale de PRIMARY KEY. Un exemple de requête spécifiant la PRIMARY KEY :

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Paramètres de type de données

Il y a des attributs moins importants mais utiles.

Valeur PAR DÉFAUT

Lors de l'insertion de données (ajout d'une nouvelle ligne) dans un tableau, vous pouvez omettre les valeurs de certaines colonnes si elles ont une valeur par défaut. Dans ce cas, le serveur SQL définira simplement la valeur de la colonne elle-même.

À partir de la version 8 de MySQL, vous pouvez spécifier une expression en tant que valeur.

NON NUL

Si vous spécifiez l'attribut NOT NULL pour une colonne lors de la création d'une table, SQL Server s'assurera qu'il est impossible de stocker une valeur NULL dans cette colonne. Par défaut, n'importe quelle colonne peut avoir une valeur NULL, même une colonne INT. Ce qui n'est pas évident pour un programmeur Java.

INCRÉMENTATION AUTOMATIQUE

Il est généralement utilisé pour les identifiants de colonne. Lorsque vous ajoutez une nouvelle ligne à une table, vous voulez vraiment que le serveur SQL attribue un identifiant à cette entrée. Qui mieux que le serveur sait combien de lignes il a dans le tableau. Surtout si les demandes de différents clients vont au même serveur SQL.

C'est exactement ce que fait l'attribut AUTO_INCREMENT. Lors de l'ajout d'une nouvelle ligne, nous ne transmettons simplement rien comme identifiant, et le serveur SQL spécifiera l'identifiant correct pour cet enregistrement : il prendra simplement l'identifiant du dernier enregistrement existant et l'augmentera de 1. Cet attribut ne peut être utilisé avec les types entiers et réels. Et, bien sûr, faisons un exemple de création d'une telle table :

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);