MySQL数据库:数据完整性及约束的应用

数据完整性

1.域完整性:---------匹配完整性:非空、缺省
字段/列

2.实体完整性:-------匹配完整性:主键、唯一键
记录/行

3.引用完整性:-------匹配完整性:外键
表与表之间

约束:constraint

MySQL中的约束分类

主键:primary key
唯一键:unique
非空:not null
缺省:default
外键:foreign key

主键、唯一键、外键都会自动创建索引
主键:一个表只能有一个主键,其可以对应一个字段,也可以对应多个字段(组合主键)
唯一键:也成为候选主键(跟主键的区别在于可以存储null值)
外键:来源于主表的主键或唯一键(可允许为空,且其值必须在主表中出现过)

创建约束
constraint 约束名 约束类型(字段名) references 主表(主键字段或唯一键字段)

创建外键约束

constraint 约束名 foreign key(对应字段) references 主表(主键字段或唯一键字段)

创建组合主键

primary key (字段1,字段2)

对于已经存在的表,创建唯一键约束

alter table 表名 add constraint 约束名 unique(字段名);

删除约束的数据 先删除子表数据,再删除主表数据

级联删除

on delete cascade 

级联更新

on update cascade

关掉mysql 外键约束

SET FOREIGN_KEY_CHECKS=0;

打开mysql 外键约束

SELECT  @@FOREIGN_KEY_CHECKS;

删除外键
注意:此语句在删除外键后不能关联删除该外键自动产生的约束

alter table 表名 drop foreign key 外键名称;

删除唯一键
注意:唯一键删除后对应的索引也会自动删除

alter table 表名 drop index 唯一键字段名;

删除指定名称的索引

alter table 表名 drop index 索引名称;

提醒:对于有主外关联的表,删除表中数据,如果无删除的级联操作,那么删除主表数据之前,必须先删除从表对应数据

原文地址:https://www.cnblogs.com/yanlzy/p/11909258.html

时间: 2025-02-01 10:48:52

MySQL数据库:数据完整性及约束的应用的相关文章

五种完整性约束分别是什么——基于MySQL数据库的数据约束实例

为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. #数据约束 #五种完整性约束: #NOT NULL :非空约束,指定某列不能为空: #UNIQUE : 唯一约束,指定某列或者几列组合不能重复 #PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录 #FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完

一、MySQL数据库基础

1.1.数据库模型 数据库由一批数据构成有序集合,这些数据被存在结构化的数据表中.数据表之间互相关联,反应客观事物间的本质联系.数据库系统提供对数据的安全控制和完整性控制.数据库的发展大致划分为几个阶段:人工管理阶段.文件系统阶段.数据库系统阶段.高级数据库阶段.其种类大概有3种:层次式数据库.网络式数据库和关系式数据库. 文本数据库缺陷:数据冗余和不一致,数据访问困难,数据孤立,完整性问题,原子性问题并发访问问题,安全性问题. 数据库系统的特性:数据管理独立性:有效地完成数据存取:数据完整性和

python 全栈 数据库(二)MySQL数据库进阶

MySQL 进阶 左右连表: join 上下连表: union #自动去重 (当两张表里的数据,有重复的才会自动去重) union all #不去重 例如: select sid,sname from sname union select tid,tname from teacher select sid,sname from student UNION ALL select sid,sname from student 1.视图 (不常用,开发过程中不长用,在开发语句中写,不要在数据库中写)

MySQL数据库进阶操作

视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 临时表搜索: SELECT * FROM ( SELECT nid, NAME FROM tb1 WHERE nid > 2 ) AS A WHERE A. NAME > 'alex'; 1.创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FR

一个小时学会MySQL数据库

一个小时学会MySQL数据库 目录 一.数据库概要 1.1.发展历史 1.1.1.人工处理阶段 1.1.2.文件系统 1.1.3.数据库管理系统 1.2.常见数据库技术品牌.服务与架构 1.3.数据库分类 1.3.1.关系型数据库 1.3.2.非关系型数据库 1.4.数据库规范化 1.4.1. 什么是范式 1.4.2. 三大范式 1.4.3. 范式与效率 二.MySQL介绍 2.1.MySQL概要 2.2.系统特性 2.3.存储引擎 三.快速安装运行MySQL数据库 3.1.使用绿色版 3.1.

关于MySQL数据库优化

MySQL数据库优化相关知识: 一.两种常用引擎的选择 1.MyISAM 当MySQL版本小于5.5时的默认引擎 优点:擅长数据处理:高速读写:数据的存储顺序为插入顺序,插入速度快:空间占用量小 特性:全文索引支持(版本大于等于5.6的Innodb也支持),可以利用myisamPack完成数据的压缩功能 缺点:仅支持表级锁定,支持并发插入,写操作中插入操作不会影响其他操作.不支持事务 2.InnoDB 版本大于等于5.5的默认引擎 优点:提供事务,行级锁定,外键约束,注重数据的完整性和安全性 特

MySql数据库基本介绍和基本语法

一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛.面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005.Oracle10g等都开始增加面向对象的特性. 二.常用基本SQL语句/语法 Ø SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作然后关系型数据库.

mysql数据库的基础知识

数据库的登录 1.把mysql的bin目录添加到path环境变量中 2.打开cmd mysql -h localhost -u root -p 输入密码就可以进去 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: ? 网状型数据库 ? 层次型数据库 ? 关系型数据库 ? 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛.面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005.Oracle10g等都

MYSQL数据库常用知识整理

Evernote Export MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主.主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中

青铜到王者,快速提升你 MySQL 数据库的段位!

新的一周,老张(superZS)再次与大家见面,我们又要面临快速的生活节奏而令人厌恶的工作!现在大多数人选择放松自己的方式就是玩游戏,最为突出的可能就要属手游"王者荣耀". 据说这款游戏上到70旬老者,下至小学生都玩,老张我也玩.段位低得可怜(PS:最近刚玩哈),刚刚白银. 当时也想让别人带带我,说你只要给多少钱,就能快速带你从倔强青铜到最强王者,但最后我在装逼和省钱的抉择上,我选择了省钱.我心想就玩一个游戏,无非你就是比我玩的时间长,有技巧,有经验嘛,但凡我多花点时间,绝对比你玩的好