5.2.3 参照完整性约束 这也适用于使用UPDATE语句更新xs1表中的学号列。即MySQL确保了xs1表中的学号列的内容总是xs表中学号列的内容的一个子集。也就是说,下面的SELECT语句不会返回任何行: select * from xs1 where 学号 not in ( select 学号 from xs ); 5.2.3 参照完整性约束 当指定一个外键的时候,以下的规则适用: (1)被参照表必须已经用一条CREATE TABLE语句创建了,或者必须是当前正在创建的表。 (2)必须为被参照表定义主键。 (3)必须在被参照表的表名后面指定列名(或列名的组合)。这个列(或列组合)必须是这个表的主键或替代键。 (4)尽管主键是不能够包含空值的,但允许在外键中出现一个空值。这意味着,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。 (5)外键中的列的数目必须和被参照表的主键中的列的数目相同。 (6)外键中的列的数据类型必须和被参照表的主键中的列的数据类型对应相等。 5.2.3 参照完整性约束 与外键相关的被参照表和参照表可以是同一个表。这样的表称为自参照表(Self-referencing Table),这种结构称为自参照完整性(Self-referential Integrity)。例如,可以创建这样的xs2表: create table xs2 ( 学号 varchar(6) not null, 姓名 varchar(8) not null, 出生日期 datetime null, primary key (学号), foreign key (学号) references xs1 (学号) ); 5.2.3 参照完整性约束 【例5.13】创建带有参照动作ASCADE的xs1表。 create table xs1 ( 学号 varchar(6) not null, 姓名 varchar(8) not null, 出生日期 datetime null, primary key (学号), foreign key (学号) references xs (学号) on update cascade ); 5.2.4 CHECK完整性约束 CHECK完整性约束在创建表的时候定义。可以定义为列完整性约束,也可定义为表完整性约束。 语法格式: CHECK(expr) 【例5.14】创建表student,只包括学号和性别两列,性别只能是男或女。 create table student ( 学号 char(6) not null, 性别 char(1) not null check(性别 in ('男', '女')) ); 5.2.4 CHECK完整性约束 【例5.15】创建表student1,只包括学号和出生日期两列,出生日期必须大于1990年1月1日。 create table student1 ( 学号 char(6) not null, 出生日期 date not null check(出生日期>'1990-01-01') ); 5.2.4 CHECK完整性约束 例如,可以在条件中加入子查询,下面举个例子。 【例5.16】创建表student2,只包括学号和性别两列,并且确认性别列中的所有值都来源于student表的性别列中。 create table student2 ( 学号 char(6) not null, 性别 char(1) not null check( 性别 in ( select 性别 from student) ) ); 5.2.4 CHECK完整性约束 【例5.17】创建表student3,有学号、最好成绩和平均成绩3列,要求最好成绩必须大于平均成绩。 create table student3 ( 学号 char(6) not null, 最好成绩 int(1) not null, 平均成绩 int(1) not null, check(最好成绩>平均成绩) ); 5.2.5 命名完整性约束 CONSTRAINT关键字用来指定完整性约束的名字,语法格

mysql完整性约束命名_第5章--MySQL索引与完整性约束.ppt相关推荐

  1. mysql架构组成_第 2 章 MySQL 架构组成

    麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...

  2. mysql query 优化_第 8 章 MySQL 数据库 Query 的优化

    前言: 在之前"影响 MySQL 应用系统性能的相关因素"一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 Query 语句的优化 ...

  3. 关于高性能mysql的读书报告_《高性能MySQL》读书笔记:第一章[MySQL架构与历史]...

    <高性能MySQL>读书笔记:第一章[MySQL架构与历史] MySQL逻辑架构 MySQL最优秀的一点就是它的存储架构,将查询处理,系统任务,数据存储/提取相分离 并发控制 通过读写锁实 ...

  4. mysql索引和数据完整性答案_第5章MySQL索引与完整性约束.ppt

    第5章MySQL索引与完整性约束 5.3.4 CHECK完整性约束 CHECK完整性约束在创建表的时候定义.可以定义为列完整性约束,也可定义为表完整性约束. 语法格式: CHECK(expr) [例5 ...

  5. mysql的实验环境_第04 章 MYSQL实验环境创建

    第04 章 MYSQL实验环境创建 一.下载MY https://dev.mysql.com/downloads/file/?id=476476 1.1 Oracle http://www.oracl ...

  6. mysql索引执行计划_第六章· MySQL索引管理及执行计划

    一.索引介绍 1.为什么要做索引 让获取的数据更具有目的性,从而提高数据库检索数据的性能 2.索引类型介绍 1)BTREE:树索引 B+树索引 B*树索引 2)HASH:HASH索引 3)FULLTE ...

  7. mysql客户端工具_性能优化-理解 MySQL 体系结构(MySQL分库分表)

    实例和数据库 我们通常所说的 MySQL 数据库服务器由一个实例(instance)以及一个数据库(database)组成.实例包括一组后台进程/线程和许多内存结构,用于管理数据库:数据库由一组磁盘文 ...

  8. mysql数据库二级_全国计算机二级mysql数据库模拟试题及答案

    全国计算机二级mysql数据库模拟试题及答案 很多人都想拿到二级mysql证,那么在参考二级mysql考试前,可要做好充分的准备,下面小编为大家带来了全国计算机二级mysql数据库模拟试题及答案,欢迎 ...

  9. mysql数据库系统原理_数据库系统原理及MySQL应用教程

    作 者:李辉 等 编著 著作 定 价:56 出 版 社:机械工业出版社 出版日期:2016年01月01日 页 数:374 装 帧:平装 ISBN:9787111525127 本书以MySQL为平台,全 ...

最新文章

  1. CVPR 2022 57 篇论文分方向整理 + 打包下载|涵盖目标检测、语义分割、人群计数、异常检测等方向
  2. Prototype1.5.1源代码解读分析-3
  3. rad linux下安装mysql_Linux(CentOS或RadHat)下MySQL源码安装
  4. 基于javaweb(springboot+mybatis)网站建设服务管理系统设计和实现以及文档报告设计
  5. qq编辑资料html,腾讯限置qq日记代码HTML在线编辑器: http://www.wyzxsx.com/editor.asp
  6. Excel条件格式化(conditional formatting)应用
  7. Day04 dom详解及js事件
  8. 利用Brettle.Web.NeatUpload控件对打文件进行上传(转)
  9. access无法与wincc链接_step7与s7-300 PLC连接,但是wincc与PLC连接不上怎么办?
  10. eversync safari_印象笔记 Evernote 同步插件 for WordPress
  11. ccsk matlab,一种CCSK解调预处理方法与流程
  12. 在CAD中修改标注箭头端样式需要怎么操作?
  13. MTSP问题遗传算法解决代码及其案例
  14. 2018 Cell系列相变最强综述,未来已来,你在哪?
  15. FileZilla打开连接后本地站点无法显示自己的本地电脑
  16. matlab图论软件包,MATLAB_bgl_toolbox 图论通用工具箱总汇:GraphTheory for St 247万源代码下载- www.pudn.com...
  17. 电气AutoCAD基础教学(一)——入门技巧
  18. 技术融合:使用区块链的5G——未来无线通信的序章
  19. 怎么才能防止SSL劫持
  20. 图形界面 I: 图形界面的动画 (第三章)

热门文章

  1. 堆积柱形图显示总数_送你一份堆积柱形图小点心,请收下~
  2. vue 插件 滑块验证_Vue插件之滑动验证码
  3. Spring在tomcat下使用JTA事务
  4. c语言学习-判断101-200之间有多少个素数,并输出所有素数及素数的个数
  5. OpenShift Security (5) - 评估部署中的风险
  6. Android Q 不叫 Q,正式命名为 Android 10
  7. 底层框架_百度PaddleCV硬核升级 与飞桨底层框架领先能力全面结合实现软硬一体...
  8. 中国象棋将帅问题java_编程之美读书笔记1.2——中国象棋将帅问题
  9. mysql5性能比较_MySQL 5.7&MySQL 8.0 性能对比
  10. js 滚动条自动滚动到最底部