大数据测试-SQL函数与关键字

本文详细介绍了MySQL中的一些关键函数,包括统计函数如AVG()、COUNT()、MAX()、MIN()、SUM(),文本处理函数如UCASE()、LCASE()、SUBSTRING(),时间函数NOW(),条件判断函数CASE WHEN,以及IF()、IFNULL()函数。通过实例展示了如何在SQL查询中使用这些函数,帮助理解它们的功能和用法。
摘要由CSDN通过智能技术生成

---------------------SQL函数----------------------------------

1、AVG() - 返回平均值
2、COUNT() - 返回行数
3、FIRST() - 返回第一个记录的值
4、LAST() - 返回最后一个记录的值
5、MAX() - 返回最大值
6、MIN() - 返回最小值
7、SUM() - 返回总和

8、UCASE() - 将某个字段转换为大写
9、LCASE() - 将某个字段转换为小写
10、MID() - 从某个文本字段提取字符,MySql 中使用
11、SubString(字段,1,end) - 从某个文本字段提取字符
12、LEN() - 返回某个文本字段的长度
13、ROUND() - 对某个数值字段进行指定小数位数的四舍五入
14、NOW() - 返回当前的系统日期和时间
15、FORMAT() - 格式化某个字段的显示方式

16、COALESCE函数(中文含义:联合)
 

select COALESCE(cust_cnt_total,0) cust_cnt_total from table

第一个参数有值就返回第一个,否则返回第二个


17、INTERVAL(中文含义:间隔)
用法一:INTERVAL函数

SELECT id,point,INTERVAL(point,25,50) from test;


解释:
point字段参与判断,设定的区段是25,50,那么小于25的值返回0,大于等于25小于50的值返回1,大于等于50的值返回2。

用法二:INTERVAL关键字,INTERVAL关键字可以用于计算时间间隔
1、查询当前时间之前3个小时的日期

SELECT NOW() -INTERVAL 3 HOUR;

注:INTERVAL后面的数字可以用数字格式或者字符格式,当时间单位是YEAR_MONTH这种时,必须用字符格式。

2、用在时间函数中
NTERVAL关键字可以用在DATE_SUB(),SUBDATE(),ADDDATE()等函数中

例如:查询三天前的时间

SELECT NOW(),SUBDATE(NOW(),INTERVAL 3 DAY)
SELECT NOW(),SUBDATE(NOW(),INTERVAL 3 DAY),NOW()-INTERVAL 3 HOUR

 

更多函数参考这位老哥写的:https://blog.csdn.net/lkforce/article/details/109537645

18、Case when 条件判断函数

1、简单函数

CASE 字段 WHEN 预期值 THEN 结果1 ELSE 结果2 END

例子:

CREATE TABLE `table_a` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `country` VARCHAR(100) DEFAULT NULL,
  `population` INT(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO table_A (country,population) VALUES('中国',600);
INSERT INTO table_A (country,population) VALUES('美国',100);
INSERT INTO table_A (country,population) VALUES('加拿大',100);
INSERT INTO table_A (country,population) VALUES('英国',200);
INSERT INTO table_A (country,population) VALUES('法国',300);
INSERT INTO table_A (country,population) VALUES('日本',250);
INSERT INTO table_A (country,population) VALUES('德国',200);
INSERT INTO table_A (country,population) VALUES('墨西哥',50);
INSERT INTO table_A (country,population) VALUES('印度',250);


SELECT 
CASE country
WHEN '中国'   THEN '亚洲'
WHEN '印度'   THEN '亚洲'
WHEN '日本'   THEN '亚洲'
WHEN '美国'   THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他'
END AS '洲',
SUM(population) AS '人口'
FROM table_A
GROUP BY CASE country
WHEN '中国'   THEN '亚洲'
WHEN '印度'   THEN '亚洲'
WHEN '日本'   THEN '亚洲'
WHEN '美国'   THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他' END;

2、条件表达式

CASE 
 WHEN condition THEN result1  ELSE result2
END

语句中的condition是条件判断,如果该判断结果为true,那么CASE语句将返回result,否则返回result2,如果没有ELSE,则返回null。CASE与END之间可以有多个WHEN…THEN…ELSE语句。END表示CASE语句结束

3、综合运算

CASE WHEN 和 聚合函数综合使用,能实现更加复杂的统计功能

 

19、IF

IF函数也能通过判断条件来返回特定值,它的语法如下:

IF(expr,result_true,result_false)

20、IFNULL

在Java程序中调用sql语句时,如果返回结果是null,是非常容易引发一些意外情况的

因此,我们希望在SQL中做一些处理,如果查询结果是null,就转换为特定的值,这就要用到Mysql中IFNULL函数

 21、

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件测试李同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值