表(Table)

创建、修改以及删除表结构

基础知识

创建表

基本语法:

CREATE [ TEMPORARY ] TABLE [ IF NOT EXISTS ] <表名> 
[( <字段名> <数据类型> [ 完整性约束条件 ] [,…] )] 
[ 表的选项 ];

示例:

-- 创建表,如果它还没存在
CREATE TABLE IF NOT EXISTS Employees(
  E_ID VARCHAR(8) PRIMARY KEY COMMENT '员工编号',
  E_NAME VARCHAR(8) NOT NULL COMMENT '员工姓名',
  SEX VARCHAR(2) DEFAULT '' COMMENT '性别',
  PROFESSIONAL VARCHAR(6) COMMENT '职称',
  D_ID VARCHAR(5) NOT NULL COMMENT '与Departments表关联',
  CONSTRAINT fk_did FOREIGN KEY(D_ID) REFERENCES Departments(D_ID)
);

修改表

基本语法:

示例:

删除表

基本语法:

示例:

PRIMARY KEY 约束

PRIMARY KEY 指代主键,主键的值必须唯一且不可为NULL

创建方法

创建 PRIMARY KEY 约束有两种方法:

  1. 直接在每条字段定义之后声明。这种方式不能指定约束的名称,不能创建联合主键约束(即多个字段共同构成主键)。

  2. 使用单独的子句声明。这种方式可以指定约束的姓名,允许创建联合主键。

基本语法:

示例:

删除方法

基本语法:

示例:

FOREIGN KEY 约束

FOREIGN KEY 指代外键,外键的值必须是另一个表中某个字段已有的值,这表示一种参照关系(如“选课表”的学号需要参照“学生表”的学号)。与主键不同,外键的值可以为NULL

创建方法

基本语法:

示例:

删除方法

基本语法:

示例:

UNIQUE 约束

UNIQUE 指代唯一值。有唯一值约束的字段不允许出现重复值。

创建方法

创建 UNIQUE 约束有两种方法:

  1. 直接在每条字段定义之后声明。这种方式不能指定约束的名称。

  2. 使用单独的子句声明。这种方式可以指定约束的姓名。

基本语法:

示例:

删除方法

基本语法:

示例:

NOT NULL 约束

NOT NULL 指代非空。有非空约束的字段的值不允许为 NULL

创建方法

直接在每条字段定义之后声明。

基本语法:

示例:

修改和删除方法

基本语法:

示例:

事实上,创建表时如果字段不声明为 NOT NULL (不可空),则会默认声明为 NULL (即可空)。

DEFAULT 约束

DEFAULT 指代默认值。在插入数据时,如果没有向某个字段指定值,那么 MySQL 就会把这个字段的默认值作为新记录的值。

若字段未声明 DEFAULT 约束,则表示默认值为 NULL

创建方法

直接在每条字段定义之后声明。

基本语法:

示例:

修改和删除方法

基本语法:

示例:

CHECK 约束

在 SQL 中, CHECK 指代检查。检查约束用于审核字段的值是否正确。

circle-info

很遗憾,直至 8.1 版本,MySQL仍 不支持 CHECK 约束。

请考虑使用 触发器 替代 CHECK 约束。

创建方法(不存在的)

circle-exclamation

基本语法:

示例:

最后更新于