数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】

前言

总结整理不易,希望大家点赞收藏。

给大家整理了一下数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。
参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。


数据库系统概论系列文章传送门:
第一章 绪论
第二/三章 关系数据库和标准语言SQL
第四/五章 数据库安全性和完整性
第六/七章 关系数据理论和数据库设计
第八/九章 数据库编程和优化
第十章 数据库恢复技术
第十一章 并发控制
数据库系统概论-练手题集合



第二、三章 关系数据库和标准语言SQL

2.1 关系

关系代数:传统集合运算:并、差、交、笛卡尔积;
专门关系运算:选择σ(行),投影π(列),连接,除;
等值连接:相同属性不会合并,成为两列。
自然连接:相同属性合并(剔除相同)。
悬浮元组:因为合并而被丢弃的元组。(没有对应的可合并的元组)
外连接:悬浮元组全保留,没有的属性写NULL;
左外连接:保留左关系中的悬浮元组;
右外连接:保留右关系中的悬浮元组

2.2 SQL语言的特点

(1) 语句简单,逻辑清晰,综合统一
(2)高度非过程化
(3)面向集合
(4)同一种语法结构提供多种使用方式。

2.3 SQL语句总结(别看代码了,这个再看就过一遍注意点)

(1) 模式创建和定义:

create schema “s-t”(模式名) authorization user1(用户名);

可以在该语句后直接创建表/视图/授权。

(2) 删除模式:

drop schema “s-t” cascade/restrict [cascade]

cascade级联,删除该模式的同时删除模式下所有数据库对象。
Restrict限制,删除时如果该模式下还有其他数据库对象则拒绝删除]

(3) 基本表定义:

Create table student(
Sno char(9) primary key, //属性名 数据类型 列级约束;
Sname char(20) unique,
Age smallint,
Sdept char(29) //系名
Foreign key (sdept) references dept(dname) //我乱写的,表级完整性约束。

主键由多个属性构成,必须用表级完整性约束。Primary key(sno,cno)这样。

(4) 显示当前搜索路径:

show serach_path(用户,模式)

管理员设置路径:

set serach_path to +用户名,模式名

(5) 修改基本表:

//属于修改表中的列相关。

Alter table student add s_birth DATE; //增列
Alter table student alter column(这个column可写可不写) age int;//修改列类型
Alter table student drop column s_birth; //删列
Alter table student drop constraint primary key(sno);//删完整性约束

(6) 删除基本表

(突然发现删除时都有cascade/restrict规定)

Drop table student cascade;

(7) 索引:

用于加快查询速度。
顺序文件索引,B+索引,散列(hash)索引,位图索引。
索引由系统自动选择,用户不能选,属于内模式。
索引的SQL语言:

create unique index(关键字是index) stusno on student(sno);	//对student表的sno建立升序唯一索引stusno
Alter index stusno rename to snoindex;		//对索引改名
Drop index stusno;		//删除,没有cascade和restrict。根本没有和其他的索引之类有联系就不考虑级联。

(8) 数据查询:

Selectall / distinct 后者在查询时合并相同结果)列名……From 表名/视图Where 条件Group by 列名 having 条件(常+聚集函数)Order by 列名 asc/desc (排序)

注意事项:
where 和 having 的区别:
1、执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。
2、判断条件不同:where不能对聚合函数进行判断,而having可以。
执行顺序:FROM -> WHERE -> GROUP BY -> SELECT -> ORDER BY -> LIMIT

(9) 连接查询:

等值连接:

Select student.,sc. From student,sc Where student.sno=sc.sno;

自然连接则会合并相同列,这时候查询语句就会变成

Select student.sno,sname,sage,cno From student,sc Where student.sno=sc.sno;

注意事项:
1、自然连接一定是等值连接,但等值连接不一定是自然连接。
2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
外连接

Select student.sno,sname,sage,cno From student left outer join sc on(student.sno=sc.sno)

(10) 嵌套查询:

不相关子查询:子查询条件不依赖父查询
相关子查询:子查询查询条件依赖父查询
区别:不相关子查询一次查询,相关子查询循环求解。联合查询时UNION ALL 会有重复结果,UNION 不会。
联合查询比使用or效率高,不会使索引失效

(11) 数据更新:

插入数据,修改数据,删除记录(这都是对行的操作,区别alter table语句)
插入

Insert Into student(sno,sname,sex,age) Values(20000,’张三’,‘男‘,18);

更新

Update student Set age=22 Where sno=20000;

删除

Delete From student Where sno=20000;

(12) 空值:

判断用 is null 或者 is not null

(13) 视图:

视图是一张虚表。只存放视图的定义,不存放其真正的结构。对视图的操作也会转化成对基本表的操作。
创建

Create view is_student As select sno,sname From stuent Where sdept=isWith check potion //用来保证对视图更新的时候,满足子查询条件
注意事项;

with cascaded check option 级联检查,不管上面开没开检查选项都会检查。
with local check option 本地检查,先在本地检查,再向上检查,上面没开检查选项就不检查。
删除

Drop view is_student cascade;

视图消解:对视图进行查询操作的时候,首先进行有效性检查,检查相关定义是否存在,如果存在就在数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成对基本表的查询,再执行修正了的查询。
视图和派生表是有区别的。视图永久性,派生表临时。

13.1 视图的作用

(1) 视图能够简化用户的操作
(2) 使用户能以多种角度看待同一数据
(3)视图可以帮助用户屏蔽真实表结构变化带来的影响保证了数据的独立。
(4) 通过视图用户只能查询和修改他们所能看到的数据,保证了数据的安全。

3 练手题

3.1

在这里插入图片描述

在这里插入图片描述

下一章传送门

第四/五章 数据库安全性和完整性

  • 36
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
An Introduction to Database Sy 大连大学信息工程学院 数据库系统概论 An Introduction to Database System 第三章 关系数据库标准语言 SQ L An Introduction to Database Sy 第三章 关系数据库标准语言 SQL 3.1 SQL 概述 3.2 学生 - 课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结 An Introduction to Database Sy 3.1 SQL 概述 SQL ( Structured Query Language ) 结构化查询语言,是关系数据库标准语言 SQL 是一个通用的、功能极强的关系数据库语言 An Introduction to Database Sy SQL 概述(续) 3.1.1 SQL 的产生与发展 3.1.2 SQL 的特点 3.1.3 SQL 的基本概念 An Introduction to Database Sy SQL 标准的进展过程 标准 大致页数 发布日期 SQL/86 1986.10 SQL/89(FIPS 127-1) 120 页 1989 年 SQL/92 622 页 1992 年 SQL99 1700 页 1999 年 SQL2003 2003 年 An Introduction to Database Sy 3.1 SQL 概述 3.1.1 SQL 的产生与发展 3.1.2 SQL 的特点 3.1.3 SQL 的基本概念 An Introduction to Database Sy 3.1.2 SQL 的特点 1. 综合统一 集数据定义语言( DDL ),数据操纵语言 ( DML ),数据控制语言( DCL )功能于一体。 可以独立完成数据库生命周期中的全部活动: 定义关系模式,插入数据,建立数据库; 对数据库中的数据进行查询和更新; 数据库重构和维护 数据库安全性、完整性控制等 用户数据库投入运行后,可根据需要随时逐步修改 模式,不影响数据的运行。 数据操作符统一 An Introduction to Database Sy 2. 高度非过程化 非关系数据模型的数据操纵语言"面向过程", 必须制定存取路径 SQL 只要提出"做什么",无须了解存取路径。 存取路径的选择以及 SQL 的操作过程由系统自 动完成。 An Introduction to Database Sy 3. 面向集合的操作方式 非关系数据模型采用面向记录的操作方式,操作对 象是一条记录 SQL 采用集合操作方式 操作对象、查找结果可以是元组的集合 一次插入、删除、更新操作的对象可以是元组的集合 An Introduction to Database Sy 4. 以同一种语法结构提供多种使用方式 SQL 是独立的语言 能够独立地用于联机交互的使用方式 SQL 又是嵌入式语言 SQL 能够嵌入到高级语言(例如 C , C+ + , Java )程序中,供程序员设计程序时使用 An Introduction to Database Sy 5. 语言简洁,易学易用 SQL 功能极强,完成核心功能只用了 9 个动词。 表 3.1 SQL 语言的动词 SQL 功 能 动 词 数 据 查 询 SELECT 数 据 定 义 CREATE, DROP, ALTER 数 据 操 纵 INSERT,UPDATE DELETE 数 据 控 制 GRANT,REVOKE An Introduction to Database Sy 3.1 SQL 概述 3.1.1 SQL 的产生与发展 3.1.2 SQL 的特点 3.1.3 SQL 的基本概念 An Introduction to Database Sy SQL 的基本概念(续) SQL 视图 2 视图 1 基本表 2 基本表 1 基本表 3 基本表 4 存储文件 2 存储文件 1 外模式 模 式 内模式 SQL 支持关系数据库三级模式结构 An Introduction to Database Sy SQL 的基本概念(续) 基本表 本身独立存在的表 SQL 中一个关系就对应一个基本表 一个 ( 或多个 ) 基本表对应一个存储文件 一个表可以带若干索引 存储文件 逻辑结构组成了关系数据库的内模式 物理结构是任意的,对用户透明 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图 An Introduction to Database Sy 第三章 关系数据库标准语言 SQL 3.1 SQL 概述 3.2 学生 - 课程数据库 3.3 数据定义 3.4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AAA码农宝哥.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值