数据库基础 -- 数据库约束
数据库基础 – 数据库约束
1.约束
1.1 概念
约束是用于强制数据库中数据 完整性 和 一致性 的规则。它们定义了对表中数据的限制,确保数据的有效性和正确性,实际上就是表中数据的限制条件。
1.2 分类
1.2.1 完整性约束
- 主键约束(Primary Key Constraint):确保每行数据在指定列或列组合上具有唯一标识,并且不能出现null值。
- 外键约束(Foreign Key Constraint):确保表中外键列的值必须存在于另一个表的主键列中,保持引用完整性。
- 唯一约束(Unique Constraint):确保指定列中的所有值都是唯一的,但允许包含null值。
- 自增约束(Auto Increment Constraint):确保在插入新纪录时,列中的值会自动按顺序递增。
1.2.2 数据格式约束
- 默认约束:用于确保特定列中的值满足指定的条件,例如范围、格式等,以确保数据的一致性。
- 零填充约束:确保列中的值采用零填充以达到特定长度的要求。
1.2.3 空值约束
- 非空约束:用于确保特定列中的值满足指定的条件,例如范围、格式等,以确保数据的一致性。
2. 常用约束介绍
2.1 主键约束
2.1.1 介绍
主键约束(Primary Key Constraint) 是一个列或多个列的组合,其值能唯一标识表中的每一条记录,方便在关系型数据库中快速查找某一行数据。主键约束不允许列中出现重复值和空值,创建主键约束时,系统会默认在所在列和列组合上建立对应的唯一索引。
2.1.2 创建方式
- 直接在字段后声明主键
CREATE TABLE 表名(字段名 数据类型 PRIMARY KEY
);
- 在所有字段最后声明
CREATE TABLE `user`(`user_id` INT,`user_name` VARCHAR(100),`high` DOUBLE,PRIMARY KEY(`user_id`)
);
2.2 外键约束
2.2.1 介绍
外键约束定义的是表之间的关系。当一个表中的一个列或多个类的组合和其他表中的主关键字定义相同,就可以把这些列或列的组合定义为外关键字。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据。
2.2.2 创建方式
#先创建一个学生表
CREATE TABLE `student` (`stu_id` INT PRIMARY KEY,`stu_name` VARCHAR(20),`stu_sex` INT,`stu_age` INT,`stu_class` VARCHAR(20),
);#创建班级表,并关联外键
CREATE TABLE `class` (`class_id` INT PRIMARY KEY,`stu_id` INT,`class_name` VARCHAR(20),`stu_count` INT,FOREIGN KEY (`stu_id`) REFERENCE `student`(`stu_id`),
);
2.3 唯一性约束
2.3.1 介绍
唯一性学术指多个列的组合的值具有唯一性,以防止在列中输入重复值。唯一性约束的字段可以为null。由于主键具有唯一性,因此当一个字段设置为主键后就不用再设置唯一性约束。
2.3.2 创建方式
CREATE TABLE `student` (`stu_id` INT PRIMARY KEY,`stu_name` VARCHAR(20),`stu_sex` INT,`stu_age` INT,`stu_class` VARCHAR(20) UNIQUE,
);
# 由于一个学生只能对应一个班级,因此班级名称被设为唯一性约束
2.4 自增约束
2.4.1 介绍
一个表只能有一个自增约束,并且自增约束的列只能是 INT型。一般来说自增将会用于主键,通过自增的方式给每一条表记录添加一个主键。
2.4.2 创建方式
CREATE TABLE `student` (`stu_id` INT AUTO INCREMENT PRIMARY KEY,`stu_name` VARCHAR(20),`stu_sex` INT,`stu_age` INT,`stu_class` VARCHAR(20) UNIQUE,
);
#添加自增约束后,stu_id将会从1开始,每插入一条记录时stu_id将会+1
2.5 非空约束
2.5.1 介绍
非空约束将会禁止添加该约束的字段禁止为空
创建方式
CREATE TABLE `student` (`stu_id` INT AUTO INCREMENT PRIMARY KEY,`stu_name` VARCHAR(20) NOT NULL,`stu_sex` INT,`stu_age` INT,`stu_class` VARCHAR(20) UNIQUE,
);
相关文章:
数据库基础 -- 数据库约束
数据库基础 – 数据库约束 1.约束 1.1 概念 约束是用于强制数据库中数据 完整性 和 一致性 的规则。它们定义了对表中数据的限制,确保数据的有效性和正确性,实际上就是表中数据的限制条件。 1.2 分类 1.2.1 完整性约束 主键约束(Primary Key Const…...
U盘文件或目录损坏无法读取?专业恢复策略全解析
U盘困境:文件目录的隐形危机 在日常的数字生活中,U盘作为便捷的数据存储与传输工具,扮演着至关重要的角色。然而,当U盘中的文件或目录突然遭遇损坏,导致无法被正常读取时,这无疑给用户带来了极大的困扰。这…...
dpdk实现udp协议栈
使用DPDK实现UDP用户态协议栈,实现流程中包括: 三类线程 1、收发包线程 2、用户态协议栈线程 3、udp服务端线程 两类缓冲区: 1、协议栈收包缓冲区和协议栈发包缓冲区 2、udp收包缓冲区和udp发包缓冲区 协议栈缓冲区中存储的数据是str…...
Shell编程——基础语法(2)和 Shell流程控制
文章目录 基础语法(2)echo命令read命令printf命令test命令 Shell流程控制if-else语句for 循环while 语句until 循环case ... esac跳出循环 基础语法(2) echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于…...
Python基础教程(二)字符串和函数
6.字符串 6.1 字符串的表示方式 6.1.1 普通字符串 普通字符串指用单引号()或双引号(”")括起来的字符串。例如:Hello或"Hello" >>> Hello Hello >>> "Hello" Hello >>> s\u0048\u0065\u006c\u006c\u006f >>> …...
智算新风向丨趋动科技获中国信通院泰尔实验室首张智算资源池化能力泰尔测评证书
近日,趋动科技“OrionX AI算力资源池化软件”经中国泰尔实验室依据《FG-Z14-0172-01智算资源池化平台测试方案》评估测试,获得智算资源池化能力泰尔测评证书,成为该领域首个完成此评价的产品。 图1.OrionX通过智算资源池化平台评测 随着AI大…...
计算机基础(Windows 10+Office 2016)教程 —— 第4章 计算机网络与Internet(上)
第4章 计算机网络与Internet 4.1 计算机网络概述4.1.1 计算机网络的定义4.1.2 计算机网络的发展4.1.3 计算机网络的功能4.1.4 计算机网络体系结构和TCP/IP 参考模型 4.2 计算机网络的组成和分类4.2.1 计算机网络的组成4.2.2 计算机网络的分类 4.3 网络传输介质和通信设备4.3.1 …...
MES系统在数字化转型中的核心作用与影响
数字化转型是企业利用数字技术改变其业务模式、运营方式、组织结构、产品服务等方面的过程,旨在提高效率、降低成本、增强竞争力并实现可持续发展。数字化转型涉及多个层面,主要包括以下几个方面: 数字化转型转什么 转战略:由构…...
装修施工注意事项
1 地漏保护 咋墙拆改时,一定要用保护盖把所有的地漏下水管道都拧紧 2 卫生间防水做完,必须要先用水泥砂浆做好保护层再贴,不然后续施工,不小心破坏防水层,以后漏水后悔都晚了。 3 入户门口处,一定要用…...
【Docker学习记录】
Docker学习记录 目录 1. Windows上使用wsl1.1 安装docker后遇到的一些疑惑1.2. wsl的一些相关命令1.3. 补一点,wsl的作用 2. docker一些常用的命令2.1 构建docker镜像2.2 运行镜像 3. Dockerfile的编写3.0 docker的一些概念3.0.1 容器的分层3.0.2 COPY-ON-WRITE 3.…...
互联网政务应用安全管理规定
互联网政务应用安全管理规定 (2024年2月19日中央网络安全和信息化委员会办公室、中央机构编制委员会办公室、工业和信息化部、公安部制定 2024年5月15日发布) 第一章 总则 第一条为保障互联网政务应用安全,根据《中华人民共和国网络安全法…...
HarmonyOS开发商城首页实现
目录 一:功能概述 二:代码实现 三:效果图 一:功能概述 这一节我们主要在鸿蒙OS系统中实现的一个底部导航功能,并在首页底部使用TabSwitch组件进行导航切换。同时,首页采用Search组件实现商品搜索框,Scroll和Swiper组件实现图片轮播功能,以展示推荐内容或图片。 1:…...
QtQuick Text-文本样式
属性 Text项目的style属性可以设置文本的样式。 支持的文本样式有: Text.Normal(默认)Text.OutlineText.RaisedText.Sunken 示例 import QtQuickRow{spacing: 10padding: 10Text {font.pointSize: 40text: "Normal"}Text {font…...
人工智能未来展望
深入剖析人工智能:现状、挑战与未来展望 在当今这个日新月异的科技时代,人工智能(AI)无疑是最为耀眼的明星之一。它以其独特的魅力,正引领着一场前所未有的技术革命,深刻地改变着人类社会的方方面面。本文…...
Pymol开源版安装 新版 3.0 / 3.1 Windows安装Pymol开源版
PyMOL 简介 PyMOL 是一个开源的分子可视化系统,被广泛应用于结构生物学中。它允许用户可视化分子结构,并创建高质量的蛋白质、核酸和其他大分子的3D图像。多年来,PyMOL不断发展,新版本引入了更多的功能和改进。 PyMOL 3.0 / 3.1…...
记录一次环境的安装
目录 新添加的代码 代码解释 为啥ubuntu用debian软件源 为啥修改sources.list.d S权限意思 php缺少和数据库连接的模块 使用root登陆数据库1698错误 字段解释 auth_socket解释 使用root登陆数据库方法 详细解释 首先在安装的时候,有一个dockerfile文件&a…...
浏览器用户文件夹详解 - WebData(八)
1.WebData简介 1.1 什么是WebData文件? WebData文件是Chromium浏览器中用于存储用户表单数据、自动填充信息和支付信息的一个重要文件。每当用户在浏览器中填写表单或保存支付信息时,这些数据都会被记录在WebData文件中。通过这些记录,浏览…...
ijkplayer 自定义协议播放加密内容 Android
想对播放的音视频进行加密,防止资源被盗用,该怎么办呢? 这篇文章从自定义协议的角度来提供一中实现思路。在 ijkplayer 的基础上,通过实现自定义协议对文件进行解密。边解边播,以此为基础,还可以实现在线资…...
【kill】Centos/Linux 如何杀死那该死的进程?
简介 系统版本:Centos7.6 kill 命令发送指定的信号到指定的进程或者进程组。如果该信号没有指定,则发送SIGTERM信号(15),即终止信号。如果SIGTERM信号(15)无法终止,可使用SIGKILL&am…...
Cadence23学习笔记(十七)
吴老师的网站里面有很多cadence的开源项目,可以用来学习: 全志 H3 SOC 官方参考设计 DD3 16bitX2 原理图及PCB – 吴川斌的博客 (mr-wu.cn) cadence设置显示实时的走线长度: 在allegro进行布线时可以实时显示当先布线的实际长度有助于pcb的…...
JavaScript自动化PPT生成革命:如何用代码解放你的演示文稿创造力
JavaScript自动化PPT生成革命:如何用代码解放你的演示文稿创造力 【免费下载链接】PptxGenJS Build PowerPoint presentations with JavaScript. Works with Node, React, web browsers, and more. 项目地址: https://gitcode.com/gh_mirrors/pp/PptxGenJS 在…...
交互式图可视化实战:从D3.js力导向图到OpenClaw-NemoClaw项目解析
1. 项目概述与核心价值最近在折腾一些交互式数据可视化项目时,发现了一个挺有意思的仓库:erissatallan/OpenClaw-NemoClaw-Interactive-Graph。光看名字,你可能会觉得有点摸不着头脑,又是“Claw”又是“Nemo”的。简单来说&#x…...
深蓝词库转换:3分钟解决你的输入法迁移难题
深蓝词库转换:3分钟解决你的输入法迁移难题 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否曾经因为更换输入法而不得不放弃多年积累的个人词库&am…...
MacType字体渲染终极指南:让Windows文字显示如macOS般清晰锐利
MacType字体渲染终极指南:让Windows文字显示如macOS般清晰锐利 【免费下载链接】mactype Better font rendering for Windows. 项目地址: https://gitcode.com/gh_mirrors/ma/mactype 还在为Windows系统下模糊的字体显示效果而烦恼吗?作为追求极致…...
零基础教程:已知 IP 如何反查域名?方法全都教给你
知道网络IP怎么反查出真实域名来?给大家分享几个我常用的方法,就算你不懂技术你都能查得出来! 一、fofa 这是一个白帽黑客非常喜欢用的社工平台,只要你输入IP就能查到很多背后的信息。 传送门:https://fofa.info 二、…...
虚拟电厂 + 微电网,万亿能源新赛道已来临
近期能源圈有个很有意思的现象:很多做虚拟电厂的企业开始布局微电网业务了,纷纷将微电网作为核心赛道,这背后绝非偶然。虚拟电厂(VPP)数字大脑,必须落地到实体微电网这个“躯体”,才能真正商业化…...
告别CAN总线数据乱码:手把手教你用Python实现ISO15765协议拆包(附完整代码)
告别CAN总线数据乱码:手把手教你用Python实现ISO15765协议拆包(附完整代码) 在汽车电子和物联网开发领域,CAN总线通信是核心技术之一。当我们需要从CAN分析仪或硬件接口获取原始数据时,经常会遇到数据包被分割成多个帧…...
Renesas RZ/T2M双核Cortex-R52在工业控制中的应用
1. Renesas RZ/T2M双核Cortex-R52 MPU深度解析在工业自动化和机器人控制领域,实时性和精确性始终是系统设计的核心挑战。Renesas最新推出的RZ/T2M微处理器单元(MPU)正是针对这一需求而生,其双核Arm Cortex-R52架构和800MHz主频为高性能伺服驱动提供了硬件…...
华恒智信助力高速成长型科技行业完成敏捷任职资格体系重塑
在业务以月为单位高速迭代的当下,许多科技型企业的管理者正面临一个日益尖锐的矛盾:前端市场拼命抢时间,产品线两周一个版本,研发团队加班加点赶上线,但核心人才的晋升评估却依然被锁定在“年底考核、论资排辈”的传统…...
SQL 第二篇:表结构设计(为什么企业要拆成 3 张表)
一、前言上一篇我们已经完成了 CRUD。但是你会发现一个问题:用户的信息越来越多比如:用户名密码手机号邮箱性别生日收货地址默认地址省市区这时候很多初学者会这样干:全部塞进 user 表最后 user 表会越来越臃肿。所以这一篇,我们正…...
