【百日精通JAVA | SQL篇 | 第四篇】约束

SQL这一块没什么难度,主要是一个熟练度,稍微上点难度的地方,其实在于查,比较复杂,涉及到很多问题。

指定列插入

        使用指定列插入的时候,未被指定的列使用默认值进行存储,默认值为空。

默认值设置

        default关键字,在设置字段时,可以对其默认值进行修改

Primary Key 主键

        主键约束,主键就是一条数据-身份标识

        通过这个约束,来指定某个列作为主键

        1)非空

        2)不能重复

         一个表,只能有一个主键,但是一个主键可以对应多个列,我们称之为联合主键。

Primary Key auto_increment 自增主键

        主键,往往是一个整数类型的id,要求不能重复。允许客户端,在插入数据时候,不手动指定主键的值,而是交给MYSQL自行分配,确保分配出来的这个主键的值,是和之前不重复的。

        primary key auto_increment 自增主键 意味着数据库自行分配一个键值.

        那如果再次插入数据的时候,id自动分配的是4还是11?

        数据库记录了,当前表中id最大值,此时id自动分配的是11.

        前面的4 5 6 7... 浪费了也无所谓,空间非常大,即便我们浪费几千、几万个也无所谓

        一共可以表示几十亿个数据。

        mysql服务器会维护这样的最大值

        如果mysql是一个单个节点的系统,按照上述自增主键的策略,是没问题的

        如果mysql是一个分布式系统,搞了好几个主机,每个主机都有mysql,让他们相互配合,此时,自增主键,就无法保证唯一性了。

        注意:每个主机存储时都只会存储最大数值的id,那么此时就会出现重复

FOREIGN KEY: 外键约束

        当前这个表的哪一类要受到约束

        在这个代码中,需要明确交代,哪个表的那一列要受到哪一个表的那一列的约束

create table student(
studentId int primary key auto_increment,
name varchar(20),
classId int,
foreign key (classId) references class(classId));

插入或者修改子表受约束的这一列数据,就需要保证插入/修改后的结果,得在父表中存在!!

删除/修改 父表中的记录,就需要看看这个记录是否在子表中被使用了,如果被使用了,则不能进行修改或者删除。约束是双向的

索引

设置外键的时候,就会导致在操作子表的时候,频繁访问父表

这一个查询操作,是很耗时间的,为了加快查询速度,如果父表的ID这一列带有索引的话,就很好了

索引:相当于页码,我们提前知道这个id在书上第几页,直接翻到即可,primary key和unique都带有索引,自动创建索引,因此没有索引无法创建外键

        

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

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

相关文章

http协议版本的区别 -- 2和3

目录 http2和http3的区别 传输层协议 QUIC协议 介绍 连接建立与握手 建立安全连接的过程 RTT 建连为什么需要两个过程 原因 解决 QUIC协议的1-RTT 建连 必要性 连接过程 第一次握手(Client Hello) 版本号 key_share 其他 第二次握手 介绍 Server Hello 身…

21 天 Python 计划:MySQL 库相关操作

文章目录 前言一、系统数据库1. information_schema2. performance_schema3. mysql4. test 二、创建数据库1. 语法2. 数据库命名规则 三、数据库相关操作1. 查看数据库2. 选择数据库3. 删除数据库4. 修改数据库 总结 前言 Python是一种强大且易于学习的编程语言。通过这个21天的…

手撕LLM(二):从源码出发,探索LoRA加载、推理全流程

接上回接着说,前面我们通过分析源码,了解了大模型推理的详细流程,包括提示词从输入,到对话模版包装,到tokenID转换,到Embedding词向量转换;通过大模型推理,再将大模型输出进行最后一…

WPS宏开发手册——常见问题

目录 系列文章6、常见问题 系列文章 使用、工程、模块介绍 JSA语法 JSA语法练习题 Excel常用Api Excel实战 常见问题 附录 6、常见问题 6.1、编辑完宏后会自动保存,下次打开文件会提醒是否启用宏,点击启用会自动加载上次编辑的…

【Android安卓移动计算】实现项目一[模拟器启动项目]

文章目录 新建项目项目结构介绍说明程序自动生成:图片和样式文件夹:Training1\app\src\main\res\drawable布局文件文件夹:Training1\app\src\main\res\layoutJava文件夹:Training1\app\src\main\java\com\example\training1Androi…

快 速 幂

暴力肯定会超时 3^10 9^5 9*9^4 9*81^2 9*18^2^1 先对b判断奇偶 偶数:对b/2,对a平方 奇数:先*a,再对a平方,b/2 取余注意:(3^10)%k( 9 * 18^2^1)%k(( 9%k )%k * (18^2^1)%k)%k

网络钓鱼攻击的威胁和执法部门的作用(第二部分)

执法部门在打击网络钓鱼中的作用 虽然网络钓鱼可能始于一封欺骗性的电子邮件或短信,但其后果可能远远超出个人收件箱的范围,影响企业、经济甚至国家安全。随着网络钓鱼攻击的规模和复杂性不断增加,执法机构站在前线,努力预防、调…

Data_Socket和UDP_Socket

Data_Socket 和 UDP_Socket 是两种不同类型的网络套接字,它们用于不同的协议和应用场景。以下是它们的主要区别: 协议类型: UDP_Socket:使用的是 UDP(User Datagram Protocol) 协议,这是一种无连…

2025高频面试算法总结篇【排序】

文章目录 直接刷题链接直达把数组排成最小的数删除有序数组中的重复项求两个排序数组的中位数求一个循环递增数组的最小值数组中的逆序对如何找到一个无序数组的中位数链表排序从一大段文本中找出TOP K 的高频词汇 直接刷题链接直达 把一个数组排成最大的数 剑指 Offer 45. 把…

模型压缩技术从零到一

模型压缩是深度学习中的重要技术,旨在减小模型尺寸和计算需求,特别适合在移动设备或嵌入式系统上部署。 要点 模型压缩技术可以显著减小模型尺寸和计算需求,适合资源受限设备。主要技术包括剪枝、量化、知识蒸馏、低秩分解和轻量级模型设计…

浮点数精度问题

目录 ieee754标准解决方法 和c语言一样,所有以ieee754标准的语言都有浮点数精度问题,js也有浮点数精度问题,并且因为是弱类型语言这个问题更严重,js的Number类型的数据都被视为浮点数 ieee754标准 js的数字类型就相当于c语言doub…

超大规模数据场景(思路)——面试高频算法题目

目录 用4KB内存寻找重复元素 从40个亿中产生不存在的整数【位】 如果只让用10MB空间存储? 初次遍历 二次遍历 用2GB内存在20亿个整数中查找出现次数最多的数【分块】 从亿万个URL中查找问题【分块 堆】 40亿个非负整数中找出现两次的数【位 不过多个位哈】 …

开源身份和访问管理方案之keycloak(三)keycloak健康检查(k8s)

文章目录 开源身份和访问管理方案之keycloak(三)keycloak健康检查启用运行状况检查 健康检查使用Kubernetes下健康检查Dockerfile 中 HEALTHCHECK 指令 健康检查Docker HEALTHCHECK 和 Kubernetes 探针 开源身份和访问管理方案之keycloak(三&…

FATFS备忘

概述 FATFS文件系统可以挂载SD卡也可以挂载FLASH eMMC等设备 SD卡需要格式化为FAT32模式 块大小默认即可 移植 SD卡 SD卡扇区大小是 512B SD卡 SDIO模式 可以直接在cubeMX里一键设置 先设置好SD卡的设置 这个是选择支持中文 其余是默认 这个是检测引脚可以留空 当SD卡插入拔出…

唯美社区源码AM社区同款源码

源码介绍 唯美社区源码AM社区同款源码 后端修改application.properties文件内容为你的数据库 前端修改/config/config.js文件内容为你的后端地址 这两个文件里要修改的地方我已经用中文标注出来了 截图 源码免费下载 唯美社区源码AM社区同款源码

现代Web应用的多标签选择组件:设计哲学与工程实践

引言:标签选择的重要性与挑战 在信息爆炸时代,标签系统已成为内容组织的核心基础设施。研究表明: 使用标签系统的平台用户留存率提高35% 良好的标签选择体验可提升内容发现效率58% 80%的用户更倾向于使用提供可视化标签选择的应用 本文将…

P3799 小 Y 拼木棒

题目背景 上道题中,小 Y 斩了一地的木棒,现在她想要将木棒拼起来。 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案对 1097 取模。 输入格式 第一行一个整数 n。 第…

Perl 条件语句

Perl 条件语句 引言 在编程中,条件语句是执行分支逻辑的关键部分。Perl 作为一种强大的脚本语言,提供了丰富的条件语句,使得开发者能够根据不同的条件执行不同的代码块。本文将深入探讨 Perl 中的条件语句,包括 if、unless、els…

流量特征分析-蚁剑流量分析

任务: 木马的连接密码是多少 这是分析蚁剑流量,可能是网站的,wireshark过滤http 追踪流http得到 1就是连接密码 flag{1}黑客执行的第一个命令是什么 取最后的执行命令。base64解密得 除了id不是蚁剑自带的命令,其他的都是&…

问题1:Sinal 4在开启PAC检查的设备崩溃

​ 问题信息 硬件不支持PAC(Pointer Authentication),此类错误就是signal 11的错误,崩溃信息如下: Build fingerprint: google/sdk_gphone64_arm64/emu64a:16/BP22.250221.010/13193326:userdebug/dev-keys Revision: 0 ABI: arm64 Timestamp: 2025-04-06 11:33:13.923…