MySQL 笔记4 – 数据完整性


MySQL 系列笔记是笔者学习、实践MySQL数据库的笔记

课程链接: MySQL 数据库基础入门教程
参考文档:
MySQL 官方文档


一、数据完整性


作用: 保证用户输入的数据保存到数据库中是正确的

设置数据完整性: 在创建表时给表中添加约束

数据完整性分类:

  • 实体完整性
  • 域完整性
  • 引用/参照完整性

二、实体完整性


1、实体完整性

实体: 表中的一行(一条记录)代表一个实体(entity)

作用: 标识每一行数据不重复,行级约束

2、主键约束(primary key)

特点:

  • 每个表中要有一个主键
  • 数据唯一,且不能为null

格式:

格式 说明
CREATE TABLE 表名(字段1 数据类型 primary key,字段2 数据类型); 单主键,字段1为主键
CREATE TABLE 表名(字段1 数据类型, 字段2 数据类型,primary key(要设置主键的字段)); 单主键
CREATE TABLE 表名(字段1 数据类型, 字段2 数据类型,primary key(主键1,主键2)); 联合主键,不能都一样

3、唯一约束(unique)

特点:

  • 指定列的数据不能重复
  • 可以为null

格式:

格式 说明
CREATE TABLE 表名(字段名1 数据类型,字段2 数据类型 UNIQUE); 字段2有唯一约束

4、 自动增长列

特点:

  • 指定列的数据自动增长
  • 数据删除,序号不会删除,还是从删除的序号继续往下

格式:

格式 说明
CREATE TABLE 表名(字段名1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE); 字段1 自动增长

三、域完整性


1、域完整性

  • 域代表当前单元格
  • 限制此单元格的数据正确,不对照此列的其它单元格比较

2、域完整性约束

数据类型约束 : 数值类型、日期类型、字符串类型

非空约束(not null):

格式 说明
CREATE TABLE 表名(字段1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE not null); 字段2不能为null

默认值约束(default) :

格式 说明
CREATE TABLE 表名(字段1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE not null default ‘x’); 字段2默认值为’x’

四、参照完整性


1、参照完整性

  • 是指表与表之间的一种对应关系
  • 通常情况下可以通过设置两表之间的主键、外键关系,或者编写两表的触发器来实现
  • 有对应参照完整性的两张表格,在对他们进行数据插入、更新、删除的过程中,系统都会将被修改表格与另一张对应表格进行对照,从而阻止一些不正确的数据的操作

2、主键和外键

  • 数据库的主键和外键类型一定要一致
  • 两个表必须得要是InnoDB类型
  • 设置参照完整性后 ,外键当中的内值,必须得是主键当中的内容
  • 一个表设置当中的字段设置为主键,设置主键的为主表
  • 主键:PRIMARY KEY,外键:REFERENCES

格式

格式 说明
CREATE TABLE student(sid int PRIMARY KEY,name varchar(50) not null,sex varchar(10) default ‘男’); 设置主键
CREATE TABLE score(sid INT,score DOUBLE,CONSTRAINT fk_stu_score_sid FOREIGN KEY(sid) REFERENCES student(sid)); 设置外键

GOOD LUCK!


MySQL 笔记4 -- 数据完整性相关推荐

  1. 涂抹mysql笔记-mysql复制特性

    涂抹mysql笔记-mysql复制特性 mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主 ...

  2. mysql事务手写笔记_兴奋了!阿里技术官手写“MySQL笔记”,传授你年薪百万级干货...

    前言 MySQL重要吗?重要!为什么重要?因为它在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的.My ...

  3. 涂抹mysql 完整_涂抹mysql笔记-管理mysql服务

    $ /mysql/scripts/mysql_install_db --datadir=/mysql/data --basedir=/mysql support-files/mysql.server脚 ...

  4. 阿里工程师总结的《MySQL 笔记高清 PDF 》 开放下载

    下面是阿里工程师整理的MySQL笔记,高清PDF版,涉及到mysql的方方面面,内容质量特别高,文末有获取方式. 获取方式,扫码发送:102

  5. MySQL 笔记9 -- PyMySQL

    MySQL 笔记9 – PyMySQL MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 参考文档: MySQL 官方文档 SQL 教程 PyMySQL官方文档 一.基础 1.简介 PyMy ...

  6. MySQL 笔记8 -- 存储过程和索引

    MySQL 笔记8 – 存储过程和索引 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.存储 ...

  7. MySQL 笔记7 -- 权限操作与视图

    MySQL 笔记7 – 权限操作与视图 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.权限 ...

  8. MySQL 笔记6 -- 函数与事务

    MySQL 笔记6 – 函数与事务 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.内置函数 ...

  9. MySQL 笔记5 -- 多表查询

    MySQL 笔记5 – 多表查询 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.表之间关系 1.一对一 ...

最新文章

  1. 我第一次接私活,就被骗了···
  2. 如何在存储过程中得到被调用存储过程的结果集
  3. 解决WAMP搭建PHP环境后后局域网其他机器无法访问的问题
  4. 我的世界光影mod怎么用_用“戏剧化”光影艺术 唤醒千年沉睡世界!
  5. Android之版本检测和更新
  6. Maven生命周期和插件的那些事(2021版)
  7. [HDU]1723Distribute Message
  8. 电子计算机电缆用引流线,本质安全防爆电路用仪表计算机电缆
  9. git detached head
  10. 亿级流量系统架构之如何支撑百亿级数据的存储与计算
  11. html可编辑下拉选项卡,bootstrap可编辑下拉框jquery.editable-select
  12. 学计算机的选intel还是amd,CPU选择intel还是AMD好?新手组装电脑选购硬件常见问题解答汇总...
  13. 3dsmax VRay分布式渲染
  14. 微信公众号H5页面缓存问题(微信缓存了 index.html 入口)
  15. 时域OCT(TD-OCT) 我的理解
  16. 微信会员卡系统怎么开通,微信会员卡开发,会员管理系统,CSS :first-line 伪元素
  17. Google鲜为人知的强大功能!(陆续更新)
  18. 高德地图api实现导航功能(使用经验)避坑关注
  19. 洗地机排名前十的产品、洗地机品牌排行榜最新公布
  20. STM32驱动直流电机

热门文章

  1. Django后台管理
  2. html实现3d视觉特效
  3. 机房USB被禁用的方法
  4. 准备写一个Ibatisnet开发指南
  5. 在ASP.NET AJAX中使用应用程序服务和本地化(3):用户个性化组件ProfileService
  6. 更改Eclipse Ctrl+1 的Idea 方式
  7. 可变字典 添加 删除 遍历
  8. 对象检测和浏览器检测
  9. VS2008 安装盘的问题
  10. c语言6大设计原则 控制反转,fun6868备用网址-fun6868备用网址