当前位置: 首页 > news >正文

MySQL中的约束

约束概述

1.1 为什么需要约束

数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑:

  • 实体完整性(Entity Integrity):例如,同一个表中,不能存在两条完全相同无法区分的记录

  • 域完整性(Domain Integrity):例如:年龄范围0-120,性别范围“男/女”

  • 引用完整性(Referential Integrity):例如:员工所在部门,在部门表中要能找到这个部门

  • 用户自定义完整性(User-defined Integrity):例如:用户名唯一、密码不能为空等,本部门经理的工资不得高于本部门职工的平均工资的5倍。

1.2 什么是约束

约束是表级的强制规定。

可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后通过 ALTER TABLE 语句规定约束

1.3 约束的分类

  • 根据约束数据列的限制,约束可分为:

    • 单列约束:每个约束只约束一列

    • 多列约束:每个约束可约束多列数据

  • 根据约束的作用范围,约束可分为:

    • 列级约束:只能作用在一个列上,跟在列的定义后面

    • 表级约束:可以作用在多个列上,不与列一起,而是单独定义

            位置          支持的约束类型                 是否可以起约束名
列级约束:   列的后面        语法都支持,但外键没有效果       不可以
表级约束:   所有列的下面     默认和非空不支持,其他支持       可以(主键没有效果)
  • 根据约束起的作用,约束可分为:

    • NOT NULL 非空约束,规定某个字段不能为空

    • UNIQUE 唯一约束规定某个字段在整个表中是唯一的

    • PRIMARY KEY 主键(非空且唯一)约束

    • FOREIGN KEY 外键约束

    • CHECK 检查约束

    • DEFAULT 默认值约束

注意: MySQL不支持check约束,但可以使用check约束,而没有任何效果

  • 查看某个表已有的约束

#information_schema数据库名(系统库)
#table_constraints表名称(专门存储各个表的约束)
SELECT * FROM information_schema.table_constraints
WHERE table_name = '表名称';

http://www.lryc.cn/news/436791.html

相关文章:

  • Leetcode 寻找重复数
  • 大一新生以此篇开启你的算法之路
  • 【AI大模型】ChatGPT模型原理介绍(上)
  • 基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模
  • C++竞赛初阶L1-15-第六单元-多维数组(34~35课)557: T456507 图像旋转
  • 无线领夹麦克风哪个牌子好?西圣、罗德、猛犸领夹麦克风深度评测
  • React Native 0.76,New Architecture 将成为默认模式,全新的 RN 来了
  • Java并发:互斥锁,读写锁,Condition,StampedLock
  • 客户端负载均衡Ribbon实例
  • MySQL数据库负载均衡
  • 达梦CASE_SENSITIVE参数解析
  • 酒店智能轻触开关工作原理
  • web基础之RCE
  • c语言--水仙花数,求Sn的前五项和
  • SpringBoot教程(二十八) | SpringBoot集成Elasticsearch(Java High Level Rest Client方式)
  • 【Vue3】常用的响应式数据类型
  • 搭建本地DVWA靶场教程 及 靶场使用示例
  • 60. n 个骰子的点数【难】
  • 高性能编程:无锁队列
  • word标题排序编号错误
  • 力扣---80. 删除有序数组中的重复项 II
  • 一篇文章,讲清SQL的 joins 语法
  • 设计模式之建造者模式(通俗易懂--代码辅助理解【Java版】)
  • 文生视频算法
  • LoRA: Low-Rank Adaptation Abstract
  • 正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编
  • Unreal Engine——AI生成高精度的虚拟人物和环境(虚拟世界构建、电影场景生成)(一)
  • Emlog程序屏蔽用户IP拉黑名单插件
  • 发送成绩的app或小程序推荐
  • 51单片机-AT24C02(IIC总线介绍及其时序编写步骤)-第一节(下一节实战)