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

手机app开发 网站建设描述网站开发的广告词

手机app开发 网站建设,描述网站开发的广告词,跨境电商热销产品排行,小程序diy制作平台一、什么是数据库约束? 数据库约束是用于强制数据完整性的规则,包括:主键(唯一标识)、外键(关联其他表)、唯一(禁止重复)、非空(值必填)、检查&am…

一、什么是数据库约束?

数据库约束是用于强制数据完整性的规则,包括:主键(唯一标识)、外键(关联其他表)、唯一(禁止重复)、非空(值必填)、检查(符合条件)等,确保数据有效且关系正确。


二、约束类型


三、NOT NULL非空约束 

定义:定义表示,若某些列不允许为空,就可以为列添加非空约束。

 示例:

比如创建⼀个学生表,学生名为NULL时,这条记录是不完整的 :

我们可以通过将name字段设置为非空约束来解决:


四、DEFAULT默认值约束 

定义:DEFAULT 约束⽤于向列中插入默认值,如果没有为列设置值,那么会将默认值设置到该列 

示例:

 重构学生表,新增年龄列:


五、UNIQUE唯一约束

定义:指定了唯一约束的列,该列的值在所有记录中不能重复,比如⼀个人的身份证号,学生的学号等

示例:

 重构学生表,新增学号列:


六、PRIMARY KEY主键约束

 定义:主键约束唯一标识数据库表中的每条记录
            主键必须包含唯一的值,且不能包含 NULL 值。 
            每个表只能有一个主键,可以由单个列多个列组成。
            通常为每张表都指定一个主键,主键列建议使用BIGINT类型

示例:

(一)基础用法

重构学生表,为id列添加非空和唯一约束:

查看表结构,添加非空唯一约束之后key列为PRI(主键):

当id列相同时触发主键冲突:

通常将主键列设置为自增长,让数据库维护主键值:

插入数据时不必设置主键列的值:

查看表结构,Extra列显示auto_increment 表示自增 :

如果数据行写入失败(如语法错误),新生成的主键值作废

主键值可以不连续,且下次自增从主键最大值开始


(二)其它情况

<1>主键或唯一键冲突时的更新操作:

语法:INSERT ... ON DUPLICATE KEY UPDATE column = value [, column = value] ...

(如已有id为100,下次通过这个id产生冲突时,会将id为100的数据行进行跟新)

示例:
 插入ID为100,学号为100100的学生记录时,报主键冲突:

可以使用以上语法,如果插⼊时有冲突则更新当前列的值:


<2>替换,如果存在冲突则替换,不存在冲突则插入

语法:

其实就是将插入语句的insert改为replace

示例:

写入或更新id为101的记录(101记录存在,更新值):

写入或更新id为102的记录(102记录不存在,直接插入):


<3> 一个表中不能有多个主键


<4>复合主键:由多个列共同组成的主键,主键是否冲突以多个列的组成进行判定

重构学生表并设置符合主键:

插入两个相同数据:

修改插入的第二个数据的任意一列即可插入成功:


七、FOREIGN KEY外键约束

 定义:

外键用于定义主表和从表之间的关系

外键约束主定义在从表的列上,主表关联的列必须是主键或唯⼀约束

当定义外键后,要求从表中的外键列数据必须在主表的主键或唯⼀列存在或为null

语法:foreign key 从表字段 references 主表字段

示例:

创建班级表(主表)并初始化数据:

重构学生表(从表),添加外键约束:

查看表结构,Key列的值为MUL表示外键约束的列:

正常插入数据:

再次向student插入一条数据,班级编号为100:

向student中插入一条数据,id为null:

分别删除class表中id为5和2的两条数据:


八、CHECK约束

 定义:可以应用于⼀个或多个列,用于限制列中可接受的数据值,从而确保数据的完整性和准确性。

语法:check(条件)

示例:

重构学生表,要求年龄不小于60,性别只能是男或女:

创建新表,c1的值不能为0,c2的值必须大于0,c3的值不小于c2:

 

http://www.dtcms.com/a/461731.html

相关文章:

  • 24届-Python面经(华为OD)
  • JavaSpring项目之连接,并使用redis
  • 前端核心框架vue之(vue状态核心案例篇4/5)
  • 前端请求优化进阶:并发控制、缓存优化与错误重试实战教程
  • 网站建设的主要特征一个网址需要多少钱
  • 多模态医疗大模型Python编程合规前置化与智能体持续学习研究(上)
  • Transformer 面试题及详细答案120道(71-80)-- 应用场景
  • 官方网站内容可做证据吗百度软件推广联盟
  • 做网站的好处网站开发课设
  • 解决:谷歌浏览器提示“此扩展程序已停用,因为它已不再受支持”已解决
  • 【小程序】微信开发者工具上调用api接口可以,到了线上调用发现提示wx.request调用报错,原来是https协议问题
  • 智能指针三部曲:unique·shared·weak 的三角恋
  • gps的时间比实际晚8小时怎么办
  • 中小企业网站建设市场视频号小店
  • AMD KFD的BO设计分析系列6-1: VRAM BO的显存分配分析
  • ASP4644芯片在雷达FPGA供电系统中的适配与性能分析
  • kettle如何获取昨天的日期--方案一(正则表达式)
  • 建网站要多少钱秦皇岛网站制作公司哪家好
  • 简单题——力扣387.字符串中的第一个唯一字符
  • 商务网站开发设计结论浦江网站建设微信开发
  • 网站建站所用的技术国内新闻最新消息10条简短2022
  • FGFR信号通路与肿瘤治疗:基因变异、检测及临床应用
  • 2025 年山西省职业院校技能大赛应用软件系统开发赛项竞赛规程(学生组)
  • Unity插件-unity-webview跨平台WebView浏览器组件
  • LeetCode-704-二分查找
  • 老题新解|大整数加法
  • 常见python 排序
  • windows安装claude踩到的坑
  • 专业外贸网站建设公司价格深圳谷歌seo推广
  • 为什么需求文档总是不完整,有哪些解法