5.4 完整性约束命名子句

news2025/2/22 17:28:44

思维导图:

 

笔记:5.4 完整性约束命名子句


定义:

  • 完整性约束是在CREATE TABLE语句中定义的。
  • SQL为CREATE TABLE语句提供了CONSTRAINT子句,用于对完整性约束进行命名。
  • 命名的目的是方便增加或删除约束。

基本结构:

CONSTRAINT <完整性约束名称> <完整性约束条件>

其中,完整性约束条件可以是NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK等。

示例:

  1. 学生登记表 Student: 要求:
  • 学号在 90000~99999 之间
  • 姓名不为空
  • 年龄小于 30
  • 性别只能是 “男” 或 “女”
CREATE TABLE Student(
    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),
    Ssex CHAR(2) CONSTRAINT C4 CHECK(Ssex IN('男', '女')),
    CONSTRAINT StudentKey PRIMARY KEY(Sno)
);
  1. 教师表 TEACHER: 要求:
  • 每位教师的应发工资 (工资 Sal + 扣除项 Deduct) 不低于 3000 元。
CREATE TABLE TEACHER(
    Eno NUMERIC(4) PRIMARY KEY,
    Ename CHAR(10),
    Job CHAR(8),
    Sal NUMERIC(7,2),
    Deduct NUMERIC(7,2),
    Deptno NUMERIC(2),
    CONSTRAINT TEACHERFKey FOREIGN KEY (Deptno) REFERENCES DEPT(Deptno),
    CONSTRAINT C1 CHECK(Sal + Deduct >= 3000)
);

修改表中的完整性约束:

可以使用ALTER TABLE语句修改表中的完整性约束。

示例:

  1. 移除学生表 Student 对性别的约束:
ALTER TABLE Student DROP CONSTRAINT C4;
  1. 修改学生表 Student 的约束条件: 要求将学号的范围从 90000~99999 改为 900000~999999,并将年龄从小于30改为小于40。
ALTER TABLE Student DROP CONSTRAINT C1;
ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEEN 900000 AND 999999);
ALTER TABLE Student DROP CONSTRAINT C3;
ALTER TABLE Student ADD CONSTRAINT C3 CHECK (Sage < 40);

完整性约束命名子句 - 重点、难点与易错点总结


重点:

  1. 定义与用途:

    • 完整性约束命名子句用于为CREATE TABLE语句中的完整性约束赋予名称,以便于后续操作(如增加、删除)。
  2. 基本结构:

    CONSTRAINT <完整性约束名称> <完整性约束条件>
    

  3. 完整性约束条件类型:

    • NOT NULL: 字段值不可为空
    • UNIQUE: 字段值必须唯一
    • PRIMARY KEY: 定义表的主键
    • FOREIGN KEY: 外键约束,确保字段的值在另一个表中存在
    • CHECK: 对字段值施加特定条件

难点:

  1. 外键约束的理解与应用:

    • 外键是连接两张表的一种手段,它确保一张表中的字段值在另一张表的特定列中存在。正确实现外键约束需要对两张表都有深入了解。
  2. 复杂的CHECK约束:

    • 创建复杂的条件(如,工资与扣除之和的限制)需要对逻辑表达式有很好的理解。

易错点:

  1. 命名重复:

    • 为完整性约束命名时,要确保名称在整个数据库中是唯一的。重复的命名会导致错误。
  2. 错误的数据类型匹配:

    • 在应用完整性约束时,要确保约束条件与字段的数据类型相匹配。例如,不应该在字符型字段上设置数值范围。
  3. 遗漏或误用单引号:

    • 在CHECK约束中,特定的值(如'男''女')需要使用单引号。遗漏或误用会导致语法错误。
  4. 不恰当地删除约束:

    • 在修改表结构时,可能需要删除并重新添加某些约束。如果不小心删除了错误的约束,可能会导致数据完整性问题。
  5. 外键参照的表和字段存在性:

    • 在设置外键约束时,必须确保引用的表和字段真实存在,否则会导致错误。

 

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

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

相关文章

泡泡玛特MOLLY携手支付宝蚂蚁庄园 深耕乡村儿童美育教育

近日&#xff0c;泡泡玛特旗下IP MOLLY携手支付宝蚂蚁庄园、中国乡村发展基金会共同发起“一笔一画&#xff0c;梦想成真”主题活动&#xff0c;主题活动在蚂蚁庄园平台开展&#xff0c;为泡泡玛特的人气IP MOLLY打造专属庄园&#xff0c;同时联合发布公益IP形象&#xff0c;公…

图像二值化阈值调整——cv2.threshold方法

二值化阈值调整&#xff1a;调整是指在进行图像二值化处理时&#xff0c;调整阈值的过程。阈值决定了将图像中的像素分为黑色和白色的界限&#xff0c;大于阈值的像素被设置为白色&#xff0c;小于等于阈值的像素被设置为黑色。 方法一&#xff1a; 取阈值为 127&#xff0c;…

Activiti7流程结束监听事件中,抛出的异常无法被spring全局异常捕捉

ProcessRuntimeEventListener activiti7中&#xff0c;提供了ProcessRuntimeEventListener监听器&#xff0c;用于监听流程实例的结束事件 /*** 流程完成监听器*/ Slf4j Component public class ProcessCompleteListener implements ProcessRuntimeEventListener<ProcessC…

可以直接在线制作电子画册的网站

​随着互联网技术的发展&#xff0c;越来越多的人开始使用在线工具来制作电子画册。今天&#xff0c;小编就来介绍一款可以直接在线制作电子画册的网站&#xff0c;让你的电子画册更加精美、个性化和实用。 1.首先点击FLBOOK在线制作制作电子杂志平台 2.点击开始制作&#xff0…

29岁从事功能测试5年被辞,面试4个月还没到工作......

最近一个32岁的老同学因为被公司辞退&#xff0c;聊天过程中找我倾诉&#xff0c;所以写下了这篇文章。 他是15年二本毕业&#xff0c;学的园林专业&#xff0c;人属于比较懒的那种&#xff0c;不爱学习&#xff0c;专业学的也一般。实习期间通过校招找到了一份对口的工作。但…

前端架构体系调研整理汇总

1.公司研发人数与前端体系 小型创业公司 前端人数&#xff1a; < 3 人 产品类型&#xff1a; 产品不是非常成熟&#xff0c;比较新颖。 项目流程&#xff1a;不完善&#xff0c;快、紧促&#xff0c;没有固定的时间排期。 技术栈&#xff1a; 没有历史包袱&#xff0c;技…

Http代理与socks5代理有何区别?如何选择?(二)

上篇文章我们基本分别了解了http代理与socks5代理的定义与优缺点&#xff0c;接下来我们继续来了解http代理与socks5代理之间的比较与区别。 一、两者的比较 1、功能比较 HTTP代理专门用于Web流量&#xff0c;并在处理HTTP和HTTPS协议方面非常高效。它们可以修改正在传输的数据…

清华大模型GLM

2022年,清华大学发布了一款具有重要意义的 GLM 大模型,它不仅在中文语言处理方面取得了显著的进展,还在英文语言处理方面表现出了强大的能力。GLM大模型区别于OpenAI GPT在线大模型只能通过API方式获取在线支持的窘境,GLM大模型属于开源大模型,可以本地部署进行行业微调、…

OSATE总线延迟的源码分析与模型修复——针对 Latency-case-study项目 端到端流延迟分析过程中空指针异常的解决

一、背景 在文章AADL 端到端流延迟分析示例项目 Latency-case-study 简述的 “第八章 进行系统的端到端流延迟分析” 中&#xff0c;遇到了这样的一个问题&#xff1a;对分布式系统的端到端流延迟进行分析时&#xff0c;没有生成流延迟分析报告&#xff0c;并且错误日志提示&am…

视频列表:点击某个视频进行播放,其余视频全部暂停(同时只播放一个视频)

目录 需求实现原理实现代码页面展示 需求 视频列表&#xff1a;点击某个视频进行播放&#xff0c;其余视频全部暂停&#xff08;同时只播放一个视频&#xff09; 实现原理 在 video 标签添加 自定义属性 id (必须唯一)给每个 video 标签 添加 play 视频播放事件播放视频时&…

Android studio进入手机调试状态

首先usb插入电脑手机打开开发者模式进入点击就会在你的页面显示了

解决方案 | 便民提效,电子签助力医疗保障服务模式创新

2023年2月&#xff0c;中共中央、国务院印发了《数字中国建设整体布局规划》&#xff0c;并发出通知&#xff0c;要求各地区各部门结合实际认真贯彻落实。《规划》指出&#xff0c;提升数字化服务水平&#xff0c;加快推进“一件事一次办”&#xff0c;推进线上线下融合&#x…

玩转硬件之Micro:bit的玩法(二) —— 秒表

秒表是一种计时器&#xff0c;用于测量时间间隔的工具。它通常具有一个数字显示屏和一个或多个按钮&#xff0c;用于开始、停止和重置计时器。秒表可以精确地测量时间&#xff0c;通常以秒为单位&#xff0c;但有些也可以测量毫秒或微秒。它们被广泛用于体育比赛、科学实验、工…

ZYNQ实验---IQ调制实现SSB PART2

一、前言 本文实验在ZYNQ实验—IQ调制实现SSB PART1的基础上进行优化完善。 下图为IQ调制实现SSB PART1中设想实现设计框图 该图设计存在的几个问题&#xff1a; PC-PS的UDP传输存在丢包中断控制发包实际不适合流数据的传输采用的BRAM模块可以存储的空间较小&#xff0c;PC…

C++ 赋值运算重载,const成员,取地址及const取地址操作符重载

C 赋值运算重载&#xff0c;const成员&#xff0c;取地址及const取地址操作符重载 1. 赋值运算符重载1.1 运算符重载1.2 赋值运算符重载1.3 前置/--和后置/--重载 2. const成员3. 取地址及const取地址操作符重载 所属专栏&#xff1a;C“嘎嘎" 系统学习❤️ &#x1f680;…

智慧灌溉平台

1.知识百科 智慧灌溉是运用物联网、云计算、大数据等新一代信息技术&#xff0c;结合农业生产的实际需求&#xff0c;通过传感器采集土壤温湿度、光照强度等信息&#xff0c;利用无线传感网络传输到中央控制系统进行智能控制。智慧灌溉系统由传感器&#xff08;水位传感器&…

解决关于“由于找不到vcruntime140.dll无法继续执行代码”的问题

今天&#xff0c;我就来谈谈关于“由于找不到vcruntime140.dll无法继续执行代码”的问题&#xff0c;为大家提供4个解决方案。希望我的经验和见解能对大家有所帮助。 首先&#xff0c;我们要明确什么是vcruntime140.dll。简单来说&#xff0c;它是一个动态链接库文件&#xff…

进口跨境商城源码:高效、安全、可扩展的电商平台解决方案

电子商务的兴起为跨境贸易提供了前所未有的机会和挑战。在这个全球化的时代&#xff0c;跨境电商平台成为许多企业进军国际市场的首选。然而&#xff0c;搭建一个高效、安全、可扩展的进口跨境商城并非易事。 1. 解决方案概述 我们推出的 "进口跨境商城源码" 提供了一…

3-性能分析-android-基于Choreographer渲染机制详解

3-性能分析-android-基于Choreographer渲染机制详解 一:主线程运行机制的本质1> 引入 Vsync 之前2> 引入 Choreographer二: Choreographer 简介1> 从 Systrace 的角度来看 Choreogrepher 的工作流程2> Choreographer 的工作流程三:Choreographer 处理一帧的逻辑…

【AI视野·今日Sound 声学论文速览 第三十二期】Tue, 24 Oct 2023

AI视野今日CS.Sound 声学论文速览 Tue, 24 Oct 2023 Totally 20 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;nvas3d, 基于任意录音和室内3D信息合成重建不同听角&#xff08;位置&#xff09;处的新的声音。(from apple cmu) website: htt…