表的增删改查 进阶(一)

                                     

  • 🎥 个人主页:Dikz12
  • 🔥个人专栏:MySql
  • 📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香
  • 欢迎大家👍点赞✍评论⭐收藏

目录

数据库约束 

约束类型

NOT NUll 约束

UNIQUE 约束

DEFAULT 约束 

PRIMARY KEY:主键约束 

FOREIGN KEY 外键约束

 表的设计

一对多 

一对多 

多对多 


增删改其实没什么进阶的·,主要是查,是很复杂的。 

数据库约束 

数据库中的数据,有的时候是有一定要求的,有些数据是合法的,也有非方的数据;所以,数据库自动对数据的合法性进行校验检查的一系列机制称为约束。目的就是为了保证数据中能够被避免插入/修改一些非法的数据。

约束类型

  • NOT NULL - 指示某列不允许存储 NULL 值。 
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • DEFAULT - 没有给列赋值时的默认值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。(了解)

NOT NUll 约束

  • NOT NULL - 指示某列不允许存储 NULL 值。 

 不加约束是可以添加null值的;

设置之后就不允许这列存储null值

UNIQUE 约束

  • UNIQUE - 保证某列的每行必须有唯一的值。  

unique 约束,会让后面 插入 / 修改的数据的时候,都会执行一次查询操作,通过这个查询,来确定当前这个数据是否已经存在。

DEFAULT 约束 

  •  DEFAULT - 没有给列赋值时的默认值。

 

PRIMARY KEY:主键约束 

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

 

 一张表里只能有一个parmary key;

mysql会把带有unique 和 primary key的列自动生成索引,从而加快查询速度。

 如何保证主键唯一??

mysql本身就提供了一种"自增主键" 这样的机制;而且不用手动指定主键值,可以数据库服务器自己给你分配一个,从1开始,依次递增的分配主键的值。

FOREIGN KEY 外键约束

  • 保证一个表中的数据匹配另一个表中的值的参照完整性。 

 

 外键就是用来描述这样的约束过程的!

class表中的数据,约束了student表中的数据。

把class表 称为“主表/父表”; 约束别人的表。

把student 表,称为 “从表/子表”,被别人约束的表。

foreign key (列名) references 主表(列名);

 

在执行 插入操作,就会触发针对class表的查询。就会查询当前插入的记录是否在class中存在.

 针对父表进行 修改/删除 操作,如果当前被修改 / 删除的值,已经被子表引用了,这样的操作也会报错!

外键约束始终要保持,子表中的数据在对应的父表的列中,要存在,不然也会报错!

 表的设计

 根据实际的需求场景,明确当前要创建几个表,每个表什么样子,这些表之间是否存在一定联系。

一对多 

比如:一个人只能有一个身份证;

 

一对多 

比如:一个学生只能在一个班级中,一个班级可以有多个学生;

 

 

多对多 

比如:一个学生可以选择多个课程;一门课程也可以有多个学生。

就需要借助一个关联表,表示多对多 关系

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8x8离散余弦的快速精确实现使用数据流单指令多数据扩展指令集进行转换MMX 说明书

1.https://www.cs.cmu.edu/~barbic/cs-740/ap922.pdf 2.FFmpeg: libavcodec/x86/fdct.c Source File 再学FDCT快速精确实现协议改写浮点FDCT, ffmpeg的dct使用的就是这个快速精确协议。 3.http://dspace.fcu.edu.tw/bitstream/2377/30265/1/ICM%204-1.pdf 我想如把所有余弦…

在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型

在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型 0. 背景1. 安装依赖2. 开发 main.py3. 运行 main.py 0. 背景 看了一些文章之后,今天尝试在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型。 1. 安装依赖 pip install torch torchvision …

GO——gin中间件和路由

中间件 参考:https://learnku.com/articles/66234 结构 中间件是函数中间件函数被放在调用链上调用链的末尾是路由path对应的函数 执行过程 net/http包调用到gin的serverHTTP 参考:go/pkg/mod/github.com/gin-gonic/ginv1.7.7/gin.go:506 通过path找到…

el-table嵌套两层el-dropdown-menu导致样式错乱

问题&#xff1a; 解决方式&#xff1a; <el-table-column label"操作" fixed"right" width"132" align"center"><template slot-scope"scope"><div v-if"scope.row._index ! 合计"><el-d…

如何给新华网投稿发稿?新华网的媒体发稿方法步骤

现如今&#xff0c;互联网已经成为了人们获取信息的主要途径&#xff0c;各大媒体网站也成为了发布自己作品的首选平台。其中&#xff0c;新华网作为中国最具影响力的新闻媒体之一&#xff0c;其内容覆盖面广、触及人群众多&#xff0c;因此&#xff0c;能够在新华网上发表文章…

Angular系列教程之管道

文章目录 管道的基本概念使用内置管道创建自定义管道总结 在Angular中&#xff0c;管道&#xff08;Pipe&#xff09;是一个非常重要的概念。它们允许我们对数据进行转换、格式化和显示&#xff0c;并且可以轻松地在模板中使用。本篇文章将介绍Angular中的管道概念&#xff0c;…

从0到1:实验室设备借用小程序开发笔记

概论 实验室设备借用小程序&#xff0c;适合各大高校&#xff0c;科技园区&#xff0c;大型企业集团的实验室设备借用流程, 通过数字化的手段进一步提升相关单位设备保障水平&#xff0c;规范实验室和设备管理&#xff0c;用户通过手机小程序扫描设备的二维码&#xff0c;可以…

服务器和电脑有啥区别?

服务器可以说是“高配的电脑”&#xff0c;两者都有CPU、硬盘、电源等基础硬件组成&#xff0c;但服务器和电脑也是有一定区别的&#xff0c;让小编带大家了解一下吧&#xff01; #秋天生活图鉴# 1、稳定性需求不同&#xff1a;服务器是全年无休&#xff0c;需要高稳定性&…

【算法Hot100系列】旋转图像

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

东北编程语言???

在GitHub闲逛&#xff0c;偶然发现了东北编程语言&#xff1a; 东北编程语言是由Zhanyong Wan创造的&#xff0c;它使用东北方言词汇作为基本关键字。这种编程语言的特点是简单易懂&#xff0c;适合小学文化程度的人学习&#xff0c;并且易于阅读、编写和记忆。它的语法与其他编…

C#中的反射(Reflection)使用经典案例

文章目录 1. 动态加载和调用类的方法2. 记录用户修改行为3. 调用私有构造函数4. 泛型类型的动态创建和使用5. 动态类型转换与检查6. 获取和设置私有、受保护成员7. 枚举程序集、模块、类型等信息8. 处理泛型类型参数9. 动态生成代码或动态编译10. 配置驱动的应用程序扩展注意事…

武理多媒体信息共享平台的架构设计与实现

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…