完整性约束
时间:2019-10-22
本文章向大家介绍完整性约束,主要包括完整性约束使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
完整性约束foreign key
即:多张进行关联的表,其中有关联的表删除操作的时候,其他的表会自动进行删除相关联的记录
这里有一个坑:select 查看出来的表的默认排序顺序是随机排序,并不是升序,最好查询的时候加上order
select * from t1 order by id desc; #desc 为降序 asc为升序
1.多对一 :多的那一个表要设置foreign key,一对一与多对一是一样的
#下面的代码是一个类型为 多对一 的一个小练习
create database one;
use one;
# 创建一个部门表
create table del(id int primary key auto_increment,name char(30));
insert into del(name) values('财务部'),('IT部'),('爱拼才会赢部');
#创建一个员工表进行关联
create table staff(id int primary key auto_increment,name char(10) not null,
del_id not null unique,
constraint fk_del foreign key(del_id)
references del(id)
on delete cascade
on update cascade);
#插入信息
insert into staff(name,del_id) values('哪吒',3),('李云龙',3),('铁蛋',2);
2.多对多:新建立一个表将要联系起来的表的id进行加入即可
#多对多练习 有两张表是多对多形式的就需要再新建一张表进行联合起来
create database book1;
use book1;
#创建一个作者表
create table author(id int primary key auto_increment,name char(30) not null );
insert into author(name) values('郭德纲'),
('灰太狼'),
('猪扒皮'),
('瞎扯淡');
#创建一个书籍表
create table book(id int primary key auto_increment,name char(30) not null);
insert into book(name) values('九阳神功',1),
('九阴真经',2),
('九阴白骨爪',2),
('独孤九剑',3),
('降龙十巴掌',2),
('葵花宝典',3);
#创建一个联合表
create table t1(id int primary key auto_increment,
author_id int not null,book_id int not null,
constraint fk_book foreign key(author_id) references author(id)
on delete cascade # 这里是同步删除
on update cascade, # 同步更新
constraint fk_author foreign key(book_id) references book(id)
on delete cascade
on update cascade);
insert into t1(author_id,book_id) values(1,1),
(1,2),
(1,3),
(1,4),
(1,5),
(1,6),
(2,1),
(2,6),
(3,4),
(3,5),
(3,6),
(4,1)
;
select * from author order by id asc;
select * from book order by id asc;
select * from t1 order by id asc;
原文地址:https://www.cnblogs.com/whileke/p/11718454.html
- 云原生应用的12要素
- Universal-Image-Loader源码分析,及常用的缓存策略
- ios textView跟随键盘的移动
- Android:屏保软件的开发
- CoordinatorLayout
- 从零开始的Spring Security Oauth2(二)
- 简化Swagger使用的自制Starter:spring-boot-starter-swagger,欢迎使用和吐槽
- demo3同通讯录展示的方式分组排序
- Android手势研究(textview及listview对比验证)
- demo2动态加载显示商品详情页
- demo1 动态显示view或弹框 动态隐藏view或弹框
- ios 继承UITableViewController,更改tableview样式
- demo1 动态显示view或弹框 动态隐藏view或弹框
- 从零开始的Spring Security Oauth2(一)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux删除系统自带版本Python过程详解
- Linux时间子系统之时间的表示示例详解
- 如何在Linux中修改tomcat端口号
- centos7修改系统语言为简体中文的实现
- Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能
- linux实现猜数字小游戏源码
- linux编译kernel和svn版本冲突的解决办法
- 在 Ubuntu Linux 上安装 Oracle Java 14的方法
- 在 Linux 系统中手动滚动日志的方法
- Linux进程管理工具supervisor安装配置教程
- Linux执行可执行文件提示No such file or directory的解决方法
- 详解bash中的脚本调试机制
- 在 Linux 上查看和配置密码时效的方法
- CentOS7中使用shell脚本安装python3.8环境(推荐)
- linux定时任务的一些相关操作汇总