本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun/specials/promotion/aicampsql
Part1:学习知识点概要
本笔记主要记录SQL语言的SELECT语句、运算符、聚合及分组查询的用法。
Part2:学习内容
一、SELECT语句基础
# 从表中选取数据
SELECT <列名>,
FROM <表名>;
# 从表中选取符合条件的数据
SELECT <列名>, ……
FROM <表名>
WHERE <条件表达式>;
备注:1、星号代表全部列;2、SQL中可以随意使用换行符,不影响语句执行;3、设定汉语别名时需要用双引号括起来;4、DISTINCT语句可删除重复行;5、单行注释“--”,多行注释“/* */ ”。
SELECT product_id AS id,
product_name AS name,
purchase_price AS "进货单价"
FROM product;
# 使用DISTINCT删除product_type列中重复的数据
SELECT DISTINCT product_type
FROM product;
二、运算符
算数运算符:+ ;-;*;/
比较运算符:=;<>;>=;>;<=;<
备注:1、SELECT子句可使用常数或表达式;2、条件表达式中使用IS NULL或IS NOT NULL。
逻辑运算符:NOT;AND;OR
备注:1、AND优先于OR,可使用括号优先处理;NULL是除真假外的不确定。
三、聚合分组查询
1、对表进行聚合查询
SQL中用于汇总的函数叫做聚合函数,常用的有:1、COUNT:计算表中的记录数(行数);2、SUM:列中数据的合计值;3、AVG:列中数据的平均值;4、MAX:任意列中数据的最大值;5、MIN:任意列中数据的最小值。
# 计算全部数据的行数(包含NULL)
SELECT COUNT(*)
FROM product;
# 聚合函数参数中使用DISTINCT删除重复值
# 是否使用DISTINCT时的动作差异(SUM函数)
SELECT SUM(sale_price), SUM(DISTINCT sale_price)
FROM product;
备注:
1、COUNT函数的结果根据参数的不同而不同。COUNT(*)会得到包含NULL的数据行数,而COUNT(<列名>)会得到NULL之外的数据行数;2、聚合函数会将NULL排除在外。但COUNT(*)例外,并不会排除NULL;3、MAX/MIN函数几乎适用于所有数据类型的列。SUM/AVG函数只适用于数值类型的列;4、想要计算值的种类时,可以在COUNT函数的参数中使用DISTINCT。
2、对表进行分组
# 想将进行分组汇总时(即:将现有的数据按照某列来汇总统计)
# GROUP BY 子句中指定的列称为聚合键或者分组列。
# 书写顺序:SELECT → FROM → WHERE → GROUP BY
SELECT <列名1>,<列名2>, <列名3>, ……
FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>, ……;
备注:
1、使用COUNT等聚合函数时,SELECT子句中如果出现列名,只能是GROUP BY子句中指定的列名(也就是聚合键);2、SELECT子句中可以通过AS来指定别名,但在GROUP BY中不能使用别名;3、在WHERE中不能使用聚合函数 , 如果想指定条件,可以在SELECT,HAVING(下面马上会讲)以及ORDER BY子句中使用聚合函数。
3、其他
- 为聚合结果指定条件:HAVING;对查询结果进行排序:ORDER BY
- ORDER BY子句可以使用别名,因为SQL在使用 HAVING 子句时 SELECT 语句的执行顺序为:FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
Part3:学习问题与解答
暂无
Part4:学习思考与总结
SQL的学习要勤动手,在实践中发现和解决问题!
更多推荐
SQL训练营:SQL基础-查询与排序
发布评论