【数据库原理复习】ch4 完整性约束 SQL定义
这里写目录标题
- 基本概念
- 实体完整性
- 参照完整性
- 违规处理
- 用户自定义完整性
- 约束条件定义
- 完整性约束命名字句
基本概念
完整性约束主要包括
- 实体完整性
- 参照完整性
- 用户自定义完整性
实体完整性
关系模型中实体完整性通常在建表时候添加primary key完成
# primary key定义
create table tab(xxxx primary key, # 列级完整性约束定义xxxx,xxxx....
)create table tab(xxx,xxx,xxx,primary key (var1, var2,.....) # 表级完整性约束定义,如果有多个只能在表级定义)
- 主键必须唯一,如果不唯一拒绝插入或修改
- 主键各个属性不允许为空,只要有一个为空拒绝插入或修改
保证主键上述两种特点,DBMS主要采取以下方式:
- 全表扫描
- 索引
参照完整性
关系模型用foreign key保证
# 外键定义
create table sc(xxxx,xxxx,xxxx,foreign key (var1) references xx_tab(var2) # 在表级定义参照完整性on delete cascade # 删除时候级联(被参照表)on update no action # 在更新时候拒绝(被参照表))
违规处理
- 修改参照表只要涉及外键字段,例如插入元组、修改外码值,都会直接拒绝
- 对于被参照表,如果是删除元组或者修改主码值,可以拒绝可以级联可以设置为空值
用户自定义完整性
约束条件定义
- 列值非空(not null)
- 列值唯一(unique)
- 列值上是否符合表达式(check)
# 主要说明check定义
create table tab(xxx,xxx,xxx,sex char(2) check(sex in ('男', '女')), # 定死性别只能取男或者女xxx
)
# check也可以在元组上定义完整性约束
create table tab(xxx,xxx,xxx,check (sex = '女' or name not like 'Ms.%') # 定义name与sex两个属性之间的约束条件
)
- 如果约束条件不被满足,DBMS直接拒绝执行
完整性约束命名字句
# constaint语句
constraint <完整性约束条件名称>
[primary key 短语
|foreign key 短语
|check 短语]# e.g.
create table tab(sno numeric(6)constraint c1 check (sno between 90000 and 99999),sname char(20),constraint c2 not null,sage numeric(3),constraint c3 check(sage < 30),xx,constraint studentkey primary key (sno)
)alter table tab
add constraint c1 check xxxx
alter table tab
drop constraint c1
- constraint可以定义任何一种完整性约束,而且为其表面名称,好处是名称自定义,可以进行删除约束条件。
- 如果像上面直接给出not null,unique等条件,SqlServer会自动为其添加名称,一般名称都有规律。像主键约束一般叫pk_xxxx。
相关文章:
【数据库原理复习】ch4 完整性约束 SQL定义
这里写目录标题基本概念实体完整性参照完整性违规处理用户自定义完整性约束条件定义完整性约束命名字句基本概念 完整性约束主要包括 实体完整性参照完整性用户自定义完整性 实体完整性 关系模型中实体完整性通常在建表时候添加primary key完成 # primary key定义 create …...
【2023年的就业形势依旧严峻】
2023年口罩放开的第一年,也是第一个招聘会,挤满了求职者和用人单位,大多数都是想着重新开始,抓住金三银四的好时机,找到心仪的工作和符合岗位要求的人才,一起整装出发。我们理想的状态是,经济已…...
Linux下LED灯驱动模板详解
一、地址映射我们先了解MMU,全称是Memory Manage Unit。在老版本的Linux中要求处理器必须有MMU,但是现在Linux内核已经支持五MMU。MMU主要完成的功能如下:1、完成虚拟空间到物理空间的映射2、内存保护,设置存储器的访问权限&#…...
【C++】你不得不爱的——继承
凡是面向对象的语言,都有三大特性,继承,封装和多态,但并不是只有这三个特性,是因为者三个特性是最重要的特性,那今天我们一起来看继承! 目录 1.继承的概念及定义 1.概念 2.继承的定义 2.基类…...
数据库系统概论
文章目录前言基础篇:1-5章第 1 章 绪论1.1 数据库系统概述1.2 数据模型1.3 数据库系统的结构1.4 数据库系统的组成1.5 小结第 2 章 关系数据库1.关系模型1.1 关系数据结构1.2 关系完整性约束实体完整性、参照完整性、用户定义完整性2.关系代数8种关系代数运算符并 ∪…...
32位处理器AM6528BACDXEA、AM6548BACDXEAF基于Arm Cortex-A53内核【工业4.0嵌入式产品应用】
AM6528BACDXEA、AM6548BACDXEAF 处理器是专为满足工业4.0嵌入式产品对处理性能的复杂需求而设计的Arm应用处理器。AM654x和AM652x器件将四个或两个Arm Cortex-A53内核与一个双Arm Cortex-R5F MCU子系统结合在一起。这些包含的功能旨在帮助客户实现终端产品的功能安全目标。它还…...
多图片怎么转换成PDF?这招教你轻松转换
多图片怎么转换成PDF?我们经常会传输图片文件给同事或者朋友,但是多张图片的传输比较麻烦,有的时候传输比较慢,而且也不便于查看,所以我们就可以将需要传输的多张图片转换成一个PDF文件,这样查看文件时就可…...
kali双网卡
先单独开启一个网卡,配置/etc/network/interfaces 修改为如下配置 This file describes the network interfaces available on your system and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* The loopb…...
【wed前端初级课程】第一章 什么是HTML
什么是WEB前端? 简单来说就是网页,只是这个网页它是由多种技术参与制作的,用来向用户展示的页面。 HTML(超文本标签语言):它决定了网页的结构。 CSS:网页的装饰器。 JavaScript:JavaScrip最初是因为校验…...
sd卡格式化后数据恢复怎么操作
有时候我们需要清空SD卡数据文件,有时候则是因为需要修复SD卡所以需要格式化,但是却被提示无法格式化SD卡。这种情况往往是由于平时SD卡使用时的一些不良习惯或是SD卡中病毒,病毒在运行SD卡中的软件所造成的。那么sd卡格式化后数据恢复怎么操…...
论文阅读笔记|大规模多标签文本分类
多标签文本分类(Extreme Multi Label Classification, MLTC)是自然语言处理领域中一个十分重要的任务,其旨在从一个给定的标签集合中选取出与文本相关的若干个标签。MLTC可以广泛应用于网页标注,话题识别和情感分析等场景。大规模…...
国际化翻译navigator.language与语种对照表
代码(navigator.language) 语种 字段名 "zh-CN", 中文 Chinese "zh-SG" 马新简体 Chinese_SG "zh-TW","zh-HK", 繁体中文 Chinese_TW "en", "en-US"(美国), "en-EG"…...
Matlab进阶绘图第6期—雷达图/蜘蛛图/星图
雷达图(Radar Chart),又称星图、蜘蛛图、蜘蛛网图、网络图、Kiviat图等,是一种以从同一点开始的轴上表示的三个以上变量的二维图表的形式,来显示多变量数据的图形方法。 雷达图可以直观地对多维数据集目标对象的性能、…...
Javascript的ES6 class写法和ES5闭包写法性能对比
看到很多闭包写法的函数, 一直怀疑它对性能是否有影响. 还有就是备受推崇的React Hooks函数式写法中出现大量的闭包和临时函数, 我很担心这样会影响性能. 于是, 做了一个实验来做对比. 这个实验很简单, 用md5计算一百万次. 计算过程将结果再放回参数, 这样避免结果没被引用被…...
探秘MySQL——全面了解索引、索引优化规则
文章目录0.什么是索引1.常用索引分类逻辑维度底层数据结构维度物理维度(InnoDB)2.为什么底层是B树平衡二叉查找树红黑树B树(多叉)B树(多叉)3.MySQL索引优化SQL性能分析之explainQ.MySQL如何查看查询是否用到…...
战斗力最强排行榜:10-30人团队任务管理工具
工欲善其事,必先利其器。在高效的任务执行过程中,选择灵活轻便的项目管理工具来提升工作效率、适应快速多变的发展诉求,对团队来说,至关重要。但是如果团队不大,企业对这块的预算又有限,大型的团队任务管理…...
2023-03-09干活小计
强化学习: 强化学习用智能体(agent)这个概念来表示做决策的机器。 感知、决策和奖励 感知。智能体在…...
基数排序算法
目录:什么是基数排序?基本原理核心思想实现逻辑代码实现复杂度分析总结什么是基数排序? 基数排序:基数排序(Radix sort)是一种非比较型整数排序算法, 基本思想主要是通过关键字间的比较和移动记…...
项目实战典型案例24——xxljob控制台不打印日志排查
xxljob控制台不打印日志排查一:背景介绍问题截图问题解读二:思路&方案三:过程四:总结一:背景介绍 本篇博客是对xxljob控制台不打印日志排查进行的总结和进行的改进。 目的是将经历转变为自己的经验。通过博客的方…...
旋转框目标检测mmrotate v1.0.0rc1 之RTMDet训练DOTA的官方问题解析整理(四)
关于rotated_rtmdet_l-coco_pretrain-3x-dota_ms.py配置文件的batchsize和学习率设置问题:回答:如何在mmrotate中绘制特征图问题:回答:你好AllieLan,您可以尝试使用https://github.com/open-mmlab/mmyolo/blob/main/de…...
ROS Noetic + RealSense D435i:从驱动安装到RVIZ点云显示的完整工作流解析
ROS Noetic RealSense D435i:从驱动安装到RVIZ点云显示的完整工作流解析 在机器人视觉项目的初期搭建阶段,开发者往往面临一个关键挑战:如何将深度相机从"硬件连接"快速推进到"可用数据流"状态。以Intel RealSense D435…...
【Git技巧】git rebase -i 实战:轻松合并本地提交记录
1. 为什么你需要掌握git rebase -i 每次写完代码提交时,你是不是也经常遇到这种情况:刚提交完就发现有个拼写错误,赶紧又提交一次;或者调试过程中反复提交了好几次"临时保存"。结果git log一看,提交记录乱七…...
asp毕业设计下载(全套源码+配套论文)——基于asp+access的仓储物流管理系统设计与实现
基于aspaccess的仓储物流管理系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的仓储物流管理系统设计与实现,更多精选毕业设计项目实例见文末哦。 文章目录: 基于aspaccess的仓储物流管理系统…...
MelonLoader终极指南:3分钟掌握Unity游戏模组加载器完整使用技巧
MelonLoader终极指南:3分钟掌握Unity游戏模组加载器完整使用技巧 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader Me…...
LabelMe高级应用:如何利用AI辅助标注提升效率300%
LabelMe高级应用:如何利用AI辅助标注提升效率300% LabelMe是一款强大的图像标注工具,支持多边形、矩形、圆形、线条、点和图像级标记等多种标注方式。对于AI训练数据准备工作而言,高效的标注工具能显著提升工作流效率。本文将详细介绍如何利…...
SDMatte与前端Vue.js结合:打造交互式在线抠图工具
SDMatte与前端Vue.js结合:打造交互式在线抠图工具 1. 引言:让抠图变得简单高效 想象一下这样的场景:电商运营每天需要处理上百张商品图片,设计师反复在Photoshop里手动抠图,自媒体创作者为找不到合适的透明背景素材发…...
在 React 中,useRef、ref 属性以及 forwardRef 是处理“引用”(访问 DOM 节点或组件实例)的核心概念
在 React 中,useRef、ref 属性以及 forwardRef 是处理“引用”(访问 DOM 节点或组件实例)的核心概念。它们经常一起使用,但职责完全不同。以下是它们的核心区别、使用方法及组合示例:1. 核心概念与区别特性ref (属性)u…...
探索Comsol在光子晶体光纤SPR - PCF传感器及光学仿真中的奇妙世界
Comsol光子晶体光纤spr pcf传感器comsol光 Comsol光子晶体光纤spr pcf传感器 comsol光学仿真spr。 利用几何相位缺陷态光子晶体实现谷自旋分离在光学领域,光子晶体光纤(PCF)以及表面等离子体共振(SPR)相关的研究一直热…...
BFR算法实战:如何高效处理大规模数据聚类
1. BFR算法:大数据时代的聚类利器 第一次接触BFR算法是在处理一个电商平台的用户行为数据集时。当时我们遇到了一个棘手的问题:服务器内存只有32GB,但需要处理的用户行为日志却超过了200GB。传统的K-means算法完全无法应对这种规模的数据&…...
ROS2 MoveIt2实战:如何让虚拟机械臂‘看懂’并抓取YOLOv8 OBB识别的物体?
ROS2 MoveIt2与YOLOv8 OBB深度集成:构建高精度虚拟抓取系统的核心技术解析 当机械臂遇上计算机视觉,一场关于精准控制的交响乐就此展开。本文将带您深入探索如何利用YOLOv8 OBB(Oriented Bounding Box)的朝向感知能力,…...
