1. LEAST
函数:
返回多个值中的最小值
LEAST(value1, value2, ..., valueN)
2. GREATEST
函数:
返回多个值中的最大值
GREATEST(value1, value2, ..., valueN)
字符串比较规则:
- 从字符串的第一个字符开始,逐个字符进行比较,直到找到不同的字符为止。如果字符串的前几个字符相同,则比较下一个字符。
- 字符顺序决定大小:比如
'A' < 'B'
,'a' < 'b'
,如果一个字符串是另一个字符串的前缀,则短的字符串被认为更小。例如,'abc' < 'abcd'
。
SELECT GREATEST('apple', 'banana', 'grape') AS max_value; --grape
3.字符串函数
concat(s1,s2,...,sn)
: 拼接字符串, 把s1,s2,sn拼接成一个字符串lower(str)
: 把字符串str转化为小写;upper
转为大写lpad(str,n,pad)
: 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 ;rpad()
右填充trim(str)
: 去掉字符串头部和尾部的空格substring(str,start,len)
: 返回字符串str从start位置开始len长度的字符串
SELECT SUBSTRING('wjq','3',1)
FROM DUAL
SELECT RPAD('wjq',7,'gfgkhj')
FROM DUAL
4.数值函数
ceil(x)
: 向上取整;floor(x)
:向下取整mod(x/y)
: 返回x/y的模rand()
: 返回0到1内的随机数round(x,y)
: 求x四舍五入的值,保留y位小数
5.日期函数
curdate()
: 返回当前日期curtime()
: 返回当前时间now()
:返回当前日期和时间year(date)
: 返回指定date的年份month(date)
: 获取指定date的月份day(date)
: 获取指定date的日期date_add(date,interval expr type)
:返回一个日期/时间值加上expr时间间隔后的时间值datediff(date1,date2)
: 返回这两个时间之间的天数DATEDIFF(end_date, start_date)
:返回两个日期的差值
6.流程函数
-
IF(value,t,f)
如果value为true,则返回t,否则返回f -
IFNULL(value1,value2) 如果value1不为空,返回value1,否则返回value2
-
CASE WHEN
[val]
THEN[res1]
… ELSE[default]
END 如果val1为true,返回res1,…否则返回default默认值 -
CASE
[expr]
WHEN [val]THEN
[res1]... ELSE
[default]` END 如果expr的值等于val1,返回res1,…否则返回default默认值
SELECT IF(1 > 0, 'True', 'False');
SELECT IFNULL(NULL, 'Default Value');
SELECT CASE WHEN score >= 60 THEN 'Pass' ELSE 'Fail' END;
SELECT CASE grade WHEN 'A' THEN 'Excellent' WHEN 'B' THEN 'Good' ELSE 'Average' END;
7.聚合函数
COUNT()
:计算一列中的行数或非空值的个数
SELECT COUNT(*) FROM table_name;
SUM()
:计算一列的总和。
SELECT SUM(column_name) FROM table_name;
AVG()
:计算平均值。
SELECT AVG(column_name) FROM table_name;
MAX()
:返回列中最大值。
SELECT MAX(column_name) FROM table_name;
MIN()
:返回列中最小值。
SELECT MIN(column_name) FROM table_name;
GROUP_CONCAT()
(MySQL):将列中的值连接成一个字符串。
SELECT GROUP_CONCAT(column_name) FROM table_name;
8.IFNULL函数
检查表达式的值是否为 NULL
。如果是 NULL
,则返回一个指定的替代值;如果不是 NULL
,则返回表达式原来的值。
语法
IFNULL(expression, alt_value)
expression
:要检查的表达式alt_value
:当expression
为NULL
时返回的值。
9.count的几种用法
COUNT(*)
会统计表中的所有行数(包括包含 NULL
值的行)
SELECT COUNT(*) FROM table_name;
COUNT(column_name)
只统计列中非 NULL
的值
SELECT COUNT(column_name) FROM table_name;
COUNT(DISTINCT column_name)
统计列中不同值的数量,忽略重复值和 NULL
值.
SELECT COUNT(DISTINCT column_name) FROM table_name;
--字符串函数
select concat('warren','ricci') from dual;-- 拼接字符串
select lower('RICCI'); --转为小写
select upper('ricci');-- 转为大写
select lpad('1',5,'0');-- 左填充,使用'0'对'1'左边进行填充,达到10个字符串长度
select rpad('1',5,'0');-- 右填充,使用'0'对'1'右边进行填充,达到10个字符串长度
select trim(' warren '); --去除头部和尾部的空格
select substring('Warren',2,3); --截取字符串,从索引2位置开始(第一个字符索引为1),截取长度为3
--数值函数
select ceil(4.5);-- 向上取整
select floor(4.5);-- 向下取整
select mod(3,4); --返回3/4的模
select rand(); --返回一个0到1的随机数
select round(4.336,2);-- 四舍五入,保留两位小数
--日期函数
select curdate();-- 当前日期
select curtime();-- 当前时间
select now();-- 当前时间和日期
select year(now()); -- 查看日期所属年份
select month(now()); -- 查看日期所属月份
select day(now()); -- 查看日期的号数
select date_add('2023-12-03',interval 70 day); --从某一个日期往后推指定天数
select date_add(now(),interval 70 day); --从某一个日期往后推指定天数
select date_add(now(),interval 70 month); --从某一个日期往后推指定月数
select date_add(now(),interval 70 year); --从某一个日期往后推指定年数
select datediff(now(),'2023-11-20'); -- datddiff(起始时间,结束时间),返回起始时间和结束时间之间的天数
# 流程函数
select if(true,'warren','ricci'); -- if(value,t,f),如果value为true,返回t,否则返回f
select ifnull(null,'Warren');-- ifnull(value1,value2),如果value1不为空,返回value1,否则返回value2,空字符串:''不为空
use `database example`;
SELECT 职位,(CASE 旷工
WHEN '1' THEN '优秀'
ELSE '不合格'
END) as '旷工情况表'
FROM works;
SELECT 职位,(CASE
WHEN 旷工<=1 THEN '优秀'
when 旷工=3 then '太差了'
ELSE '还行'
END) as '旷工情况表'
FROM works; -- 两种case语句
标签:返回,name,--,SELECT,MySQl,字符串,解析,select,函数
From: https://blog.csdn.net/2301_80165178/article/details/144556655