3.7.1 SQL语言概述
本课核心知识点整理
SQL 在本章中的位置
SQL 是关系数据库的标准操作语言。前面关系代数讲的是理论运算:投影、选择、连接、并交差;SQL 则是工程中表达这些运算的语言。字幕里强调,软件设计师对 SQL 的考查并不特别深入,重点集中在查询:普通查询、分组查询,以及近几年偶尔出现的权限控制。
这部分常与关系代数综合考。例如 SELECT 对应投影,WHERE 对应选择,FROM R,S 在没有显式连接条件时对应笛卡尔积。
SQL 的主要类别
| 类别 | 作用 | 常见动词 | 软考关注度 |
|---|---|---|---|
| 数据查询语言 | 查询数据 | SELECT | 高,常与关系代数结合 |
| 数据定义语言 DDL | 定义或修改数据库对象 | CREATE、DROP、ALTER | 了解关键词 |
| 数据操纵语言 DML | 插入、更新、删除记录 | INSERT、UPDATE、DELETE | 了解关键词 |
| 数据控制语言 DCL | 授予或收回权限 | GRANT、REVOKE | 记住授权语法 |
| 事务控制语言 TCL | 提交或撤销事务 | COMMIT、ROLLBACK | 与事务章节衔接 |
有些教材会把 SELECT 归入 DML,有些会单列为数据查询语言。软考做题时更重要的是识别动词用途:SELECT 查,CREATE 建,INSERT/UPDATE/DELETE 改数据,GRANT/REVOKE 管权限。
SQL 与关系代数的对应
| SQL 子句 | 关系代数含义 | 直观理解 |
|---|---|---|
SELECT 列名 | 投影 | 最终显示哪些列 |
FROM 表1, 表2 | 笛卡尔积 | 数据来源,两表先组合 |
WHERE 条件 | 选择 | 按条件筛选元组 |
GROUP BY | 分组聚合 | 按某列把记录分组 |
HAVING | 分组后筛选 | 筛选聚合后的组 |
ORDER BY | 排序 | 按某列升序或降序排列 |
这个对应关系解释了为什么 SQL 查询题常和自然连接、笛卡尔积一起考。SQL 不是凭空写出来的,它背后就是关系代数的操作顺序。
查询结果、视图与虚表
字幕中提到:查询的对象通常是基本表,查询结果形成查询表。查询表不是数据库中永久保存的基本表,而是查询执行后得到的结果集合;视图也可以理解为基于查询定义出来的虚表。
| 对象 | 是否真实存储全部数据 | 典型用途 |
|---|---|---|
| 基本表 | 是 | 数据库中的基础关系 |
| 查询表 | 通常否 | 某次查询的结果 |
| 视图 | 通常否,保存定义 | 简化查询、限制用户可见范围 |
考试中如果问“查询结果是什么表”,要注意它不是基本表,而是查询表或虚表语义。
做题路线
- 分类题先看 SQL 动词,不被字段名干扰。
- 查询题先把
SELECT/FROM/WHERE分别对应投影、数据来源、选择条件。 - 多表查询若
FROM中有多个表,要想到笛卡尔积,必须用连接条件限制。 - 看到
GRANT、REVOKE,归入权限控制,不要和数据操纵混淆。
例题
SELECT 语句通常属于:
用于授予数据库权限的 SQL 语句是:
自查要点
- SQL 常见分类有哪些?
- SELECT、CREATE、GRANT、COMMIT 分别属于哪类?
- 权限控制对应哪些 SQL 语句?