文章目录
- 第四章:
- 4.MySQL约束
- 4.1 主键约束
- 4.1.1 添加单列主键
- 4.1.2 添加多列主键(联合主键)
- 4.1.3 通过修改表结构添加主键
- 4.1.4 删除主键约束
- 4.1.5 自增长约束
- 特点
 
- 4.1.6 指定自增字段初始值 - 创建表时指定
- 4.1.7 指定自增字段初始值 - 创建表之后
- 4.1.8 delete与truncate删除自增列的区别
 
- 4.2 非空约束
- 4.2.1 删除非空约束
 
- 4.3 唯一约束
- 4.3.1 删除唯一约束
 
- 4.4 默认约束
- 4.4.1 删除默认约束
 
- 4.5 零填充约束
 
 
 
第四章:
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倍 
