TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
故如虹,知恩;故如月,知明
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
119篇
.NET MVC
11篇
英语
3篇
随笔
86篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
151篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
MySQL常用约束,MySQL外键约束
2292
人阅读
2021/10/16 17:20
总访问:
3919595
评论:
0
收藏:
0
手机
分类:
数据库
## MySQL常用约束 **什么是约束:** 约束是作用于表中字段的规则,用于限制存储在表中的数据 **约束的作用:** 保证数据库中数据的正确性,有效性,完整性 **主键约束,非空约束,检查约束等,如下的创表约束** ``` create table employee ( id int PRIMARY key auto_increment, name varchar(10) not null UNIQUE, age int CHECK(age>0 && age<=120), status char(1) default(1) check(status=1 or status=0), -- 1表示审核通过,0表示审核失败 sex char(1) ) ``` **添加测试数据** ``` -- 能正确添加数据库的 insert into employee(name,age,status,sex) values('诸葛亮',27,1,'男') insert into employee(name,age,status,sex) values('赵云',37,0,'男') insert into employee(name,age,status,sex) values('黄忠',57,1,'男') -- 违反唯一约束 insert into employee(name,age,status,sex) values('黄忠',57,1,'男') -- 违反为空约束 insert into employee(name,age,status,sex) values(null,57,1,'男') -- 违反检查约束 insert into employee(name,age,status,sex) values('黄租',800,1,'男') insert into employee(name,age,status,sex) values('黄租',80,1,'男') -- 违反检查约束,审核状态必须是0或者 insert into employee(name,age,status,sex) values('黄月英',18,2,'女') ``` ## mysql外键约束 **添加外键约束语法** ``` alter table employee add CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id); ``` **删除外键约束:** ``` alter table users drop FOREIGN key fk_dpet_user_id ``` **外键约束级联删除** ``` alter table employee add CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id) ``` 核心代码: on update CASCADE on delete CASCADE; **实例** 用户表与班级表 ``` -- 创建一个班级表 create table UserClass ( id int PRIMARY key auto_increment, ClassName varchar(32) not null, Position varchar(32) , slogan varchar(32) -- 班级口号 ) insert UserClass(ClassName,Position) values('计网1212','3206') insert UserClass(ClassName,Position) values('计网1213','3211') insert UserClass(ClassName,Position) values('计网1211','3366') ``` 用户表 ``` create table employee ( id int PRIMARY key auto_increment, name varchar(10) not null UNIQUE, age int CHECK(age>0 && age<=120), status char(1) default(1) check(status=1 or status=0), -- 1表示审核通过,0表示审核失败 sex char(1), classId int -- 创建表的时候可以增加外键约束 增加一点 ) ``` 添加与删除外键 ``` -- 在表创建之后增加外键约束 alter table employee add CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id); -- 删除外键 alter table employee drop FOREIGN key fk_UserClass_Employee_Id ``` 创建表的时候添加外键: ``` create table employee ( id int PRIMARY key auto_increment, name varchar(10) not null UNIQUE, age int CHECK(age>0 && age<=120), status char(1) default(1) check(status=1 or status=0), -- 1表示审核通过,0表示审核失败 sex char(1), classId int, CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id) -- classId int REFERENCES UserClass(id) -- 创建表的时候可以增加外键约束 增加一点 ) ```
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}