写在前面
关于这本书:SQL的基础教程,可以使你在SQL的学习中轻松实现从0到1的过程,循序渐进地掌握SQL的基础知识和技巧。对于零基础来说非常友好,看完能够迅速上手SQL。
关于本文:一篇对这本书的知识点进行梳理总结的文章。无论你是否看过这本书,都可以对照本文梳理SQL的基础知识,查漏补缺,巩固知识。
系列文章第一篇,包含该书第1-3章的23个知识点。
*本文代码均基于MySQL环境。
第1章 数据库和SQL
- SQL语句及种类
DDL 数据定义语言:CREATE/DROP/ALTER
DML 数据操纵语言:SELECT/INSERT/UPDATE/DELETE
DCL 数据控制语言:COMMIT/ROLLBACK/GRANT/REVOKE
- 数据库的创建
CREATE DATABASE <数据库名称>;
- 表的创建
CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
……
<该表的约束1>,<该表的约束2>……);
- 数据类型的指定
INTEGER型:整数
CHAR型:字符串
VARCHAR型:可变长字符串
DATE型:日期
- 约束的设置
NOT NULL:代表空白(无记录)的关键字
PRIMARY KEY:主键约束
- 表的删除
DROP TABLE <表名>;
- 表定义的更新
ALTER TABLE <表名> ADD COLUMN <列名>;
ALTER TABLE <表名> DROP COLUMN <列名>;
- 向表中插入数据
START TRANSACTION
INSERT INTO <表名> VALUES (<>,<>,<>)
COMMIT
9.变更表名
RENAME TABLE <变更前表名> TO <变更后表名>;
第2章 查询基础
- 查询基本语句
SELECT <列名> ……
FROM <表名>
WHERE <条件表达式>;
--SELECT * 表示查询所有列
--可以用AS为列设置别名
--不能在WHERE子句中使用聚合
- 从结果中删除重复行
DISTINCT--只能用在第一个列名前
- 注释的书写方法
`在这里插入代码片`1行注释:写在‘--’之后,只能写在同一行
多行注释:写在“ /* ” 和 “ */ ” 之间,可以跨多行
- 算数运算符
+,-,*,/
- 比较运算符
=,<>(不等于), >=, <=, >, <
--注意对字符串使用不等号时,是按照字典顺序进行排序的
- 注意NULL
包含NULL的计算结果也是NULL
不能对NULL使用比较运算符,要用 IS NULL 或者 IS NOT NULL
- 逻辑运算符
NOT:用于否定某一条件
AND:在其两侧的查询条件都成立时整个查询条件才成立
OR:在其两侧的查询条件有一个成立时整个查询条件都成立
--AND运算符优先于OR运算符,想要优先执行OR运算符时需要使用括号
第3章 聚合与排序
- 聚合函数
COUNT:计算表中的记录数(行数)
SUM:计算表中数值列中数据的合计值
AVG:计算表中数值列中数据的平均值
MAX:计算表中数值列中数据的最大值
MIN:计算表中数值列中数据的最小值
--COUNT(*)包含NULL的数据行数,COUNT<列名>不包含NULL
--SUM,AVG会排除NULL,只适用于数值类型的列
--MAX,MIN适用于几乎所有的数据类型
- 在聚合函数的参数中使用DISTINCT,可以删除重复数据。
SELECT COUNT(DISTINCT <列名>)
FROM <表名>;
--计算去除重复数据后的数据行数
SELECT DISTINCT COUNT(<列名>)
FROM <表名>;
--先计算数据行数再删除重复数据的结果
SELECT SUM(DISTINCT <列名>)
FROM <表名>;
--删除重复数据后进行数据汇总
- GROUP BY 子句
SELECT <列名1>,<列名2>,<列名3>,......
FROM <表名>
GROUP BY <列名1>,<列名2>,<列名3>, ...... ;
--聚合建中包含NULL时,在结果中会以空行的形式表现出来
20.GROUP BY 和 WHERE 并用时执行顺序
FROM—>WHERE—>GROUP BY—>SELECT
21.HAVING子句
SELECT <列名1>,<列名2>,<列名3>,......
FROM <表名>
GROUP BY <列名1>,<列名2>,<列名3>, ...... ;
HAVING <分组结果对应的条件>
WHERE子句=指定行所对应的的条件
HAVING子句=指定组所对应的条件
22.ORDER BY 子句
SELECT <列名1>,<列名2>,<列名3>,......
FROM <表名>
ORDER BY <排序基准列1>,<排序基准列2>,......
--排序键中包含NULL时,会在开头或末尾进行汇总
--可以使用SELECT子句中定义的别名
--可以使用SELECT子句中未使用的列和聚合函数
23.指定升序或者降序
在排序基准列后面使用
DESC:降序排列
ASC:升序排列
小结
本文整理了SQL基础教程第1-3章的知识点。1-3章的知识围绕数据库的建立,表的增删改查展开,介绍了基础的算数运算符,逻辑运算符,比较运算符,聚合函数,以及分组,排序的使用。
这三章的知识是运用SQL的基础,可以通过本文常常温习,巩固。
系列文章第二篇:书评「SQL基础教程(第2版)」| 你应该知道的基础知识点梳理·中
本文为作者独立整理撰写,如有错漏,欢迎批评指正。