Skip to content
This repository has been archived by the owner on Sep 5, 2020. It is now read-only.

Latest commit

 

History

History
44 lines (22 loc) · 1.16 KB

25-Day6.md

File metadata and controls

44 lines (22 loc) · 1.16 KB

SQL进阶语法

集合运算

SQL中可使用INTERSECT, UNION, EXCEPT等关键字实现集合间的交并补运算

嵌套查询 sub-queries return relations 创建g(f(……x))查询语句

GROUP BY语句

可用于分组统计,例如求和、计数、求平均值等,还可借助HAVING关键字进行筛选

生成set时要用distinct

relational algebra

selection;projection;cartesian product;union;difference

joins;renaming

SQL的存储结构

I/O模型

从硬盘读入缓存(buffer),再存入内存,硬盘可分页;操作时先读取对应页,同时存入缓存;修改后或存入或丢弃。

main memory更快,但更易丢失

外部排序

使用I/O缓存排序算法,输入两个硬盘中的有序数列、输出合并好的数列,需要三页缓存数据空间。

适用于外存中大量数据的排序。

IOs:2(M+N)

对非常大的files:先分开再用外排合并

数据索引

在现实中实现B+树索引,尽量使得每一个节点可以被外存的一页所容纳

B+树使用后高度减小,读取外存的总次数减少,从而降低成本。