数据库的操作:数据完整性约束是什么?

news2025/1/15 21:45:41

一.作用

数据的准确性和可靠性

二.分类

实体完整性,域完整性,引用完整性,自定义完整性

三.详细

1.实体完整性

①实体:记录

②实体完整性约束保证数据记录之间是准确的(能够唯一标识一个实体)

③实体完整性包含主键约束,唯一约束,主键自增三种

1)主键约束【例如id】

        特点:唯一的,不能为空

        关键字:primary key

        添加约束语法:alter table 表名 add constraint 约束名 primary key(字段名);

        约束名:PK_字段

        删除约束语法:alter table 表名 drop primary key;

create table student(
    id int primary key,
    name varchar(20),
    age int
)

表已经创建好,需要添加主键约束

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

约束名:PK_字段

alter TABLE userinfo add uid INT;
alter table userinfo add CONSTRAINT PK_uid PRIMARY KEY(uid)

删除约束

alter table userinfo drop primary key;

2)唯一约束【例如身份证字段】

        特点:不能重复,可以为空,可以添加多个

        关键字:unique

        添加约束语法:alter table 表名 add constraint 约束名 unique(字段名);

        约束名:UQ_字段名

        删除约束语法:alter table表名 drop key 约束名;

创建表时:

create table student(
	id int PRIMARY key,
	name VARCHAR(20),
	age int,
	idcard VARCHAR(30) unique
)

表已创建好,需要添加唯一约束

alter table userinfo add CONSTRAINT UQ_tel unique(tel)

3)主键自增

        特点:从1开始,每次自身加1(在oracle中不能使用)

        关键字:auto_increment

        只能在创建表时添加主键自增的约束,而且必须是主键才能添加!!!

①添加主键自增

create table student(
	id int PRIMARY key auto_increment,
	name VARCHAR(20),
	age int,
	idcard VARCHAR(30) unique
)

②删除主键自增约束

        ----去除自增熟悉

        ----删除主键约束

# 去掉自增性
alter TABLE student modify id int;
# 删除主键
alter table student drop primary key;

2.域完整性(只能在创建表时添加!!!!)

        域:字段

        域完整性约束保证字段的数据准确的

        域完整性包括类型约束,非空约束,默认值
1)类型约束

2)非空约束

        特点:字段不允许为空

        关键字:not null

3)默认值

        特点:设置默认的值

        关键字:default

create table student(
	id int PRIMARY key auto_increment,
	name VARCHAR(20) not null,
	age int,
	idcard VARCHAR(30) unique,
	sex char(2) DEFAULT '女'
)

3.引用完整性

        一张表中通用列的取值必须参考另外一张表的主键

        引用完整性有外键约束

1)外键约束

        特点:设置外键的字段的取值只能参考另一张表中同一个字段的值

        关键字:foreign key

        添加外键约束的语法:alter table 表名1 add constraint 约束名 foreign key(字段名)

        reference 表名2(字段名)

        删除外键的语法:alter table 表名 drop froeign key 约束名;

# 建立一个学生表,其中class_id是与班级表中的id是一致
create table student(
	id int PRIMARY key auto_increment,
	name VARCHAR(20) not null,
	age int,
	idcard VARCHAR(30) unique,
	sex char(2) DEFAULT '女',
	class_id INT
)
建立班级表
create table classroom(
	class_id int PRIMARY KEY,
	class_name VARCHAR(30)
)
建立两个表的外键约束
alter table student add constraint FK_class_id FOREIGN KEY(class_id) REFERENCES classroom(class_id)
删除外键的语法:
alter table student drop foreign key FK_class_id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV 之 模版匹配多个对象、图片旋转 综合应用

引言 在图像处理和计算机视觉中,模板匹配是一种常用的技术,用于在一幅较大的图像中查找与给定模板图像相似的部分。然而,在实际应用中,目标物体可能会出现在不同的角度,这就需要我们在匹配之前对模板进行旋转处理。本…

[AHK]动态创建带ListBox的窗口,答选择题的界面

根据传入的窗口标题、提示信息(题干)、列表(选项)生成一个带ListBox的窗口(向导界面)。 AHK v1代码 if(A_ScriptFullPath=A_LineFile)MsgBox % ListBox("窗口标题", "这是一个生成listbox的Demo", "a|b|c|d|",3) return ;-------------…

清华智普ChatGlm批量API多线程写文章软件【glm-4-flash的key免费无限写 】

清华智普GLM-4-Flash经全面测评,在语义理解、数学逻辑、逻辑推理、代码执行以及广泛知识覆盖等方面,其表现显著超越了Llama-3-8B模型。 清华智普GLM-4-Flash模型还具备多种核心功能,包括但不限于流畅的多轮对话能力、内置的网页浏览功能、直…

线上购物商城小程序,uniapp,PHP语言开发在线购物商城小程序

前言: 商城小程序能够帮助商家降低成本、提高效率,为用户提供更加便捷和个性化的购物体验,是移动互联网时代的一种高效商业工具。 一、商城小程序功能有哪些? 基础功能需求 用户注册与登录 - 用户可以通过手机号、微信等方式进…

【第25章】Spring Cloud之Sentinel控制台详解

文章目录 前言一、实时监控二、簇点链路三、流控规则四、熔断规则五、热点规则六、系统规则七、授权规则八、集群流控九、机器列表总结 前言 前面我们详细介绍了Sentinel控制台的安装过程,这里我们来了解各个菜单的功能作用。 一、实时监控 同一个服务下的所有机器…

【网络安全】分析JS文件实现账户接管

未经许可,不得转载。 文章目录 正文正文 网站使用的是简单的OTP(一次性密码)验证机制,通过用户注册时提供的电子邮件发送邮箱验证码。在功能有限的情况下,我选择去分析网站加载的JavaScript文件。 我发现了一个名为 saveJobseekerPasswordInCache 的函数: 这个函数虽然…

等待实质审查的商标可以用吗!

申请注册商标受理书下来后,会有一个等待实质审查,这个审查出来就会出现要么通过初审,要么驳回,要么部分驳回,普推知产商标老杨发现时间大约是三个月左右,所以基本从申请3个月左右就知道结果了。 申请注册商…

智算时空 重塑视界│智汇云舟2024视频孪生产品发布会圆满举行,多个“全球首款”重磅亮相

​秋风送爽,丹桂飘香。9月6日,由北京智汇云舟科技有限公司主办(简称:智汇云舟),北京北科软科技有限公司(简称:北科软)、北京恒升联合科技有限公司(简称&#…

【北京迅为】《STM32MP157开发板使用手册》- 第十一章 编译U-Boot

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

TPM管理培训为何难以落地?原因解析与解决之道

近年来,TPM管理被视为提升设备效率、减少故障率、降低生产成本的关键。然而,尽管TPM的理念被广泛接受,其在实践中的落地却常常面临各种挑战。本文,深圳天行健企业管理咨询公司将深入解析TPM管理培训难以落地的根本原因&#xff0c…

微信小程序登录与获取手机号 (Python)

文章目录 相关术语登录逻辑登录设计登录代码 相关术语 调用接口[wx.login()]获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台账号下的唯一标识&#xff0…

华为防火墙 nat64

如果设备接收到的IPv6报文的前缀是设备为NAT64定义的前缀,说明报文的目的地址是IPv4网络,报文将经过NAT64处理后被转发至IPv4网络。 如果设备接收到的IPv6报文的前缀不是设备为NAT64定义的前缀,说明报文的目的地址是IPv6网络,报文…

强烈推荐!分享5款ai论文生成软件

在当今学术研究和写作领域,AI论文生成工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是五款值得推荐的AI论文生成软件,特别是千笔-AIPassPaper。 ### 千笔-…

Gin-封装自动路由

O.0 思路一、API二、控制层三、自动路由核心四、分组路由外加中间件使用 思路 由于Java转Go直接使用的goframe框架,然学习Gin时觉得一个接口一个路由太麻烦,于是有了...1、在请求结构体中采用标签的形式,直接给出路由和请求方式 2、在控制层…

yum源配置与静态配置地址

网络yum源 备份配置文件 下载新的CentOS-Base.repo文件到/etc/yum.repos.d/目录下 执行yum clean all清除原有 yum 缓存 执行yum makecache(刷新缓存) 本地yum 将/etc/yum/repos.d/下的文件a都移走,此处移到了该目录下的bak中 找到光盘路…

【重学 MySQL】二十二、limit 实现分页

【重学 MySQL】二十二、limit 实现分页 基本语法实现分页第一页第二页通用公式注意事项在 MySQL 中,LIMIT 子句非常强大,它允许你限制查询结果的数量,同时也经常被用来实现分页功能。分页是 Web 开发中常见的需求,它允许用户浏览大量数据时,一次只查看一小部分数据。 基本…

【重学 MySQL】二十一、order by 实现数据排序

【重学 MySQL】二十一、order by 实现数据排序 基本语法示例按薪水升序排序按薪水降序排序根据多个列排序 注意事项 在MySQL中,ORDER BY子句用于对结果集中的数据进行排序。你可以根据一个或多个列对结果进行升序(ASC)或降序(DESC…

JavaEE:文件操作

文章目录 文件操作和IO文件系统操作File介绍属性构造方法方法 代码演示前四个listmkdirrenameTo 文件操作和IO 文件系统操作 创建文件,删除文件,创建目录,重命名… Java中有一个类,可以帮我们完成上述操作. 这个类叫做File类. File介绍 属性 这个表格描述了文件路径的分隔符…

【IIS实战】ERR_SSL_KEY_USAGE_INCOMPATIBLE

当我们第一次配置IIS服务器做测试环境网站时,如果没有插手做自签名证书,而是用IIS自带的自签名证书,那么现代浏览器访问HTTPS测试站点大概率会有下图所示的报错: (IE:我能打开( •̀ ω •́ )y&#xff0…

VuePress搭建个人博客(手动安装)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…