MySQL - CREATE TABLE 语句



MySQL CREATE TABLE 语句

CREATE TABLE 语句用于在 MySQL 数据库中创建表。在这里,您需要指定表名以及每个列的定义(名称和数据类型)。

语法

以下是如何在 MySQL 中创建表的语法:

CREATE TABLE [IF NOT EXISTS] table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

其中,`table_name` 是您需要创建的表名,`column1`,`column2`,`column3`,……,`columnN` 是列名,`datatype` 是各个列的数据类型名称。

示例

以下查询创建一个名为 Employee 的表:

CREATE TABLE Employee(
   Name VARCHAR(255),
   Salary INT NOT NULL,
   Location VARCHAR(255)
);

如果创建成功,SHOW TABLES 语句会显示当前数据库中的表列表,您可以在其中看到上面创建的表名。

show tables;

输出

以上查询产生以下输出:

Tables_in_sample
employee

IF NOT EXISTS 子句

如果您尝试创建与现有表同名的表,则会生成错误:

CREATE TABLE Employee(Name VARCHAR(255));
ERROR 1050 (42S01): Table 'employee' already exists

如果您在 CREATE 语句中使用 **IF NOT EXISTS** 子句,如下所示,则会创建一个新表;如果已存在具有给定名称的表,则该查询将被忽略。

CREATE TABLE Test(Name VARCHAR(255));

使用现有表创建表

您还可以使用现有表(具有相同的定义)来创建表,以下是执行此操作的语法:

CREATE TABLE [IF NOT EXISTS] table_name {LIKE old_table_name}

其中,`table_name` 是您需要创建的表名,`old_table_name` 是您需要从中创建新表的表名。

示例

以下查询创建名为 sample 的新表,与 Employee 表相同。

CREATE TABLE sample LIKE Employee;

您也可以使用 DESC 语句验证上面创建的表。

DESC sample;

输出

以下是上述程序的输出:

字段 类型 NULL 默认值 额外
姓名 varchar(255) YES NULL
薪水 int NO NULL
地点 varchar(255) YES NULL
广告