书评「SQL基础教程(第2版)」| 你应该知道的基础知识点梳理·上



写在前面

关于这本书:SQL的基础教程,可以使你在SQL的学习中轻松实现从0到1的过程,循序渐进地掌握SQL的基础知识和技巧。对于零基础来说非常友好,看完能够迅速上手SQL。

关于本文:一篇对这本书的知识点进行梳理总结的文章。无论你是否看过这本书,都可以对照本文梳理SQL的基础知识,查漏补缺,巩固知识。

系列文章第一篇,包含该书第1-3章的23个知识点。
*本文代码均基于MySQL环境。


第1章 数据库和SQL

  1. SQL语句及种类
DDL 数据定义语言:CREATE/DROP/ALTER

DML 数据操纵语言:SELECT/INSERT/UPDATE/DELETE

DCL 数据控制语言:COMMIT/ROLLBACK/GRANT/REVOKE
  1. 数据库的创建
CREATE DATABASE <数据库名称>;
  1. 表的创建
CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
……
<该表的约束1>,<该表的约束2>……);
  1. 数据类型的指定
INTEGER型:整数
CHAR型:字符串
VARCHAR型:可变长字符串
DATE型:日期
  1. 约束的设置
NOT NULL:代表空白(无记录)的关键字
PRIMARY KEY:主键约束
  1. 表的删除
DROP TABLE <表名>;
  1. 表定义的更新
ALTER TABLE <表名> ADD COLUMN   <列名>;
ALTER TABLE <表名> DROP COLUMN <列名>;
  1. 向表中插入数据
START TRANSACTION
INSERT INTO <表名> VALUES (<>,<>,<>)
COMMIT

9.变更表名

RENAME TABLE <变更前表名> TO <变更后表名>;

第2章 查询基础

  1. 查询基本语句
SELECT <列名> ……
FROM <表名>
WHERE <条件表达式>--SELECT * 表示查询所有列
--可以用AS为列设置别名
--不能在WHERE子句中使用聚合
  1. 从结果中删除重复行
DISTINCT--只能用在第一个列名前
  1. 注释的书写方法
`在这里插入代码片`1行注释:写在‘--’之后,只能写在同一行

多行注释:写在“ /* ” 和 “ */ ” 之间,可以跨多行
  1. 算数运算符
+-*/
  1. 比较运算符
=<>(不等于), >=, <=, >, <

--注意对字符串使用不等号时,是按照字典顺序进行排序的
  1. 注意NULL
包含NULL的计算结果也是NULL

不能对NULL使用比较运算符,要用 IS NULL 或者 IS NOT NULL
  1. 逻辑运算符
NOT:用于否定某一条件
AND:在其两侧的查询条件都成立时整个查询条件才成立
OR:在其两侧的查询条件有一个成立时整个查询条件都成立
--AND运算符优先于OR运算符,想要优先执行OR运算符时需要使用括号

第3章 聚合与排序

  1. 聚合函数
COUNT:计算表中的记录数(行数)
SUM:计算表中数值列中数据的合计值
AVG:计算表中数值列中数据的平均值
MAX:计算表中数值列中数据的最大值
MIN:计算表中数值列中数据的最小值

--COUNT(*)包含NULL的数据行数,COUNT<列名>不包含NULL
--SUM,AVG会排除NULL,只适用于数值类型的列
--MAX,MIN适用于几乎所有的数据类型
  1. 在聚合函数的参数中使用DISTINCT,可以删除重复数据。
SELECT COUNT(DISTINCT <列名>)
FROM <表名>;
--计算去除重复数据后的数据行数
             
SELECT DISTINCT COUNT(<列名>)
FROM <表名>;
--先计算数据行数再删除重复数据的结果

SELECT SUM(DISTINCT <列名>)
FROM <表名>;
--删除重复数据后进行数据汇总
  1. 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版)」| 你应该知道的基础知识点梳理·中

本文为作者独立整理撰写,如有错漏,欢迎批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值