应无所住,而生其心
排名
1
文章
872
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

MySQL常用约束,MySQL外键约束

4760人阅读 2021/10/16 17:20 总访问:5413991 评论:0 收藏:0 手机
分类: 数据库

MySQL常用约束

什么是约束:

约束是作用于表中字段的规则,用于限制存储在表中的数据

约束的作用:

保证数据库中数据的正确性,有效性,完整性

主键约束,非空约束,检查约束等,如下的创表约束

  1. create table employee
  2. (
  3. id int PRIMARY key auto_increment,
  4. name varchar(10) not null UNIQUE,
  5. age int CHECK(age>0 && age<=120),
  6. status char(1) default(1) check(status=1 or status=0), -- 1表示审核通过,0表示审核失败
  7. sex char(1)
  8. )

添加测试数据

  1. -- 能正确添加数据库的
  2. insert into employee(name,age,status,sex) values('诸葛亮',27,1,'男')
  3. insert into employee(name,age,status,sex) values('赵云',37,0,'男')
  4. insert into employee(name,age,status,sex) values('黄忠',57,1,'男')
  5. -- 违反唯一约束
  6. insert into employee(name,age,status,sex) values('黄忠',57,1,'男')
  7. -- 违反为空约束
  8. insert into employee(name,age,status,sex) values(null,57,1,'男')
  9. -- 违反检查约束
  10. insert into employee(name,age,status,sex) values('黄租',800,1,'男')
  11. insert into employee(name,age,status,sex) values('黄租',80,1,'男')
  12. -- 违反检查约束,审核状态必须是0或者
  13. insert into employee(name,age,status,sex) values('黄月英',18,2,'女')

mysql外键约束

添加外键约束语法

  1. alter table employee add CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id);

删除外键约束:

  1. alter table users drop FOREIGN key fk_dpet_user_id

外键约束级联删除

  1. alter table employee add CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id)

核心代码:
on update CASCADE on delete CASCADE;

实例
用户表与班级表

  1. -- 创建一个班级表
  2. create table UserClass
  3. (
  4. id int PRIMARY key auto_increment,
  5. ClassName varchar(32) not null,
  6. Position varchar(32) ,
  7. slogan varchar(32) -- 班级口号
  8. )
  9. insert UserClass(ClassName,Position) values('计网1212','3206')
  10. insert UserClass(ClassName,Position) values('计网1213','3211')
  11. insert UserClass(ClassName,Position) values('计网1211','3366')

用户表

  1. create table employee
  2. (
  3. id int PRIMARY key auto_increment,
  4. name varchar(10) not null UNIQUE,
  5. age int CHECK(age>0 && age<=120),
  6. status char(1) default(1) check(status=1 or status=0), -- 1表示审核通过,0表示审核失败
  7. sex char(1),
  8. classId int -- 创建表的时候可以增加外键约束 增加一点
  9. )

添加与删除外键

  1. -- 在表创建之后增加外键约束
  2. alter table employee add CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id);
  3. -- 删除外键
  4. alter table employee drop FOREIGN key fk_UserClass_Employee_Id

创建表的时候添加外键:

  1. create table employee
  2. (
  3. id int PRIMARY key auto_increment,
  4. name varchar(10) not null UNIQUE,
  5. age int CHECK(age>0 && age<=120),
  6. status char(1) default(1) check(status=1 or status=0), -- 1表示审核通过,0表示审核失败
  7. sex char(1),
  8. classId int,
  9. CONSTRAINT fk_UserClass_Employee_Id FOREIGN key (classId) REFERENCES UserClass(id)
  10. -- classId int REFERENCES UserClass(id) -- 创建表的时候可以增加外键约束 增加一点
  11. )

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价