SQL 简明笔记

本文提供了数据库操作的基本SQL语法,包括数据定义、查询、更新和视图的创建。数据定义部分涵盖了模式、表和索引的创建、修改和删除。查询部分详细介绍了`SELECT`语句及其聚集函数、连接、`ANY`和`ALL`谓词、`EXISTS`谓词以及集合查询的用法。更新部分包括数据的插入、更新和删除操作。最后,视图的创建和删除也被简要提及,参考文献为王珊和萨师煊的《数据库系统概论》。

  ·   1 min read

数据定义

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;
DROP SCHEMA <模式名> <CASCADE|RESTRICT>;
CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束]);
    <数据类型> = CHAR(n), INT, FLOAT(n), DATE, TIME...
ALTER TABLE <表名> [ADD [COLUMN] <列名> <数据类型> [列级完整性约束]]
                   [ADD <表级完整性约束>]
                   [DROP [COLUMN] <列名> [CASCADE|RESTRICT]]
                   [DROP CONSTRAINT <完整性约束名> [RESTRICT|CASCADE]]
                   [ALTER [COLUMN] <列名> <数据类型>];
DROP TABLE <表名> [RESTRICT|CASCADE];
CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[次序]);
ALTER INDEX <旧索引名> RENAME TO <新索引名>;
DROP INDEX <索引名>;

数据查询

主要就是 SELECT

SELECT [ALL|DISTINCT] <目标表达式>
FROM <表名或视图名>
WHERE <条件表达式>
GROUP BY <列名>
ORDER BY <列名>;

聚集函数

COUNT(*)
COUNT([DISTINCT|ALL] <列名>)
SUM([DISTINCT|ALL] <列名>)
AVG([DISTINCT|ALL] <列名>)
MIN([DISTINCT|ALL] <列名>)
MAX([DISTINCT|ALL] <列名>)

连接

FROM < A> LEFT OUTER JOIN < B> ON (连接条件)

ANY 与 ALL 谓词

WHERE <属性> < <ANY|ALL>(<子查询>)

EXISTS 谓词

WHERE EXISTS (<子查询>)

集合查询

<子查询 A> UNION <子查询 B>
<子查询 A> INTERSECT <子查询 B>
<子查询 A> EXCEPT <子查询 B>

数据更新

INSERT INTO <表名> VALUES(...);
UPDATE <表名> SET <列名> = <表达式> [WHERE <条件>];
DELETE FROM <表名> [WHERE <条件>];

视图

CREATE VIEW <视图名> AS (<子查询>);
DROP VIEW <视图名> [CASCADE];

参考

王珊, and 萨师煊. 数据库系统概论. Gao deng jiao yu chu ban she, 2014.