MySQL从入门到高级 --- 4.约束

第四章:

4.MySQL约束

约束(constraint)实际上是表中数据的限制条件。

作用:保证表中的记录完整性和有效性。

分类

  • 主键约束:primary key

  • 自增长约束:auto_increment

  • 非空约束:not null

  • 唯一性约束:unique

  • 默认约束:default

  • 零填充约束:zerofill

  • 外键约束:foreign key

4.1 主键约束

关键字:primary key

  • 它的值能唯一地标识表中的每一行,方便在RDBMS在尽快找到某一行

  • 主键约束列不允许重复,也不允许出现空值

  • 每个表最多只允许一个主键

  • 创建主键约束时,系统默认会在所在列和列组合上建立对应的唯一索引

操作

  • 添加单列主键

  • 添加多列联合主键

  • 删除主键

4.1.1 添加单列主键

语法1:create table 表名(

                .... 

                <字段名><数据类型> primary key

                ....

);
在这里插入图片描述
在这里插入图片描述

语法2:create table 表名(

                ....

               [constraint <约束名>] primary key [字段名]

);
在这里插入图片描述
在这里插入图片描述

  • 主键约束的列非空且唯一
4.1.2 添加多列主键(联合主键)
  • 一张表只可有一个主键,联合主键也是一个主键

  • 主键由多个字段组成时,不可直接在字段名后声明主键约束

语法:create table 表名(

              ....

              primary key (字段1,字段2, 字段3,.....)

);
在这里插入图片描述
在这里插入图片描述

  • 联合主键的各列,每一列都不可为空
4.1.3 通过修改表结构添加主键

语法:create table 表名(

            ....

);

alter table <表名> add primary key (字段列表);
在这里插入图片描述

在这里插入图片描述

4.1.4 删除主键约束

语法:alter table <数据表名> drop primary key;

在这里插入图片描述

4.1.5 自增长约束

语法:字段名 数据类型 auto_increment

在这里插入图片描述

特点
  • auto_increment初始值为1,每新增一条记录,字段值自动加1

  • 一个表中只有一个字段有auto_increment约束,且该字段需有唯一索引,以避免序号重复

  • auto_increment约束的字段必须具备NOT NULL属性

  • auto_increment约束的字段只能是整型类型

  • auto_increment约束的字段最大值受该字段的数据类型约束,若达到上限,auto_increment就会失效

4.1.6 指定自增字段初始值 - 创建表时指定

在这里插入图片描述

4.1.7 指定自增字段初始值 - 创建表之后

在这里插入图片描述

4.1.8 delete与truncate删除自增列的区别
  • delete数据之后自动增长从断点开始

  • truncate数据之后自动增长从默认起始值开始

在这里插入图片描述

4.2 非空约束
  • MySQL非空约束指定字段的值不可为空。

语法1:<字段名><数据类型> not null;

语法2:alter table 表名 modify 字段 类型 not null;

在这里插入图片描述

4.2.1 删除非空约束

在这里插入图片描述

4.3 唯一约束
  • 唯一约束指所有记录中的字段值不可重复出现

语法1:<字段名><数据类型> unique

语法2:alter table 表名 add constraint 约束名 unique(列);

在这里插入图片描述

4.3.1 删除唯一约束

语法:alter table <表名> drop index <唯一约束名>;

在这里插入图片描述

4.4 默认约束
  • 指定某列的默认值

语法1:<字段名> <数据类型> default <默认值>;

语法2:alter table 表名 modify 列名 类型 default 默认值;

在这里插入图片描述

4.4.1 删除默认约束

语法:alter table <表名> change column <字段名> <类型> default null;

在这里插入图片描述

4.5 零填充约束
  • 插入数据时,若该字段值的长度小于定义长度时,会在该值前补上0

  • zerofill默认为int(10)

  • 使用zerofill时,默认会加unsigned属性,使用该属性后,数值范围是原来的2倍

在这里插入图片描述

  • 79
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值