MySQL 主表与从表
通过上一篇随笔,笔者了解到,实体完整性是通过主键约束实现的,而参照完整性是通过外键约束实现的,两者都是为了保证数据的完整性和一致性。
主键约束比较好理解,就是主键值不能为空且不重复,已经强调好多次,所以这里重点记录对外键约束的学习。
主表与从表
若同一个数据库中,B表的外键与A表的主键相对应,则A表为主表,B表为从表。
假设学生表(学号,姓名,性别,专业号),专业表(专业号,专业名称),则学生表中的专业号为学生表的外键,其与专业表中“专业号”属性相关联,因此,专业表为主表,学生表为从表。
外键约束
外键约束是相关联的两个表之间的数据操作约束,包括删除,插入,更新等。理论上,在对关联数据表进行数据操作时,只改其一,不改其二,不符合关系数据库的参照完整性。
(1)更新
更新主表的某一个记录的主键值(其实,这种操作是不被允许的),系统会自动检测该主键值在从表中是否存在,若存在,则需要明确操作(一般默认为不被允许);
更新从表的某一个记录的外键值,系统会自动检测欲更新的外键值在主表中是否存在,若不存在,则需要明确操作(一般默认为不被允许);
(2)插入
向主表中插入一条新的记录,不会对现有从表造成影响;
向从表中插入一条新的记录,系统会检测外键对应的属性值在主表中是否存在,若存在,否则需要明确操作(一般默认为不被允许);
(3)删除
从主表中删除一条记录,系统会自动检测该记录的主键值是否在从表中存在,若存在,则需要明确操作(一般默认为不被允许);
从从表中删除一条记录,不会对主表造成影响;
MySQL 主表与从表的更多相关文章
- mysql中主表与从表
说个例子,比如用户表和银行帐号表,没有用户,那来的银行帐号,而且用户可以没有银行帐号,这里主要表现在银行帐号中这个表中必有用户表中的字段用户,这个主表则为用户表,而从表,则依附于主表. 主表在数据库中 ...
- mysql学习笔记-- 多表查询之外键、表连接、子查询、索引
本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复 ...
- [django]主次表如何取出对方数据[主表obj.子表__set()]
[sql]mysql管理手头手册,多对多sql逻辑 国家--城市例子 class Country(models.Model): name = models.CharField(max_length=3 ...
- MySQL笔记之多表
貌似很久不写博客了,趁着项目刚完结,记录一下这段时间了解到的一些认识,或许有些地方理解的还不够到位,看到的希望能不吝赐教. 外键 概念 与索引的关系 写法 查询 一对多多对一查询 多对多查询 插入 多 ...
- 菜鸟崛起 DB Chapter 5 MySQL 5.6数据库表的基本操作
5 数据库表的基本操作 在数据库中,数据表是数据库中最重要.最基本的操作对象,是数据存储的基本单位.数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的.每一行代表一条唯一的记录,每一列代 ...
- mysql 清空或删除表数据后,控制表自增列值的方法
http://blog.sina.com.cn/s/blog_68431a3b0100y04v.html 方法1: truncate table 你的表名 //这样不但将数据全部删除,而且重新定位自增 ...
- MySql(一)表类型(存储引擎)
MySql(一)表类型(存储引擎) 一.MYSQL存储引擎概述 二.存储引擎的特性对比 2.1 MyISAM 2.2 InnoDB 2.2.1 自动增长列 2.2.2 外键约束 2.2.3 存储方式 ...
- mysql 命令重命名表RENAME TABLE 句法
mysql 命令重命名表RENAME TABLE 句法 RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]更 ...
- MYSQL 解锁与锁表
解锁 第一种 show processlist; 找到锁进程,kill id ; 第二种 mysql>UNLOCK TABLES; 锁表 锁定数据表,避免在备份过程中,表被更新 mysql> ...
随机推荐
- node 学习系列-hello world
准备学习node,记录一段 1.搭建好 node 以后,就记录一下 hello world
- vue-电脑端导出-txt
// fakeClick(obj) { // var ev = document.createEvent("MouseEvents"); // ev.initMouseEvent( ...
- 关于运行python脚本产生__pycache__
是什么? 用python编写好一个工程,在第一次运行后,总会发现工程根目录下生成了一个__pycache__文件夹,里面是和py文件同名的各种 *.pyc 或者 *.pyo 文件. python脚本编 ...
- Django 框架 django的请求生命周期
概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串,同时http请求是无状态的,可以通过session和cookie来辅助. 浏览器通过ip和端口及路由方式访问服务端. 在Djang ...
- [LeetCode] 696. Count Binary Substrings_Easy
利用group, 将每个连着的0或者1计数并且append进入group里面, 然后再将group里面的两两比较, 得到min, 并且加入到ans即可. T: O(n) S: O(n) 比较 ...
- Eclipse配置Github -分享你的代码
搭建了虚拟机供练手用,想要保存练习代码,于是想在VM Eclipse上配置Github,从此随练随保存. 步骤:1. eclipse ->help->install new softwar ...
- Node.JS + Mysql数据库
服务嘛,当然离不开数据库了,你要是见到数据就哭了,我建议你还是看看本文,不要做数据哭啊,哈哈哈 要做 ‘数据酷’嘛,哈哈哈 一 安装 1. wget -i -c http://dev.mysql.co ...
- mysql 命令一套
MySQL mysql -h主机地址 -u用户名 -p用户密码 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有 ...
- 将NetBIOS名称解析为IP地址的常用方法
在Windows网络中,当一台计算机要利用NetBIOS名称与另一台计算机通信时,首先要将对方计算机的NetBIOS名称解析成IP地址 2.广播 通过发送一个广播消息来查询对方的IP地址,拥有此N ...
- 【网络设备】某防火墙基于IP地址的目的地址转换
由于来自Internet的对政府,企业的网络攻击日益频繁,因此需要对内网中向外网提供访问服务的关键设备进行有效保护.采用目的地址NAT可以有效地将内部网络地址对外隐藏. 图中:公网中Internet用 ...