5.4 完整性约束命名子句

思维导图:

 

笔记: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.hqwc.cn/news/156559.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter的The file name ‘xxxx.dart‘ isn‘t a snake_case identifier警告

文章目录 警告原因分析解决方法dart的一些命名规则变量和函数命名&#xff1a;类和类型命名&#xff1a;常量和枚举&#xff1a;文件命名&#xff1a;包命名&#xff1a;注释&#xff1a;命名一致性&#xff1a;避免缩写&#xff1a;可搜索的命名&#xff1a; 一些好习惯 警告 …

AI“走深向实”,蚂蚁蚁盾在云栖大会发布实体产业「知识交互建模引擎」

数字化起步晚、数据分散稀疏、专业壁垒高、行业知识依赖「老师傅」&#xff0c;是很多传统产业智能化发展面临的难题。2023年云栖大会上&#xff0c;蚂蚁集团安全科技品牌蚁盾发布“知识交互建模引擎”&#xff0c;将实体产业知识与AI模型有机结合&#xff0c;助力企业最快10分…

Redis之 redis.config配置文件

文章目录 前言一、基本配置1.单位2.包含3.网络配置4.通用5.快照6.安全7.限制8.仅追加模式 二、总体主要介绍总结 前言 行家一出手&#xff0c;就知有没有&#xff0c;让一起学习redis.config配置文件。 一、基本配置 Redis 的配置文件位于 Redis 安装目录下&#xff0c;文件名…

表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信你对这篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) 用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证&#xff08;带前后端源码&#xff09;全方位全流程超详细教程 目录 项目前端页面展…

pytorch复现3_GoogLenet

背景&#xff1a; GoogLeNeta是2014年提出的一种全新的深度学习结构&#xff0c;在这之前的AlexNet、VGG等结构都是通过增大网络的深度(层数)来获得更好的训练效果&#xff0c;但层数的增加会带来很多负作用&#xff0c;比如overfit、梯度消失、梯度爆炸等。GoogLeNet通过引入i…

Centos7下生成https自签名证书

1、安装openssl yum install openssl2、生成带密码的私有秘钥文件 openssl genrsa -des3 -out server.key 2048使用带密码的私有秘钥文件时需要输入密码&#xff0c;这里直接输入&#xff1a;123456 3、生成不带密码的私有秘钥文件 openssl rsa -in server.key -out serve…

自己动手实现一个深度学习算法——二、神经网络的实现

文章目录 1. 神经网络概述1&#xff09;表示2&#xff09;激活函数3&#xff09;sigmoid函数4&#xff09;阶跃函数的实现5&#xff09;sigmoid函数的实现6)sigmoid函数和阶跃函数的比较7&#xff09;非线性函数8&#xff09;ReLU函数 2.三层神经网络的实现1&#xff09;结构2&…

“优等生”宁波银行公布三季报:营利齐升,风控抵补能力持续夯实

撰稿 | 多客 来源 | 贝多财经 10月30日晚&#xff0c;城商行“优等生”宁波银行披露2023年三季报&#xff0c;在效益与规模稳步提升的同时&#xff0c;资产质量也保持了优异水平。 前三季度&#xff0c;宁波银行实现归属于母公司股东的净利润193.49亿元&#xff0c;同比增长1…

智慧公厕:科技赋予公共卫生新生命,提升城市管理品质

在现代化城市中&#xff0c;公共卫生设施的发展与提升一直是对城市管理者和市民的共同期望。然而&#xff0c;传统的公共厕所常常令人困扰&#xff0c;脏乱臭成为难题。为了解决这一难题&#xff0c;广州中期科技科技有限公司全新升级的智慧公厕整体解决方案&#xff0c;补誉为…

数模竞赛那么累,究竟能给我带来什么?

国赛官网上有这么一句话&#xff1a;一次参赛&#xff0c;终生受益。 学生时代&#xff0c;我对这句话没啥感触。 因为刚开始学数模时感觉很没头绪&#xff0c;书也看不懂&#xff0c;论文也看不懂&#xff0c;看啥都看不懂。 比赛时题目看不懂&#xff0c;答案搜不到&#xf…

历年网规上午真题笔记(2016年)

解析:B 嵌入式系统的存储结构采用分级的方法设计,即寄存器组、高速缓冲存储器(Cache)、内存(包括Flash)和外存,它们在存取速度上依次递减,而在存储容量上逐级增加。 解析:C/A ERP是一种面向制作行业进行物质资源、资金资源和信息资源集成一体化管理的企业信息管理系…

【python】爬取豆瓣电影排行榜TOP250存储到CSV文件中

一、导入必要的模块&#xff1a; 代码首先导入了需要使用的模块&#xff1a;requests、lxml和csv。 import requests from lxml import etree import csv 如果出现模块报错 进入控制台输入&#xff1a;建议使用国内镜像源 pip install 模块名称 -i https://mirrors.aliyun.co…