添加约束(八)

添加约束(八)

一、添加与主键约束(Primary Key)

1.1 单一主键

使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。

employee_id first_name last_name department_id
1 John Doe 101
2 Jane Smith 102
3 Bob Johnson 101

这里面Id为单一主键不能重复但是后面的可以重复。

1.2 联合主键

使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。

order_id product_id quantity
101 1 5
101 2 3
102 1 2
103 2 4

这里order_idproduct_id 组合形成联合主键。添加的数据不能和这个组合重复。

1.3 使用DDL语句添加主键约束

ALTER TABLE 表名 ADD PRIMARY KEY(列名)

如果添加联合主键,在列名后加逗号和其他名字。

1.4 主键自增长

MySQL 中的自动增长类型要求:

一个表中只能有一个列为自动增长。

自动增长的列的类型必须是整数类型。

自动增长只能添加到具备主键约束与唯一性约束的列上。

删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然 后在删除约束。

alter table 表名 modify 主键 类型 auto_increment;

不是所有关系型数据库都有自增长能力,Oracle是没有的。

1.5 使用Navicat添加主键约束

我们首先选中设计表,然后取消空值,添加主键,并且设计自动增长。
添加约束(八)_第1张图片

二、删除主键

2.1 使用DDL语句删除主键

ALTER TABLE 表名 DROP PRIMARY KEY;

注意:删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除 主键。

三、添加与删除外键约束

3.1 使用DDL语句添加外键约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名

FOREIGN KEY( 列 名 ) REFERENCES 参照的表名

(参照的列名);

3.2 使用Navicat添加外键约束

添加约束(八)_第2张图片

3.3 使用DDL语句删除外键约束。

ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

四、添加与唯一性约束(Unique)

4.1 使用DDL语句添加唯一性约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名

UNIQUE(列名);

4.2 使用Navicat添加唯一性约束

添加约束(八)_第3张图片

4.3 使用DDL语句删除唯一性约束。

ALTER TABLE 表名 DROP KEY 约束名;

五、非空约束(Not Null)

5.1 使用DDL语句添加非空约束。

ALTER TABLE 表名 MODIFY 列名 类型 NOT

NULL;

5.2 使用Navicat添加非空约束。

添加约束(八)_第4张图片

5.3 使用DDL语句删除非空约束。

ALTER TABLE 表名 MODIFY 列名 类型 NULL;

你可能感兴趣的:(mysql,数据库,mysql)