oracle数据库王珊,数据库系统概论 王珊 教材部分总结
第五章:
01:用户自定义完整性的时候, 我们可以在一个属性后面 同时加上 not null 和 unique 和 check语句。
并且 他们之间并没有 符号 而是空格隔开。
02:我们 针对 一个属性 定义完整性约束的时候 , 一般仅仅针对当前的一个属性 来写 check子句, 当然了 写的时候也可以包含 其他属性,但是一般不建议这么做,因为我们可以使用 针对元素 定义的 check子句。
03:当我们使用 check 子句 定义约束的时候,
我们可以使用
in
加减乘除操作符
Between ... and
逻辑操作符 and or
比较大小的操作符
Like not like
% 和 _ 通配符
04:当我们 使用 完整性约束命名子句 的时候 如何定义 一个字段 唯一? 如何定义一个字段 非空呢? 书上没有说明,但是写法如下:
CREATE TABLE student(
sno CHAR(9) ,
sname CHAR(20) ,
CONSTRAINT csn UNIQUE(sname , sno) ,
CONSTRAINT css CHECK( sno IS NOT NULL) ,
ssex CHAR(4) ,
sage SMALLINT ,
sdept CHAR(20) ,
ssalary SMALLINT ,
sfee INTEGER ,
CONSTRAINT csno PRIMARY KEY (sno),
CONSTRAINT cssex CHECK(ssex IN ('男', '女'))
);
//此时 unique 跟 primary key 是一个级别 使用括号 将字段填入其中,就表示 填入其中的字段 是唯一的。
//当我们使用 完整性约束子句(constraint) 的时候 结合使用 check 子句 ,且在子句中 填入 不能为空 的 字段的名字 后面 写上 is not null 子句。
02:unique 和 primary key是一个级别的 我们依然单独的一行的使用 unique(属性,属性)的形式。也可以直接在一个 属性的后面直接写上 unique 的形式。 如果是第一种写法的话 ,就是一个表级别的约束条件 , 第二种是属性级别的约束条件。但是not null 只可以是 属性级别的约束。
CREATE TABLE student(
sno CHAR(9) ,
sname CHAR(20) ,
CONSTRAINT css CHECK( sno IS NOT NULL) ,
ssex CHAR(4) ,
sage SMALLINT ,
sdept CHAR(20) ,
ssalary SMALLINT ,
sfee INTEGER ,
UNIQUE(sno , sname),
PRIMARY KEY (sno),
CONSTRAINT csno PRIMARY KEY (sno),
CONSTRAINT csn UNIQUE(sname , sno) ,
CONSTRAINT cssex CHECK(ssex IN ('男', '女'))
);
03:mysql不支持 删除 constraint 约束 ,因此下面的写法是错误的。
ALTER TABLE student DROP CONSTRAINT csno
但是oracle支持 这样的写法。
04:当表 跟 表之间存在外键约束关系的时候,要删除其中一张表的时候 , mysql会提示删除不成功的提示, 此时要执意删除的话, 先关掉外键约束,然后删除指定的表,然后在打开外键约束 , 那么操作之后, 存在外键约束的表 不会因为 另一张被删除的表被删除,而外键就不存在了,此时另一张表的外键的值 保持不变 跟之前的一样。这个是mysql的情况。
05:Select短语中也可以有子查询,这个子查询的执行思路的底层 依然还是按照固定的执行思路:先根据 where中的条件,然后带上这些个条件 去检索 from表中合适的元组组合,然后预备返回组合元组的所有的属性,此时具体返回组合元组的那个属性,视select写法的具体情况而定,也就是说select是针对每个符合条件的组合元组的,返回一条针对一条,返回一条针对一条。
那么此时在select短语中使用子查询的话,依然是接着上边的思路执行的。所以说大多数是 相关查询 ,也有少数情况是不相关查询。比如:
SELECT s.student_id,s.student_name,(SELECT class_name FROM t_class c WHERE c.class_id=s.class_id) FROM t_student s GROUP BY s.student_id;//相关
SELECT sno , sname , (SELECT 1/2)AS val FROM student;// 不相关
//但是它要求返回的必须是一个值,而不是一个集合,也不是一个元组,因为要符合select的检索的规范:只可以输出一个值 要不后面如何使用as 起一个别名呢!
//select子句的意思就是选择性的输出的意思;
Where 子句中可以有子查询:
比如使用 in 谓词的时候,后面返回的是 不重复 的 单值的集合。不可以是元组的集合。是不是相关查询 还是不相关查询 视具体情况而定。
使用 > = < <> 符号后面都可以用子查询 ,但是要求返回的是一个具体的值,而不是一个元组,或者多个值 ,仔细体会 。是相关查询 还是不相关查询 视具体情况而定。
//但是它要求返回的必须是一个值,而不是一个集合,也不是一个元组,要满足 比较运算符的规范(只可以跟一个值比较)。
Exists 十有八九就是 相关查询, 子查询依赖父查询。
having子句也 可以有子查询:
HAVING子句 此时子查询返回的都是 单行单列数据,主要是配合 聚合统计函数的使用。
此时having子句中的 子查询是相关查询 还是 不相关查询 视具体情况而定,都有可能。
//但是它要求返回的必须是一个值,而不是一个集合,也不是一个元组,要满足 having后面跟的聚合函数 的规范(只可以跟一个值比较)。
From子句也可以有子查询,这个一定不是 相关性查询的。因为没办法写成相关性查询。
oracle数据库王珊,数据库系统概论 王珊 教材部分总结相关推荐
- (数据库系统概论|王珊)第七章数据库设计-第一节:数据库设计概述
注意:此部分内容和软件工程的知识点重合较多,更多请点击[免费分享]软件工程核心知识点 本章较分散,各节导航如下 (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析 (数据库系统概论|王珊)第七 ...
- (数据库系统概论|王珊)第四章数据库安全性-第一节:数据库安全性概述
文章目录 一:数据库的不安全因素 二:安全标准简介 (1)信息安全标准的发展简史 (2)TCSEC/TDI A:基本内容 B:安全级别划分 在(数据库系统概论|王珊)第一章绪论-第一节:数据库系统概论 ...
- 数据库系统概论王珊编写的第三章学生-课程数据库
一.前言 因为考研需求,我于是将数据库系统概论王珊编写的第三章学生-课程数据库的三张表实现了一下,为了简化操作,我没有实现部分外码功能. 我用的是MySQL实现的 二.正文 /*3. 创建学生表Stu ...
- (数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题
文章目录 名词解释 简答题 应用题 名词解释 视图:视图是一个虚表,其本质就是一条SELECT语句,而查询结果被赋予了一个名字,也即视图名字.或者说视图本身不包含任何数据,它只包含映射到基表的一个查询 ...
- (数据库系统概论|王珊)第六章关系数据理论-第一节:为什么要研究关系数据理论
文章目录 一:概念回顾:关系模式 二:数据依赖 三:一个例子:不遵循关系数据理论导致的问题 一句话,研究关系数据库理论就是为了设计出合适的关系模式,也即合适.高效的表 一:概念回顾:关系模式 相关文章 ...
- (数据库系统概论|王珊)第三章关系数据库标准语言SQL-第四节:数据查询
文章目录 ★★★★★SELECT语句格式★★★★★ 一:单表查询(查询时只涉及一张表) (1)选择表中的若干列 A:查询指定列 B:查询全部列 C:查询经过计算的值 ①:算数表达式 ②:字符串常量及函 ...
- (数据库系统概论|王珊)第三章关系数据库标准语言SQL-第二、三节:数据定义
文章目录 零:有关说明 (1)安装数据库与建表 (2)一些语法说明 一:模式的定义和删除(SCHEMA) (1)定义模式 (2)删除模式 二:基本表的定义.删除和修改(TABLE) (1)定义基本表 ...
- (数据库系统概论|王珊)第二章关系数据库-第一节:关系数据结构及其形式化定义
文章目录 一:关系 (1)域 (2)笛卡尔积 (3)关系 A:基本概述 B:码相关概念 C:关系的三种类型 二:关系模式 三:关系数据库 (1)基本概念 (2)关系数据库的型与值 前面说过,数据模型由 ...
- (数据库系统概论|王珊)第九章关系查询处理和关系优化-第三节:查询优化之代数优化
注意: 关系代数有关符号,大家可能又不熟悉了,点击跳转:(数据库系统概论|王珊)第二章关系数据库-第四节:关系代数 文章目录 一:关系代数表达式等价变换规则 (1)连接.笛卡尔积.并.交的交换律 (2 ...
最新文章
- 《Kotlin项目实战开发》第1章 Kotlin是什么
- 六条规则让你的ML模型部署的更快
- mysql和oracle表的互导_oracle到mysql的导数据方式(适用于任意数据源之间的互导)...
- vsftpd实现的FTP服务
- java函数ao活动对象_[AO] AO全面介绍
- File类创建删除功能的方法
- 解题报告——试题 基础练习 分解质因数——31行代码AC
- 4.SharePoint的权限
- 125_Power BI 中 DAX 的性能测试
- CircularFifoQueue队列API
- 云服务器上搭建hadoop伪分布式环境
- Coursera ML 逻辑回归与正则化
- 437.路径总和III (力扣leetcode) 博主可答疑该问题
- STM32固件升级之 hypertrm(超级终端)使用(三)
- 图像处理之前景检测(三)之码本(codebook)(主要为代码升级)
- Ubuntu12.10 GT650M 混合显卡/双显卡驱动安装
- 中天科技(600522)
- 一仓库失窃,四管理员被传讯_如何找到丢失或失窃的Android手机
- xp java安装_xp下安装jdk8
- web聊天室项目开发过程及重难点整理