SQL关键字和函数#1

SQL关键字和函数#1

上班干活时遇到的不熟悉的 SQL 关键字和函数,就当摸鱼学习了。

UNION

UNION 的作用为合并两个或多个 SELECT 语句的结果集。使用 UNION 需要注意:UNION 连接的 SELECT 语句必须有相同数量的列,列要有相同(相似)的数据类型,同时列的顺序也要保持一致。

简单地使用 UNION 的例子:

SELECT user_name AS name, user_pwd AS pwd FROM user_table_1
UNION
SELECT user_name AS name user_pwd AS password FROM user_table_2

可以理解为,UNION 函数的作用就是将多个列相同的结果集合并,最终得到的结果集的列名与第一个 SELECT 语句的结果集相同。

需要注意的是,UNION 只会选取多个结果集中不同的值,即最终的结果集的数据不会重复;若要选取所有数据,需要使用 UNION ALL,示例如下:

表 user_table_1:

user_nameuser_pwd
qiyuanc123456
qiyuanb111111

表 user_table_2:

user_nameuser_pwd
qiyuanc123456
qiyuani222222

此时使用上面的 SQL 语句的结果为:

namepwd
qiyuanc123456
qiyuanb111111
qiyuani222222

将 UNION 换为 UNION ALL 的 SQL 语句:

SELECT user_name AS name, user_pwd AS pwd FROM user_table_1
UNION ALL
SELECT user_name AS name user_pwd AS password FROM user_table_2

此时的结果为:

namepwd
qiyuanc123456
qiyuanb111111
qiyuanc123456
qiyuani222222

简单的介绍一下 UNION 就是这样啦。

GROUP BY

GROUP BY 主要与聚合函数一起使用,根据一个或多个列对结果进行分组。

聚合函数:对一组值进行计算,并返回单个值,例如:

AVG():返回数值列的平均值。
COUNT():返回匹配指定条件的行数。
FIRST():返回指定列中的第一个记录的值。
LAST():返回指定列中的最后一个记录的值。
MAX():返回指定列中的最大值。
MIN():返回指定列中的最小值。
SUM():返回数值列的总和。

可以理解为,GROUP BY 按照指定的列队数据进行分组,再对这些组使用聚合函数

举个栗子,表 user_consume 记录了用户的消费记录:

user_idcost_moneydate
1202022-5-24
1502022-5-25
2402022-5-26
3352022-5-27
2102022-5-27

现在要获取每个用户的消费金额(实际场景中肯定不会用这么铸币的方式),通过以下 SQL 实现:

SELECT user_id, SUM(cost_money) AS nums
FROM user_consume GROUP BY user_id;

得到的结果集为:

user_idnums
170
250
335

总之 GROUP BY 的作用就是按照要求进行分组再使用聚合函数啦。

COALESCE

COALESCE 函数用于取参数列表中的非 null 值,具体语法为:

COALESCE (expression_1, expression_2, ... ,expression_n)

在遇到第一个非 null 值时就会返回该值,若所有参数都为 null,则会返回 null,与以下 SQL 等价:

CASE
WHEN (expression_1 IS NOT NULL) THEN expression_1
WHEN (expression_2 IS NOT NULL) THEN expression_2
...
WHEN (expression_n IS NOT NULL) THEN expression_n
ELSE NULL

对于 COALESCE 这个函数就不用栗子展示了,有点麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值