欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mysql--约束

程序员文章站 2022-04-28 09:47:23
一、 约束的含义和分类 1.1约束的含义:是一种限制,用于限制表中的数据,保证数据的完整性和一致性。 1.2约束的分类: ①not null:非空,保证字段不能为空。违反约束不会报错,但是会有警告,适用于说有的类型。 ②default:默认约束,当数据插入的时候,指定的字段如果没有数据插入,即插入默 ......

一、 约束的含义和分类
1.1约束的含义:是一种限制,用于限制表中的数据,保证数据的完整性和一致性。
1.2约束的分类:
①not null:非空,保证字段不能为空。违反约束不会报错,但是会有警告,适用于说有的类型。
②default:默认约束,当数据插入的时候,指定的字段如果没有数据插入,即插入默认值。
③primary key:主键,保证字段具有唯一性,并且非空,等价于唯一+非空的组合。
④unique:唯一,用于保证字段的唯一性,可以为空。
⑤check:检查约束,mysql不支持。
⑥foreign key:外键约束,用于约束两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表的添加的外键约束,用于引用主表中某列的值。
1.3添加约束
列级约束:语法上六大约束都支持,但是外键约束没有效果。【mysql不支持检查约束】
表级约束:除了非空和默认,其他都支持。
添加时机:创建表时、修改表时。
二、 唯一约束和主键约束比较、外键解析
1.主键唯一键的比较
Mysql--约束
2.外键解析
①在从表设置外键关系
②从表的外键列的类型和主表的关联列类型要求一致或者兼容
③主表的关联列必须是一个key,主键或者是唯一键
④插入数据的时候,先插入主表,然后插入从表
⑤删除数据的时候,先删除从表,再删除主表
三、 创建表时添加约束
语法概述:
Create table 表名(
字段名 字段类型 列级约束,
字段名 字段类型,
表级约束
)
1.添加列级约束
①在字段类型之后直接添加,可以有多个直接加空格隔开
②支持:默认、主键、唯一、非空
Mysql--约束
Mysql--约束
列级约束不能将外键约束添加成功。
2.添加表级约束
【constraint 约束名】 添加约束名字,是可选的。
Mysql--约束
Mysql--约束
Mysql--约束
①主键的命名失效,主键名字只能是primary
②外键添加成功,别名也成功添加
③check 检查约束,mysql不支持
3.约束的通用写法
Mysql--约束
Mysql--约束
四、修改表时添加约束
1.添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束
2.添加表级约束a
alter table 表名 add [constraint 约束名] 约束类型(字段名) [外键的引用]
Mysql--约束
Mysql--约束
Mysql--约束
[1]添加非空约束
alter table userchen modify column userchen varchar(20) not null;
Mysql--约束
[2]添加默认约束
Mysql--约束
[3]添加主键
Mysql--约束
[4]添加唯一约束
Mysql--约束
[5]添加外键【表级约束】
Mysql--约束
五、删除约束
[1]删除非空约束
Mysql--约束
[2]删除默认约束
Mysql--约束
[3]删除主键
Mysql--约束
[4]删除唯一键
Mysql--约束
[5]删除外键
Mysql--约束
六、级联删除
Mysql--约束
Mysql--约束
情况一、当删除父类数据时,对应从表的数据也将被删除
Mysql--约束
Mysql--约束
情况二、级联删除置null
Mysql--约束
Mysql--约束