5.1 实体完整性
一个表只能有一个主键约束,且主键约束不能取空值。
通过unique约束定义唯一性,为了保证一个表非主键列不输入重复值,可在该列定义unique约束。
primary key约束与unique约束主要区别如下。
(1)一个表只能创建一个primary key约束,但可创建多个unique约束。
(2)primary key约束的列值不允许为空值,unique约束的列值可取空值。
(3)创建primary key约束时,系统会自动产生primary key索引。创建unique约束时,系统会自动产生unique索引。
primary key约束与unique约束都不允许对应列存在重复值。
5.1.1 主键约束
MySQL的主键列必须遵守以下规则:
(1)每个表只能定义一个主键。
(2)表中的两条记录在主键上不能具有相同的值,即遵守“唯一性规则”。
(3)如果从一个复合主键中删除一列后,剩下的列构成的主键仍然满足唯一性原则,那么,这个复合主键是不正确的,这就是“最小化规则”。
(4)一个列名在复合主键的列表中只能出现一次。
1.在创建表时创建主键约束
【例8.1】在数据库study中创建"课程1"表,以列级完整性约束方式定义主键。
create table 课程1(课程号 char(4) not null primary key,课程名 char(16) not null,学分 tinyint null);
【例8.2】在数据库stusys中创建course2表,以表级完整性约束方式定义主键。
create table 课程2(课程号 char(4) not null, 课程名 char(16) not null, 学分 tinyint null, primary key(课程号));
【例8.3】在数据库stusys中创建course3表,以表级完整性约束方式定义主键,并指定主键约束名称。
create table 课程3(课程号 char(4) not null primary key,课程名 char(16) not null,学分 tinyint null,constraint pk_课程3 primary key(课程号));
2.删除主键约束
语法格式:
alter table<表名> drop primary key;
【例8.4】删除例8.3创建的在course3表上的主键约束。
alter table 课程3drop primary key;
3.在修改表时创建主键约束
语法格式:
alter table<表名>
add ( [ constraint T < 约束名 > ] primary key ( 主键列名 )
【例8.5】重新在course3表上定义主键约束。
alter table 课程3add constraint pk_课程3 primary key(课程号);
5.1.2唯一性约束
唯一性约束的值必须是唯一的,不允许重复。一个表可创建多个唯一性约束。
1.在创建表时创建唯一性约束
【例8.6】在数据库stusys中创建course4表,以列级完整性约束方式定义唯一性约束。
create table 课程4(课程号 char(4) not null, 课程名 char(16) not null unique, 学分 tinyint null);
在课程名列定义的后面加上unique关键字,列级定义唯一性约束,未指定约束名字,MysQL自动创建约束名字。
【例8.7】在数据库stusys中创建course5表,以表级完整性约束方式定义唯一性约束。
create table 课程5(课程号 char(4) not null, 课程名 char(16) not null unique, 学分 tinyint null,constraint uk_课程5 unique(课程名));
在表中所有列定义的后面加上一条constraint子句,表级定义唯一性约束,指定约束名字为uk_课程5。
2.删除唯一性约束
语法格式:
alter table<表名>drop index<约束名>;
【例8.8】删除例8.7在course5表创建的唯一性约束。
alter table 课程5drop index uk_课程5;
3.在修改表时创建唯一性约束
语法格式:
alter table<表名>
add ( [ constraint < 约束名 > ] unique ( 唯一性约束列名 )
【例8.9】重新在course5表上定义唯一性约束。
alter table 课程5add constraint uk_课程5 primary key(课程名);
相关文章:
5.1 实体完整性
一个表只能有一个主键约束,且主键约束不能取空值。 通过unique约束定义唯一性,为了保证一个表非主键列不输入重复值,可在该列定义unique约束。 primary key约束与unique约束主要区别如下。 (1)一个表只能创建一个primary key约束࿰…...
(学习笔记)数据基建-数据质量
数据基建-数据质量 数据质量数据质量保障措施如何推动上下游开展数据质量活动数据质量保障如何量化产出数据质量思考全链路数据质量保障项目 数据质量 概念:数据质量,意如其名,就是数据的准确性,他是数据仓库的基石,控…...
WINUI——Behavior(行为)小结
前言 在使用MVVM进行WINUI或WPF开发时,Command在某些时候并不能满足逻辑与UI分离的要求。这时肯定就需要其它技术的支持,Behavior就是一种。在WPF中是有Behavior直接支持的,转到WINUI后,相对有一些麻烦,于是在此记录之…...
Ruoyi5.x RuoYi-Vue-Plus新建Translation翻译类
若依框架(RuoYi)中的Translation翻译类主要作用在于实现字段值的转换或翻译功能,以提高数据展示的准确性和友好性。以下是其具体作用的一些关键点: 字段值转换:若依框架在处理数据时,有时需要将某些字段的…...
类加载的奥秘
一、类的加载过程将类的字节码文件加载到Java虚拟机中进行执行。 1.通过一个类的全限定名来获取定义此类的二进制流字节码文件(如zip 包、网络、运算生成、JSP 生成、数据库读取等)。 2.将这个字节流所代表的静态存储结构(如常量池、字段、方法等)转化为…...
Spring知识点总结
1. 简介一下Spring框架。 答:Spring框架是一个开源的容器性质的轻量级框架。主要有三大特点:容器、IOC(控制反转)、AOP(面向切面编程)。 2. Spring框架有哪些优点?谈谈你的看法。 答ÿ…...
STM32Cube系列教程11:STM32 AES加解密模块性能测试
文章目录 本次测试环境本次测试所使用的系统时钟为48MHz本次测试主要测试对大量数据进行加解密所需的时间,本次为不严谨测试,忽略了程序调用耗时,结果仅供参考。 AES算法与数据加解密加密与解密对称加解密AES算法AES-ECBAES-CBC 填充算法PKCS…...
Vue2基础:.sync修饰符的使用,认识,作用,本质案例演示,实现父子之间的通信。
.sync的作用: 可以实现子组件与父组件数据的双向绑定,简化代码。 与v-model的不同点,prop属性名可以自定义,不要一定要用value. .sync的本质: 就是:属性名和update:属性名合写。 下面我们进行代码演示…...
【数据结构与算法】使用单链表实现队列:原理、步骤与应用
💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 目录 一、引言 🎄队列的概念 🎄为什么要用单链表实现队列 二、单…...
DHCP服务
文章目录 一、DHCP介绍二、DHCP应用场景三、DHCP工作原理3.1)工作方式3.2)工作原理解析3.3)计算机获得IP的时间点3.4)租约更新阶段 四、DHCP服务器部署4.1)DHCP安装4.2)DHCP配置文件详解4.3)DHCP启动 五、D…...
C++笔试-剑指offer
剑指offer 文章目录 剑指offer数组[数组中重复的数据 ](https://leetcode.cn/problems/find-all-duplicates-in-an-array/description/)将元素交换到对应的位置 二维数组中的查找二叉搜索树 旋转数组的最小数字二分查找 数组中出现次数超过一半的数字相互抵消 连续子数组的最大…...
Mac安装jadx并配置环境
jadx官网:GitHub - skylot/jadx: Dex to Java decompiler 第一种: 安装jadx命令: brew install jadx 启动jadx-gui命令: jadx-gui 可能遇到的问题: Downloading https://formulae.brew.sh/api/formula.jws.json** h…...
前端学习----css基础语法
CSS概述 CAscading Style Sheets(级联样式表) CSS是一种样式语言,用于对HTML文档控制外观,自定义布局等,例如字体,颜色,边距等 可将页面的内容与表现形式分离,页面内容存放在HTML文档中,而用于定义表现形式的CSS在一个.css文件中或HTML文档的某一部分 HTML与CSS的关系 HTM…...
超详解——python条件和循环——小白篇
目录 1. 缩进和悬挂else 2. 条件表达式 3. 和循环搭配的else 4. 可调用对象 总结: 1. 缩进和悬挂else 在Python中,代码块是通过缩进来表示的。条件判断和循环结构的代码块需要正确缩进。悬挂else指的是else子句和相应的if或循环在同一级别的缩进。 …...
DNS协议 | NAT技术 | 代理服务器
目录 一、DNS协议 1、DNS背景 2、DNS协议 域名 域名解析 二、NAT技术 1、NAT技术 2、NAPT技术 3、NAT技术的缺陷 三、代理服务器 1、正向代理服务器 2、反向代理服务器 一、DNS协议 域名系统(Domain Name System,缩写:DNS&#…...
深入ES6:解锁 JavaScript 类与继承的高级玩法
个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! ES5、ES6介绍 文章目录 💯Class🍟1 类的由来🍟2 co…...
领域驱动设计:异常处理
一、异常的处理 异常处理是领域模型要考虑的一部分,原因在于模型的责任不可能无限大。在遇到自己处理能力之外的情况时,要采用异常机制报告错误,并将处理权转交。异常就是这样一种机制,某种程度上,它可以保证领域模型…...
网络网络层之(6)ICMPv6协议
网络网络层之(6)ICMPv6协议 Author: Once Day Date: 2024年6月2日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CS…...
《大道平渊》· 拾壹 —— 商业一定是个故事:讲好故事,员工奋发,顾客买单。
《大道平渊》 拾壹 "大家都在喝,你喝不喝?" 商业一定是个故事,人民群众需要故事。 比如可口可乐的各种故事。 可口可乐公司也只是被营销大师们, 作为一种故事载体,发挥他们的本领。 营销大师们开发故事…...
JavaScript 如何访问本地文件夹
在浏览器环境中的JavaScript(通常指的是前端JavaScript)由于安全限制,无法直接访问用户的本地文件或文件夹。这是为了防止恶意脚本访问并窃取用户的敏感数据。 但是,有几种方法可以间接地让用户选择并访问本地文件: 使…...
ArrayList顺序表简单实现
一、创建MyArrayList框架 1.1 MyArrayList 类中实现 arr 数组 import java.util.Arrays;public class MyArrayList {private int[] arr;private int usesize;private static final int P 10;public MyArrayList() {arr new int[P];} 在 MyArrayList 类内创建 arr 数组&…...
144、二叉树的前序递归遍历
题解: 递归书写三要素: 1)确定递归函数的参数和返回值。要确定每次递归所要用到的参数以及需要返回的值 2)确定终止条件。操作系统也是用栈的方式实现递归,那么如果不写终止条件或者终止条件写的不对,都…...
youtube 1080 分辨率 下载方式
YouTube 1080p Video Downloader 这张图像代表了Autodesk Maya中一个名为rocket_body_MAT的材质的着色器网络。下面是对节点及其连接的细分: 节点 place2dTexture12: 该节点用于控制2D纹理在表面上的位置映射。输出: Out UVrocket_body2.jpg: 该节点代表一个纹理文件,具体是…...
计算机网络ppt和课后题总结(下)
常用端口总结 计算机网络中,端口是TCP/IP协议的一部分,用于标识运行在同一台计算机上的不同服务。端口号是一个16位的数字,范围从0到65535。通常,0到1023的端口被称为“熟知端口”或“系统端口”,它们被保留给一些标准…...
测试基础12:测试用例设计方法-边界值分析
课程大纲 1、定义 经验发现,较多的错误往往发生在输入或输出范围的边界上,因为边界值是代码判断语句的点,一般容易出问题(数值写错、多加或丢失等号、写错不等号方向…)。所以增加对取值范围的边界数据的测试ÿ…...
AI大模型在健康睡眠监测中的深度融合与实践案例
文章目录 1. 应用方案2. 技术实现2.1 数据采集与预处理2.2 构建与训练模型2.3 个性化建议生成 3. 优化策略4. 应用示例:多模态数据融合与实时监测4.1 数据采集4.2 实时监测与反馈 5. 深入分析模型选择和优化5.1 LSTM模型的优势和优化策略5.2 CNN模型的优势和优化策略…...
【西瓜书】9.聚类
聚类任务是无监督学习的一种用于分类等其他任务的前驱过程,作为数据清洗,基于聚类结果训练分类模型 1.聚类性能度量(有效性指标) 分类任务的性能度量有错误率、精度、准确率P、召回率R、F1度量(P-R的调和平均)、TPR、FPR、AUC回归…...
使用jemalloc实现信号驱动的程序堆栈信息打印
使用jemalloc实现信号驱动的程序堆栈信息打印 本文介绍应用如何集成jemalloc,在接收到SIGUSR1信号10时打印程序的堆栈信息。 1. 编译jemalloc 首先,确保你已经编译并安装了启用prof功能的jemalloc。以下是ubuntu18.04上的编译步骤: git c…...
树的4种遍历
目录 树的四种遍历方式的总结 1. 前序遍历(Pre-order Traversal) 2. 中序遍历(In-order Traversal) 3. 后序遍历(Post-order Traversal) 4. 层序遍历(Level-order Traversal 或 广度优先遍…...
深入探讨5种单例模式
文章目录 一、对比总览详细解释 二、代码1. 饿汉式2. 饱汉式3. 饱汉式-双检锁4. 静态内部类5. 枚举单例 三、性能对比 一、对比总览 以下是不同单例模式实现方式的特性对比表格。表格从线程安全性、延迟加载、实现复杂度、反序列化安全性、防反射攻击性等多个方面进行考量。 …...
wordpress标题怎么写/百度网址名称是什么
题目要求 问题描述:一个正整数有可能可以被表示为 n(n>2) 个连续正整数之和,如: 1512345 15456 1578 编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。 样例输入:15 样例输出…...
环保业网站建设的策划/提高工作效率的工具
冷水江免费上门监控安装店 [sw888lsa]、系统集成:楼宇自控、电话交换机、机房工程、监控系统、防盗报警、公共广播、门禁系统、楼宇对讲、一卡通、停车管理、消防系统。、网络维护:WIFI覆盖,机房建设,机房维护,服务器维…...
英文网站建设服务合同模板/网络舆情优化公司
1、为什么选定了webmagic? webmagic的doc文档地址:http://webmagic.io/docs/zh/ 刚开始做的时候采用的是 httpclienthtmlparserdom4j,主要说下为什么使用了dom4j,现在的webmagic也是采用了dom4j,这里主要是需要解析一个…...
有哪些网站免费做推广/做网络推广为什么会被抓
一、源码描述 jsp大学生表彰与公示系统 是一套完善的信息管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 程序下载链接:https://download.csdn.net/download/qq_41221322/19091477 二、功能介绍 本平台利用现在比较广泛…...
学做网站好吗/cps游戏推广平台
如何使用公钥加密大文件,以便除了拥有私钥的人之外没有人能够解密它?我可以制作RSA公钥和私钥,但是在使用此命令加密大文件时:openssl rsautl -encrypt -pubin -inkey public.pem -in myLargeFile.xml -out myLargeFile_encrypted.xml我怎样才能执行解密…...
网站备案申请模板/大数据分析培训机构
p {width: 4rem;height: .6rem;text-align: justify;display: inline-block;vertical-align: top; } u{width:100%;display: inline-block; } <p>全球数字医学进展和标准<span>发布地</span><u></u></p> <p> 数字医学创新技术领域的…...