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

数据库3.0

1.数据库约束

是关系型数据库的一个重要功能

主要作用是保证数据的完整性,也可以理解为数据的正确性(数据本身是否正确,关联关系是否正确)人工检查数据完整性的工作量非常大,在数据表中定义一些约束,在数据库写入数据的时候数据库会帮我们做校验工作约束一般是指定在列上的

1.1约束类型

1.2 NULL约束

创建表时,可以指定某列不为空:

NOT NULL - 指示某列不能存储 NULL 值。

没有指定非空约束时,当前的列是可以写入一个NULL值的

如果要把某一列定义为一个必填项,那么就可以使用not null(非空)约束

创建表时在相对的字段加入约束类型

当插入id字段为null时

提示不能写入NULL值数据库帮我们做了一次校验

非空列有值才能正常写入

1.3 UNIQUE:唯一约束

保证某列的每行必须有唯一的、不重复的值:

例如:身份证号 银行卡号 电话号........

可以发现不加唯一约束的时候,可能出现编号相同,但是人名不同的情况不符合逻辑

创建一个在ID字段加唯一约束的表

在表中插入相同的id

可以发现由于id设定了唯一约束 当出现相同的时候就会报错

NULL可以重复插入

1.4 DEFAULT:默认值约束

规定没有给列赋值时的默认值

插入时只指定了ld,这时name列使用默认值填充
当为某列设置了默认约束的时候,如果不给这个列指定值才会使用默认约束

虽然指定的默认约束,但是当我们手动指定这一列的值为NULL时插入的值依然是NULL,因为这个NULL 是我们自己手动指定的,也可以理解为我们想要的值用户指定的优先级要高于默认约束

1.5 PRIMARY KEY:主键约束

NOT NULL 和 UNIQUE 的结合(主键约束的列既是非空的又是唯一的)。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。

把表中的某一列设置成非空且唯一 (强烈建议为每张表定义一个主键

写入数据时两个约束同时生效

PRIMARY KEY:主键约束

在写入数据时,不具体指定主键列的值,而是用NULL代替

指定列插入

写入数据错误

再次写入新数据

当insert 操作时,都会先生成一个主键值不论记录写入成功与否,这个主键值都会视为已使用

重新定义新的主键可以吗?

只要主键值不重复就能写入

再次指定列新增数据就会在最大值的基本上加1,那么主键值在数据表有可能是不连续的

多主键?

一个主键同时可以包含多个列(复合主键)

主键包含的列值都相同

编号相同 姓名不同

1.6 FOREIGN KEY:外键约束

外键用于关联其他表的主键或唯一键

建立学生表和班级表

写入一条不存在的班级

删除学生表 建立新的并加入外键

建表插入数据 再次尝试插入不存在的班级学生信息

删除主表数据

当子表中存在对主表的依赖的时候,那么能不能删除主表中相应的记录?

依然会报一个主外键关系的错误

如果要删除主表中的记录,子表中不能有对该条记录的依赖也就意味要先删除子表中的记录,再去删除主表中的记录

http://www.cnnetsun.cn/news/40704.html

相关文章:

  • Slang光线追踪加速结构深度解析:从理论到性能优化实践
  • DeepSeek-R1-Distill-Qwen-7B集群部署终极指南:轻松搞定AI推理服务
  • 风储调频在Matlab/Simulink中的探索:基于四机两区系统的实践
  • 基于Java Swing的猜数字小游戏(2)
  • 提升 Web 端 JavaScript 的可信度:WAICT 体系详解
  • Solon (可替换 SpringBoot)集成 Docker 实战:30分钟搞定轻量级应用容器化部署
  • 一次 React 项目 lock 文件冲突修复:从 Hook 报错到 Vite 配置优化
  • 记录一次USB虚拟网络问题排查
  • 学Simulink——基于高比例可再生能源渗透的复杂电网建模场景实例:大规模光伏并网对区域电网频率稳定影响研究
  • CANN Samples(十九):特色场景:机器人 AI 绘画 手写识别等
  • 毕设开源 深度学习YOLO交通路面缺陷检测系统(源码+论文)
  • 【URP】Unity[后处理]色彩调整ColorAdjustments
  • Flutter混合开发与WebView集成实战
  • 压缩空气储能和释能阶段模型,附相关文档文献。 建立了压缩空气储能系统中的压缩机、换热器、储气罐...
  • Profinet转Modbus TCP工业数据采集网关:实现1200PLC 与打标卡数据实时传输
  • Flutter 2025 国际化与本地化实战:从多语言支持到文化适配,打造真正全球化的用户体验
  • P1178 到天宫做客 题解
  • 2025年GEO优化机会与争议以及规范发展的必要性
  • 2026老年春晚怀化区域节目征集启动仪式在怀化学院举行
  • 【笔记篇】【硬件基础篇】电力电子元器件应用手册 阅读笔记(1)电阻器及其应用
  • 柠檬 软件测试之python全栈自动化测试工程师第25期
  • 为什么你的视觉AI项目总是耗时又低效?Florence-2-large-ft一站式解决方案
  • 基于php的微信小程序的学习交流平台系统(源码+lw+部署文档+讲解等)
  • springboot高校读书分享系统的设计与实现_34ur7fyk-
  • 如何快速解锁RouterOS无限权限:MikroTikPatch的终极指南
  • 测试工程师的增值型职业休假策略:从技术深耕到跨界突破
  • USART串口
  • SDET职业生涯中的关键决策点与路径选择
  • 第三方API密集型聚合服务的测试体系构建
  • System Informer:你的Windows系统管家,3大核心功能深度解析