2020-05-16 2.6 约束

2.6 约束

概念:对表中数据进行限定

分类:

非空约束:not null

唯一约束:unique

主键约束:primary key

外键约束:foreign key

2.6.1 非空约束 not null

限定字段值不能为空

创建表时,添加非空约束

createtable表名(字段名 字段类型notnull, 字段名 字段类型 [约束], ...);

创建表后,添加非空约束

altertable表名 modify 字段名 字段类型notnull;

注:已存在空值的字段不能被设置成非空的

删除非空约束(设置字段允许有空值)

altertable表名 modify 字段名 字段类型;

2.6.2 唯一约束 unique

限定某一字段的字段值不能有重复

创建表时,添加唯一约束

createtable表名(字段名 字段类型 unique, 字段名 字段类型 [约束], ...);

创建表后,添加唯一约束

altertable表名 modify 字段名 字段类型 unique;

删除唯一约束(设置字段允许有重复值)

altertable表名dropindex 字段名;

注:

唯一约束的值可以是空值,可以存在多个空值,但是只能有唯一的“null”值

一个字段可以同时设置成非空唯一,非空和唯一约束的顺序是任意的

2.6.3 主键约束 primary key

特点:

1.  非空且唯一

一张表只能有一个字段是主键

主键是表中记录的唯一标识

创建表时,添加主键约束

createtable表名(字段名 字段类型 primary key, 字段名 字段类型 [约束], ...);

createtable表名(字段名 字段类型 [约束], 字段名 字段类型 [约束], ... , primary key(主键字段));

创建表后,添加主键约束

altertable表名 modify 字段名 字段类型 primary key;

删除主键

altertable表名dropprimary key;

注意:删除主键约束后,主键仍有非空约束

主键自增长:

概念:如果某个字段是数值类型的主键字段,可以使用 auto_increment 来实现主键自增长

注:

1.  自增长的主键必须是数值类型的(整数或者小数)

当添加记录时,不为该字段赋值或者赋值为null,该字段就会自增长

第一条自增长的字段值是 1

从已存在的最大值开始 + 1

从已存在的最大值是小数时,自增长的值是向上取整

只有主键可以自增长

创建表时,添加主键自增长

createtable表名(字段名 字段类型 primary key auto_increment, 字段名 字段类型 [约束], ...);

创建表后,添加主键自增长

altertable表名 modify 主键字段 字段类型 auto_increment;

创建表后,添加主键约束的同时,设置自增长

altertable表名 modify 字段名 字段类型 primary key auto_increment

删除自增长

altertable表名 modify 字段名 字段类型;

三,多表

3.1 表与表之间的关系

一对一

例如:人和身份证、公司与注册地址

一对多(多对一)

例如:部门和员工、商品和分类

多对多

例如:学生和课程、订单和商品

3.2 多表关系的实现

一对一

在任何一方添加外键指向另一方法的主键

一对多

在多的一方建立外键,指向一的一方的主键

多对多

需要借助第三张中间表。中间表至少要包含两个字段,这两个字段都是外键,分别指向两张表的主键。

你可能感兴趣的:(2020-05-16 2.6 约束)