English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Création de table SQL CREATE TABLE

Dans ce tutoriel, vous apprendrez à créer des tables à l'intérieur de la base de données en utilisant SQL.

établir des tableaux

Dans le chapitre précédent, nous avons appris à créer une base de données sur le serveur de base de données. Il est maintenant temps de créer des tables dans la base de données, qui stockeront réellement des données. Une table de base de données est simplement une organisation d'informations en lignes et en colonnes.

La phrase CREATE TABLE SQL est utilisée pour créer des tables.

syntaxe

La syntaxe de base pour créer une table peut être présentée de la manière suivante :

CREATE TABLE nom_tableau (colonne1_nom type_de_données contraintes,colonne2_nom type_de_données contraintes,....
);

Pour mieux comprendre cette syntaxe, laissons-nousdémonstrationCréer une table dans la base de données. Tapez les instructions suivantes dans l'outil en ligne de commande MySQL, puis appuyez sur Entrée :

-- syntaxe de la base de données MySQL
CREATE TABLE persons (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    birth_date DATE,
    phone VARCHAR(15) NOT NULL UNIQUE
);
-- syntaxe de la base de données SQL Server
CREATE TABLE persons (
    id INT NOT NULL PRIMARY KEY IDENTITY(1,1),
    name VARCHAR(50) NOT NULL,
    birth_date DATE,
    phone VARCHAR(15) NOT NULL UNIQUE
);

l'instruction ci-dessus pour créer un nompersonnedu tableau, ce tableau aidnombirth_datephone四列。注意,每个列名后都有一个数据类型声明;此声明指定列将存储什么类型的数据,整数,字符串,日期等。

某些数据类型可以使用length参数声明,该参数指示可以在列中存储多少个字符。例如,VARCHAR(50)最多可容纳50个字符。

注意:列的数据类型可能会因数据库系统而异。例如,MySQL和SQL Server支持INT整数值的数据类型,而Oracle数据库支持NUMBER数据类型。

下表总结了MySQL支持的最常用的数据类型。

数据类型描述
INT存储介于-2147483648至2147483647之间的数值
DECIMAL以精确的精度存储十进制值。
CHAR存储最大长度为255个字符的定长字符串。
VARCHAR存储可变长度的字符串,最大长度为65,535个字符。
TEXT存储最大大小为65,535个字符的字符串。
DATE以YYYY-MM-DD格式存储日期值。
DATETIME以YYYY-MM-DD HH:MM:SS格式存储组合的日期/时间值。
TIMESTAMP存储时间戳值。TIMESTAMP值存储为自Unix纪元('1970-01-01 00:00:01自UTC)以来的秒数。

请查看参考部分SQL DB数据类型,以获取有关流行的RDBMS(如MySQL,SQL Server等)中可用的所有数据类型的详细信息。

在前面的语句中为表列设置了一些其他约束(也称为修饰符)。约束定义关于列中允许的值的规则。

  • NOT NULL约束确保该字段不能接受一个NULL值。

  • PRIMARY KEY约束标记对应的字段作为表的主键。

  • AUTO_INCREMENT属性是标准SQL的MySQL扩展,它告诉MySQL如果未指定该值,则通过将前一个值增加1来自动为该字段分配一个值。仅适用于数字字段。

  • UNIQUE约束确保一列的每一行必须具有唯一值。

在下一章中,我们将学习有关SQL约束的更多信息。

注意: Microsoft SQL Server使用该IDENTITY属性来执行自动增量功能。默认值为IDENTITY(1,1),即种子或起始值为1,增量值为1。

Avis :您可以执行命令以查看MySQL和Oracle数据库中任何表的列信息或任何表的结构,而在SQL Server中(将table_name替换为实际的表名)。DESC table_name;EXEC sp_columns table_name;

Création de table si elle n'existe pas

Si vous essayez de créer une table qui existe déjà dans la base de données, vous recevrez un message d'erreur. Pour éviter cela, vous pouvez utiliser l'option IF NOT EXISTS en MySQL, comme suit :

CREATE TABLE IF NOT EXISTS persons (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    birth_date DATE,
    phone VARCHAR(15) NOT NULL UNIQUE
);

Avis :Pour voir la liste des tables du bases de données sélectionnées, vous pouvez exécuter l'instruction SHOW TABLES; dans la ligne de commande MySQL.