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

数据库基础 -- 数据库约束

数据库基础 – 数据库约束

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的…...

如何在普通PC上体验macOS?黑苹果长期维护机型EFI完全指南

如何在普通PC上体验macOS?黑苹果长期维护机型EFI完全指南 【免费下载链接】Hackintosh Hackintosh long-term maintenance model EFI and installation tutorial 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintosh 你是否渴望在普通PC上体验macOS的优…...

基于LSTM神经网络的锂电池SOH估算模型(NASA数据集)【MATLAB】

基于LSTM神经网络的锂电池SOH估算模型(NASA数据集) 在新能源与储能技术飞速发展的今天,锂离子电池的健康状态(State of Health, SOH)监测成为了电池管理系统(BMS)中至关重要的一环。准确估算SOH…...

KV260 视觉 AI 套件实战--从零部署到网络互联(Ubuntu+SSH)

1. KV260视觉AI套件开箱初体验 第一次拿到KV260视觉AI套件时,给我的感觉就像收到了一台迷你工作站。这个巴掌大的开发板搭载了Xilinx的Zynq UltraScale MPSoC芯片,集成了四核ARM Cortex-A53处理器和可编程逻辑单元,专为边缘AI视觉应用设计。套…...

国标GB28181平台EasyGBS筑牢智慧交通视频安全技术底座

传统交通安防系统往往面临设备异构难以统一管理、视频共享存在安全隐患、应急处置响应迟缓等痛点。作为深耕视频监控领域的国标GB28181平台,EasyGBS创新性地将国密GB35114安全能力全面融入产品架构,为智慧交通打造了一个“可视、可控、可管、可信”的一体…...

【多模态大模型落地自动驾驶实战白皮书】:20年智驾专家首曝3大失败场景、5类传感器融合陷阱与实时推理优化黄金公式

第一章:多模态大模型在自动驾驶中的应用 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型正深刻重塑自动驾驶系统的感知、推理与决策范式。传统 pipeline 架构依赖独立模块分别处理摄像头、激光雷达、毫米波雷达及高精地图数据,而多模态大模…...

基于LLM的高校招生智能问答系统

一、 研究目的 本研究旨在利用大语言模型(LLM)强大的自然语言理解与生成能力,解决当前高校招生咨询工作中存在的痛点与瓶颈。随着高等教育普及化程度的加深,每年招生季高校需面对海量、重复且时效性极强的咨询需求。传统的人工客服模式受限于人力成本、工作时间及答复一致…...

STM32 RTC实战:从零构建高精度实时时钟系统

1. STM32 RTC模块基础入门 第一次接触STM32的RTC功能时,我完全被那些专业术语搞晕了。什么BCD码、影子寄存器、异步预分频...听起来就像天书一样。但实际用起来才发现,这玩意儿就是个高级版的电子表,只不过能集成到你的电路板里。 RTC全称是R…...

有哪些AI生成软件能写出逻辑清晰的毕业论文(非抄袭向)?

选择能写出逻辑清晰、非抄袭毕业论文的 AI 工具,核心是选学术专用、长文本逻辑强、支持真实文献、可降 AI 率的工具。以下是 2026 年实测好用、适合毕业论文全流程的主流软件,按中文 / 英文、文科 / 理工、免费 / 付费分类推荐:一、中文论文首…...

爱毕业(aibiye)提供AI驱动的数学建模论文复现和智能排版解决方案

还在为论文写作头痛?特别是数学建模的优秀论文复现与排版,时间紧、任务重,AI工具能帮上大忙吗?今天,我们评测10款热门AI论文写作工具,帮你精准筛选最适合的助手。 aibiye:专注于语法润色与结构…...

ST7789显示屏驱动终极实战:STM32硬件SPI与DMA性能提升完整指南

ST7789显示屏驱动终极实战:STM32硬件SPI与DMA性能提升完整指南 【免费下载链接】ST7789-STM32 using STM32s Hardware SPI to drive a ST7789 based IPS displayer 项目地址: https://gitcode.com/gh_mirrors/st/ST7789-STM32 想象一下,你正在为你…...