1/专有名词
关系数据库(Relational Database,RDB)
关系数据库是现在应用最广泛的数据库。关系数据库在 1969 年诞生,
可谓历史悠久。和 Excel 工作表一样,它也采用由行和列组成的二维表来
管理数据,所以简单易懂。同时,它还使用专门的 SQL(Structured
Query Language,结构化查询语言)对数据进行操作。
DDL(Data Definition Language,数据定义语言)
用来创建或者删除存储
数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。
CREATE:创建数据库和表等对象
DROP: 删除数据库和表等对象
ALTER: 修改数据库和表等对象的结构
DML(Data Manipulation Language,数据操纵语言)
用来查询或者变更
表中的记录。DML 包含以下几种指令。
SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据
DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据
库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限
操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。
COMMIT: 确认对数据库中的数据进行的变更
ROLLBACK:取消对数据库中的数据进行的变更
GRANT: 赋予用户操作权限
REVOKE: 取消用户的操作权限
2/常用语法
注释
1行注释
书写在“--”之后,只能写在同一行。A
多行注释
书写在“/*”和“*/”之间,可以跨多行
数据库的创建(CREATE DATABASE语句)
表的创建(CREATE TABLE语句)
CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
<列名3> <数据类型> <该列所需约束>,
<列名4> <数据类型> <该列所需约束>,
.
<该表的约束1>, <该表的约束2>,……);
表的删除
删除数据的方法大体可以分为以下两种:
① DROP TABLE 语句可以将表完全删除
② DELETE 语句会留下表(容器),而删除表中的全部数据
DROP TABLE <表名>;
DELETE FROM <表名>;
表定义的更新(ALTER TABLE语句)
ALTER TABLE <表名> ADD COLUMN <列的定义>;
ALTER TABLE <表名> DROP COLUMN <列的定义>;
删除表中全部数据的TRUNCATE语句
向表中插入数据(INSERT)
BEGIN TRANSACTION;
INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);
COMMIT;
插入默认值
我们还可以向表中插入默认值(初始值)。可以通过在创建表的
CREATE TABLE 语句中设置DEFAULT 约束来设定默认值。
COMMIT——提交处理
ROLLBACK——取消处理
插入默认值(DEFAULT)
从其他表中复制数据
从结果中删除重复行
数据的删除(DELETE语句)
DELETE FROM <表名>
WHERE <条件>;
数据的更新(UPDATE)
UPDATE <表名>
SET <列名> = <表达式>;
WHERE <条件>;
聚合函数
COUNT:计算表中的记录数(行数)
SUM: 计算表中数值列中数据的合计值
AVG: 计算表中数值列中数据的平均值
MAX: 求出表中任意列中数据的最大值
MIN: 求出表中任意列中数据的最小值
注:所有包含NULL 的计算,结果肯定是NULL。
SELECT子句
WHERE子句必须紧跟在SELECT子句之后
SELECT <列名1>, <列名2>, <列名3>, ……
FROM <表名>
WHERE
GROUP BY <列名1>, <列名2>, <列名3>, ……;
SELECT <列名1>, <列名2>, <列名3>, ……
FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>, ……
HAVING <分组结果对应的条件>
ASC 和DESC 是ascendent(上升的)和descendent(下降的)这两个单词的缩写。
SELECT <列名1>, <列名2>, <列名3>, ……
FROM <表名>
ORDER BY <排序基准列1>, <排序基准列2>, ……
子句的书写顺序
1. SELECT 子句 → 2. FROM 子句 → 3. WHERE 子句 → 4. GROUP BY 子句 →
5. HAVING 子句 → 6. ORDER BY 子句
创建视图(CREATE VIEW 语句)
CREATE VIEW 视图名称(<视图列名1>, <视图列名2>, ……)
AS
<SELECT语句>
ABS——绝对值
CAST——类型转换
COALESCE——将NULL转换为其他值
LIKE谓词——字符串的部分一致查询
的 % 是代表“0 字符以上的任意字符串”的特殊符号
BETWEEN谓词——范围查询
IN 谓词
EXIST谓词
“判断是否存在满足某种条件的记录”。
如果存在这样的记录就返回真(TRUE),如果不存在就返回假(FALSE)。
EXIST(存在)谓词的主语是“记录”。
CASE表达式
表的加法——UNION
包含重复行的集合运算——ALL选项(UNION ALL)
选取表中公共部分——INTERSECT
记录的减法——EXCEPT
联结(以列为单位对表进行联结)
内联结(INNER JOIN)
INNER JOIN Product AS P ON SP.product_id = P.product_id
外联结(OUTER JOIN)
OUTER JOIN Product AS P ON SP.product_id = P.product_id