本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql;
一:学习收获
1:SELECT语句基础
(1)从表中选取数据:SELECT语句,SELECT语句包含了SELECT和FROM两个子句(clause)。示例如下:
SELECT <列名>,
FROM <表名>;
(2)从表中选取符合条件的数据:WHERE语句:当不需要取出全部数据,而是取出部分数据的时候,可以用WHERE。
(3)相关法则:
a:星号(*)代表全部列的意思;b:SQL中可以随意使用换行符,不影响语句执行(但不可插入空行);c:设定汉语别名时需要使用双引号(")括起;d:在SELECT语句中使用DISTINCT可以删除重复行;e:注释是SQL语句中用来标识说明或者注意事项的部分。分为1行注释"-- "和多行注释两种"/* */"。
2:SQL语句中可以使用的四则运算的主要运算符有:加法(+);减法(-);乘法(*);除法(/)。
3:SQL语句中可以使用的比较运算符有:和~相等(=);和~不相等(< >);大于等于~(>=);大于~(>);小于等于~(<=);小于~(<)。
4:SQL语句中可使用的逻辑运算符:NOT运算符, AND运算符,OR运算符。
5: 当想要先要执行某一个运算符的时候,可以通过括号优先处理;当碰到复杂的语句的时候,可以通过采用真值表来梳理逻辑关系。
6:聚合函数:SQL中用于汇总的函数叫做聚合函数;使用聚合函数可以删除重复值。
聚合函数有五种:COUNT:计算表中的记录数(行数);SUM:计算表中数值列中数据的合计值;AVG:计算表中数值列中数据的平均值;MAX:求出表中任意列中数据的最大值;MIN:求出表中任意列中数据的最小值。
7:对表进行分组
GROUP BY语句:当你想将进行分组汇总时(即:将现有的数据按照某列来汇总统计),可以使用GROUP BY语句。
SELECT <列名1>,<列名2>, <列名3>, ……
FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>, ……;
在 GROUP BY 子句中指定的列称为聚合键或者分组列。
8:GROUP BY书写位置:GROUP BY的子句书写顺序有严格要求,不按要求会导致SQL无法正常执行,目前出现过的子句书写****顺序为:1**.**SELECT → 2. FROM → 3. WHERE → 4. GROUP BY。
9:为聚合结果指定条件:用HAVING得到特定分组,HAVING子句用于对分组进行过滤,可以使用数字、聚合函数和GROUP BY中指定的列名(聚合键)。
10:对查询结果进行排序: 用ORDER BY语句,SQL中的执行结果是随机排列的,当需要按照特定顺序排序时,可已使用ORDER BY子句。
二、学习难点
1:对表进行聚合查询:不能熟练使用聚合函数,对五种常用的聚合函数的含义区分度不够明显,使用聚合函数删除某个重复值时,感觉到很困难。
2:对表进行分组:GROUP BY语句的书写位置掌握的不是很好,在使用聚合函数及GROUP BY子句时,经常出现的错误有,对于这些错误,不能清楚的弄明白这些错误的原因,以至于最后不能成功解决这些错误。
3:为聚合结果指定条件( HAVING语句)和对查询结果进行排序(ORDER BY语句)等这些问题。
三、对我有用的知识点
从表中选出必要的数据可以使用SELECT语句;其次当不需要选出全部数据时,我们可以选用WHERE语句;然后就是SELECT语句基础的相关法则,熟练掌握这些法制是很有必要的。在这次学习过程中,让我对SQL的运算符号有了大体的了解;SQL的运算符号分为算术运算符和比较运算符号,同时也了解了运算符号的常用法则。
四、感悟
总的来说这次的课程内容非常丰富,不仅在知识的框架上有了一个整体的上升,而且在知识的深度上也有了更加广阔的拓展。原来在课堂上没有听明白的知识点,通过这次的学习,加深了知识点的理解,也能融会贯通了,现在上机操作时,也更熟练了。比如说:聚合函数的使用、GROUP BY语句的运用、用HAVING得到特定分组、以及对查询结果进行排序( ORDER BY语句)的掌握成度等相关的知识点。在学习的过程中,肯定是会遇到一些难题和困难;但是,我觉得,只要用心去做,努力克服,就一定会有所收获的;我在学习的过程中也有遇到了一些困难,我通过查阅相关文件资料以及向老师求助,最终,这些问题都迎刃而解了。