MySQL表级完整性约束
MySQL表级完整性约束
为防止不符合规范的数据存入数据库,在用户对数据进行插入、修改、删除等操作时,MySQL提供
了一种机制来检查数据库是否满足规定的条件,以保证数据库中数据的准确性和一致性,这种机制
就是完整性约束。MySQL中主要支持六种完整性约束,如表所示。
约束条件 | 约束描述 |
PRIMARY KEY | 主键约束,约束的值可唯一的标识对应的记录 |
NOT NULL | 非空字段的值不能为空 |
UNIQUE | 唯一约束,约束1字段的值是唯一的 |
CHECK | 检查约束,限制某个字段的取值范围 |
DEFAULT | 默认值约束,约束字段的默认值 |
AUTO_INCREMENT | 自动增加位数,约束字段的值自动递增 |
FOREIGN KEY | 外键约束,约束与表之间的关系 |
约束从作用上可以分为两类:(1) 表级约束:可以约束表中任意一个或多个字段。与列定义的相互独立,不包含
在列表定义中;与定义用‘,’分隔;必须指出要约束的列的名称;(2) 列级约束:包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;
1、主键约束
主键约束(PRIMARY KEY,缩写PK),是数据库中最重要的一种约束,其作用是约束表中的某个字段可以
唯一标识一条记录。因此,使用主键约束可以快速查找表中的记录,就像人的身份证、学生的学号等等,
设置主键的字段取值不能重复(唯一),也不能为空(非空),否则无法唯一标识一条记录。2、非空约束
非空约束(NOT NULL,缩写NK),规定一张表中指定的某个字段的值不能为空(NULL),设置了非空约束
的字段,在插入的数据为NULL时,数据库会提示错误,导致数据无法插入。
无论是单个字段还是多个字段非空约束的添加只能使用列级约束(非空约束无表级约束)
为已存在表中的字段添加非空约束
alter table student modify stu_sex varchar(1)not null;
使用ALTER TABLE语句删除非空约束
3、唯一约束:
唯一约束(UNIQUE,缩写QK):它规定了一张表中指定的某个字段的值不能重复,即这一字段的
每个值都是唯一的。如果想要某个字段的值不重复,那么就可以为该字段添加唯一约束。4、检查约束
检查约束(CHECK)用来限制某个字段的取值范围,可以定义为列级约束,也可以定义为表级约束。
MySQL8开始检查表级约束5、默认值约束
默认值约束(DEFAULT)用来规定字段的默认值。。如果某个被设置为DEFAULT约束的字段没插入具体指,
那么该字段的值将会被默认值填充。
默认值约束的设置与非空约束一样,也只能使用列级约束。6、字段值自动增加约束
自增约束(AUTO_INCREMENT)可以使表中某个字段的值自动增加。一张表中只能有一个自增长字段,
并且该字段必须定义了约束(该约束可以使主键约束、唯一约束以及自增长约束),如果自增长字段没有
定义约束,数据库会提示错误。
由于自增约束会自动生成唯一的ID,所以自增约束通常会配合主键使用,并且只适用于数据整型。一般情
况下,设置自增约束字段的值会从1开始,每增加一条记录,该字段的值就加1.
为已存在表中的字段添加自增约束
create table stu(stu_id int(10) primary key,stu_name varchar(3),stu_sex varchar(1));
使用ALTER TABLE语句删除自增约束
alter table stu modify stu_id int(10);
MySQL表级完整性约束相关推荐
- mysql面试常问 1: 谈谈MySQL表级锁和行级锁
谈谈MySQL表级锁和行级锁 表级锁与索引无关 行级锁与索引的关系呢??答案是有关系的,但是要具体分析不同情况 主键索引与 行级锁的关系 非主键索引与行级锁的关系 实验如下: CREATE TABLE ...
- mysql表级锁和行级锁_MySQL表级锁和行级锁
一:概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking ...
- mysql表级锁和行级锁_Mysql的表级锁和行级锁
表级锁 MySQL表级锁分为读锁和写锁. 读锁 用法:LOCK TABLE table_name [ AS alias_name ] READ 释放锁使用UNLOCK tables.可以为表使用别名, ...
- MySQL—表的完整性约束(外键约束)(一)
1.什么是完整性约束? 为防止不符合规范的数据存入数据库,在用户对数据进行插入.修改.删除等操作时,MySQL提供了一种机制来检查数据库中的数据是否满足规定的条件,以保证数据库中数据的准确性和一致性, ...
- mysql表添加完整性约束_SQL语句——完整性约束
1.MySQL支持的完整性约束 a.主键约束 特点:唯一且非空 主键可以由一个字段组成,也可以由多个字段组成 如果主键由一个字段组成,既可以添加到列级,也可以添加到表级. 如果主键由多个字段组成,则只 ...
- MySQL表级约束和列级约束
MySQL中只要支持六种完整性约束,如表所示:其中check约束是MySQL8中提供的支持. 约束条件 约束描述 primary key 主键约束,约束的值可唯一的标识对应的记录 not null 非 ...
- mysql表级锁和行级锁
表级锁和行级锁对比: 表级锁: Mysql中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁.其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyI ...
- mysql行级安全_MySQL学习笔记(五):MySQL表级锁和行级锁
一:概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking ...
- mysql 表级锁_MySQL行级锁和表级锁
锁定用于确保事务完整性和数据库一致性. 锁定可以防止用户读取其他用户正在更改的数据,并防止多个用户同时更改相同的数据. 如果不使用锁定,数据库中的数据可能在逻辑上变得不正确,而针对这些数据进行查询可能 ...
最新文章
- jvm两种方式获取对象所占用的内存
- 一种结合混沌密码理论的彩色图象水印算法
- Linux Container 研究报告
- 根据工作时间计算小组成员得分
- jQuery 购物车
- 数字图像处理--图像梯度的基本原理
- MySQL使用触发器实现check约束功能
- [Vue.js] 基础 -- 综合案例 -- 图书管理
- eclipse设置java虚拟机内存大小_eclipse设置java虚拟机内存大小
- takephoto 框架_GitHub - Smecking/TakePhoto: 一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库...
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果
- 【论文学习】Abnormal behavior recognition for intelligent video surveillance systems: A review
- Linux终端收听mms流媒体电台
- android 拨打电话 实例,Android实战教程第三篇之简单实现拨打电话功能
- 对辛辛那提原始数据集(ims)数据划分正常,内圈故障,滚动体故障,外圈故障(python代码),可作为自己故障诊断模型实验的另一个数据集(因为CWRU普遍而言,准确度和被使用频率已经极高)
- 【U8】U8c及NC凭证模板修改附单据数字段
- treeview demo
- KNIME的学习使用心得
- k3s 卸载_离线安装K3S Server(v1.17.4+k3s1)
- eclipse报unknown database错误的其中一种方法解决归纳
热门文章
- lamda获取参数集合去空_(转)Java8使用lambda表达式进行集合的遍历
- mysql 分页 order_Mysql查询使用limit分页,同时使用order by可能产生的问题
- html风车相册代码,Css Html 大风车(示例代码)
- 有没有必要买python课_请问自学 Python 有必要买课程吗?
- Win7系统网页视频无法播放怎么办
- 大地最新win11 32位专业版镜像v2021.07
- 腾讯视频网页下载_腾讯视频怎么下载视频
- oracle 监听拒绝连接,报mybatis映射文件错误Listener refused the connection with the following error: ORA-12519, TNS
- layer.open 强化1
- centos6.5配置Hadoop环境,运行wordcount例子