回到首页 / 上级目录

关系数据库标准语言 SQL

结构化查询语言(Structured Query Language)是关系数据库的标准语言。

特点

SQL 是声明式语言,只需要提出 “做什么”,而无须指明 “怎么做”。

SQL 采用集合操作方式,查询和更新的结果可以是元组的集合。

SQL 功能强,但语言简洁。核心功能只用了 9 个动词。核心功能分为:

(1)数据定义(data definition):定义和修改关系模式。动词有 CREATE, DROP, ALTER。

(2)数据查询(data query):查询数据库中的数据。动词有 SELECT。

(3)数据操纵(data manipulation):更新数据库中的数据。动词有 INSERT, UPDATE, DELETE。

(4)数据控制(data control):设置数据的使用权限。动词有 GRANT, REVOKE。

数据定义

关系数据库的基本对象包括模式、表、视图和索引。

数据库层次关系如下:

数据库 --> 模式 --> 表、视图、索引

SQL 中关于数据定义的操作包括:

数据查询

SQL 提供了 SELECT 语句进行数据查询。

仅涉及一个表的查询包括:

涉及多个表的查询包括:

SQL 支持嵌套查询。

一个 SELECT - FROM - WHERE 语句称为一个查询块。

将一个查询块嵌套在另一个查询块的 WHERE 子句的查询称为嵌套查询。

与 WHERE 相关的嵌套查询包括:

子查询还可以出现在 FROM 子句中,这时子查询生成的临时派生表(derived table)成为主查询的查询对象。

SELECT 语句的查询结果是元组的集合,所以多个 SELECT 语句的结果可进行集合操作,包括并操作 UNION、交操作(INTERSECT)和差操作(EXCEPT)。

数据更新

数据更新包括三种操作:

空值的处理

空值就是 “不知道”、“不存在” 或 “无意义” 的值。取空值的情况包括:

视图

视图与表不同,它是一个虚表。视图可看作表的部分数据的展示。

关于视图的操作包括:

视图的作用包括: