MySQL 使用表来存储和管理数据,本文将通过示例介绍如何创建表。在这里,我们将同时使用命令提示符和 Workbench 来创建表语句。
表是行和列的组合。我们必须使用 CREATE TABLE 语句来创建一个新表。
MySQL 创建表语法
创建表的语法如下所示。
CREATE TABLE 'TableName'
(
Column_Name1 Data_Type(Size) [NULL | NOT NULL],
Column_Name2 Data_Type(Size) [NULL | NOT NULL],
…
Column_NameN Data_Type(Size) [NULL | NOT NULL]
);
让我们看一下 MySQL 创建表语法中的各个项目
- 表名:请提供一个唯一的名称。如果名称已存在,则会报错。
- 列名:需要唯一或不同的列名。
- 数据类型:为每个单独的列提供一个有效的数据类型。例如,Int、Varchar 和 float。
- 大小:请在此处提供一个有效的整数
- NULL 或 NOT NULL:如果选择了 NULL 选项,则该列同时接受普通值和 NULL 值。否则,将引发错误,提示列不能为空。
使用 MySQL 命令提示符创建表
在开始在 Company Database 中创建表之前,让我们先看看数据库中已有的表列表。要获取此信息,请使用以下命令。
SHOW TABLES;
下面屏幕截图的第一部分显示了 MySQL 数据库中可用的表。如您所见,company 数据库没有任何现有表。为演示起见,我们使用 MySQL create table 语句构建了一个名为 sales 的新表。
CREATE TABLE sales ( SaleID INT NOT NULL AUTO_INCREMENT, Product_Name VARCHAR(100) NULL, Product_Description TEXT );
从下面屏幕截图的第二部分可以看出,命令已成功执行。现在,让我们看看 company 数据库中可用的表列表。请注意列表中的 sales 名称。

MySQL 创建表 Workbench 示例
这一次,我们将使用下面代码在 Company Database 中创建 Customers 表。
USE company;
CREATE TABLE customers (
CustID INT NOT NULL AUTO_INCREMENT,
First_Name VARCHAR(50) NULL,
Last_Name VARCHAR(50) NULL,
Education VARCHAR(50) NULL,
Profession VARCHAR(50) NULL,
Yearly_Income INT NULL,
Sales FLOAT(10, 2) NULL,
PRIMARY KEY (CustID)
)
注意:在开始创建新表之前,最好检查它是否存在。

在上面的代码中,我们在新创建的 MySQL 表中声明了 7 列
- 我们的第一列是 CustID,数据类型为 Integer,不允许 NULL 值。我们还将此列定义为自动递增。(这是可选的,如果您愿意,可以删除 Auto_Increment 部分)
- FirstName、LastName、Education 和 Profession 列属于 Varchar 数据类型,并且不允许 NULL 值。我们还为其分配了大小 50。这意味着这些列最多可接受 50 个字符。
- 第六列是 Yearly Income,数据类型为 INT,允许 NULL 值。
- Sales 列属于 float 数据类型,允许 NULL 值。
从下面的屏幕截图可以看出,命令已成功执行。现在,您可以在 Tables 文件夹下看到新创建的表。如果您没有找到新创建的表,请点击 SCHEMAS 旁边的刷新按钮。
如何查找表定义?
如果您想查找现有定义,请右键单击新创建的表名,然后从上下文菜单中选择 Table Inspector 选项。

选择该选项后,将打开一个新选项卡,其中包含所有信息。请转到 DDL 选项卡以查看定义。

如何检查表名是否存在?
让我们看看使用现有名称在 MySQL 中创建表会发生什么。从下面的屏幕截图可以看出,它会引发一个错误,提示:TableSales 已存在。
USE company;
CREATE TABLE sales
(
Id INT NOT NULL,
Name VARCHAR(50) NULL,
Country VARCHAR(50)
)
注意:最好检查表名是否已存在。
如果您有权限查看数据库中可用表的列表,则使用 SHOW TABLES 命令。如果不是这种情况,请使用以下选项。
如果 company 数据库中不存在 sales 表,则以下语句仅执行 Create Table 语句。请使用 create table 命令尝试不同的名称。
USE company;
CREATE TABLE IF NOT EXISTS sales
(
Id INT NOT NULL,
Name VARCHAR(50) NULL,
Country VARCHAR(50)
);

使用 Workbench GUI 创建 MySQL 表
要在 workbench 中创建表,请在 SCHEMAS 中,展开您想使用的数据库文件夹。右键单击该文件夹并打开上下文菜单。请选择 CreateTable… 选项。

这将打开以下窗口来设计表。请将 TableName 从 new_table 更改为 Employees。

您可以使用 Collation 下拉框将 Schema Default collation 更改为 latin、big5、hp8 等。接下来,您可以使用 Engine 下拉列表将 Default server Engine 更改为 CSV、Spider、Aria 等。
目前,我们保留所有默认配置。接下来,单击箭头以获得更多设计空间。

单击 Company Name 下方的空白行,系统将自动为您创建一个新列。我将其重命名为 Empid,并根据您的需求更改数据类型。还可以使用复选框来选择 Not. Null、Primary、Unique key 选项等。

从下面的屏幕截图可以看出,有四个列。单击 apply 按钮来创建 employees 表。

提示:请使用 Column Names 旁边的复选框或存储部分下的复选框将列设置为 Primary、Unique、Not Null、Binary、Unsigned、Auto Incremental、Zero Fill 和 Generated。
单击 Apply 按钮以在 MySQL 中创建表。在下一个屏幕上,请点击 Finish 按钮。

单击 Finish 按钮后,表的创建将完成。从下面的屏幕截图可以看出,employees 表已创建。您可以使用 INSERT Statement 将数据插入到其中。
