今天花了快一个下午的时间,刚刚好过了一遍DataCamp里SQL查询语句的入门课程。很推荐希望入门SQL语言的人先用这个课程感性接触下SQL,再去啃那些SQL手册。附上课程地址:

https://www.datacamp.com/courses/intro-to-sql-for-data-science

学习一门新语言时,对着编码规范,确定一开始应该养成什么撰写习惯是很重要的。我参考了这篇文章介绍的编码规范:

https://zhuanlan.zhihu.com/p/23403121

我自己提炼了几条现在用得上的规范,如下:

  • 关键字大写书写,列名、表明尽量小写。
  • SELECT中,一行放一个列/表/组合名。
  • 一条语句分号结尾。
  • 条件语句对齐。
  • –是行内注释,/**/是多行注释

然后是认为值得记一笔的知识点记录:

  • DISTINCT:相当于把结果再进行一次.unique()操作。
  • SELECT COUNT(*) FROM [table_name] 得到一个表有多少条记录。
  • COUNT([non-*])返回表中指定列非空数据的个数。结合DISTINCT,得到非空、不重复的数据值个数。
  • 如果需要DISTINCT参数,写法:COUNT(DISTINCT [col_name])
  • SQL中,<>表示!=,即not eq。
  • WHERE永远是跟在FROM之后出现。
  • SQL中,字符串用英文单引号表示。
  • AND和OR运算符同时使用时,注意优先级问题,用括号解决。
  • SQL中,表示区间范围可以用BETWENN关键字,代替类C的蠢笨写法。BETWENN表达了左闭右闭区间。
  • BETWEEN关键字的结合性强于NOT。NOT强于AND。AND强于OR。
  • IN声明一个期望的取值集合,用到括号。
  • 查询空值:条件分句写IS NULL。
  • SQL里,%代表通常搜索里的*通配符,_代表通常搜索里的?通配符。
  • 对字符串匹配,是用LIKE关键字。
  • AS关键字,用在合计函数调用后,给结果起一个别名,方便使用。
  • MIN、MAX、AVG等合计函数无法在WHERE中使用。
  • ORDER BY跟在FROM后面,默认是升序,如果想要降序可以最后加一个DESC。
  • ORDER BY后跟上希望作为排序依据的字段。
  • ODDER BY支持多优先级排序,按照字段声明的顺序确定优先级。
  • GROUP BY结合合计函数使用,永远跟在FROM之后,可以理解成给合计函数的返回值再做一个表格式化。
  • ORDER BY永远在GROUP BY后面使用。
  • 合计函数不能用于WHERE子句中,但能用在HAVING子句里啊(HAVING的用途)
  • GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前.。HAVING语句必须在ORDER BY子句之后。即WHERE……GROUP BY……HAVING……
  • WHERE先执行,再GROUP BY分组;GROUP BY先分组,HAVING再执行。
  • JOIN关键字用于连接另一个表(没试多个表的情况,暂时仅仅关注了例码里的两个表),用ON关键字声明用于对应元组的外键。