sql笔记

1.select写列名比*性能更好。

2.group by也能用来去重。

3.--LIMIT (m),n:从第m+1条开始,取n条数据; --LIMIT n OFFSET m:从第m+1条开始,取n条数据;

4.闭区间:age>=20 and age<=23;或者between 20 and 23;

5.不等于的基础语法

  #where university != '复旦大学'

  #where university not like '复旦大学'

  # where university not in ('复旦大学')

6.空值处理:在实际工作中,空字符串也会导致空值,where age is not null and age <> ""

7.是或不是的时候才能用“is”,别的时候有关联关系还是用等号和大于小于才行

8.筛选条件为某个范围,where in ()

9.匹配串中可包含如下四种通配符:

_:匹配任意一个字符;

%:匹配0个或多个字符;

[ ]:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符“-”表 达 );

[^ ]:不匹配[ ]中的任意一个字符。

10.# 方法2

select gpa

from user_profile

where university='复旦大学'

order by gpa desc limit 1

11.round(avg(gpa), 1),结果保留1位小数;

12.在 SQL 中,HAVING 子句不能直接使用别名,而是需要使用原始的聚合函数(如 AVG(question_cnt))。

  1. WHERE 子句是在聚合之前执行的,而 avg_question_cnt 和 avg_answer_cnt 是聚合后的结果。
  2. 如果需要对聚合后的结果进行筛选,应该使用 HAVING 子句,而不是 WHERE。

13.NULLIF(COUNT(DISTINCT q.device_id), 0):如果 COUNT(DISTINCT q.device_id) 为零,NULLIF 会返回 NULL,从而避免除以零的错误。

14.结果不去重就用union all,去重就用 union。

where university='山东大学' or gender="male"的话,也是去重的。

(持续更新中-- 周为单位整理下框架= =)

全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务