备注:该博客内容根据技术教学视频整理与总结而成,原视频来自于尚硅谷MySQL教程。
一、字符函数
SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook") AS ConcatenatedString;
SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString; -- UNO
SELECT UPPER("runoob"); -- RUNOOB
SELECT LOWER('RUNOOB') -- runoob
SELECT LTRIM(" RUNOOB") AS LeftTrimmedString; -- RUNOOB
SELECT RTRIM("RUNOOB ") AS RightTrimmedString; -- RUNOOB
SELECT TRIM(' RUNOOB ') AS TrimmedString;
SELECT REPLACE('abc','a','x') --xbc
SELECT LPAD('abc',5,'xx') -- xxabc
SELECT RPAD('abc',5,'xx') -- abcxx
SELECT INSTR('杨不悔爱上了殷六侠','殷六侠') AS out_put; --7
二、 数学函数
SELECT ROUND(1.23456) --1
SELECT RAND() --0.93099315644334
SELECT FLOOR(1.5) -- 1
SELECT CEIL(1.5) -- 2
SELECT MOD(5,2) -- 1
SELECT TRUNCATE(1.23456,3) -- 1.234
三、日期函数
SELECT NOW() -> 2018-09-19 20:57:43
SELECT CURDATE() -> 2018-09-19
SELECT CURRENT_TIME() -> 19:59:02
SELECT MONTHNAME('2011-11-11 11:11:11') -> November
SELECT DATEDIFF('2001-01-01','2001-02-02') -> -32
SELECT STR_TO_DATE("August 10 2017", "%M %d %Y") -> 2017-08-10
SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r') -> 2011-11-11 11:11:11 AM
相关格式转换:
序号 | 格式符 | 功能 |
---|---|---|
1 | %Y | 四位的年份 |
2 | %y | 两位的年份 |
3 | %m | 月份(01,02,...11,12) |
4 | %c | 月份(1,2,...11,12) |
5 | %d | 日(01,02,...) |
6 | %H | 小时(24小时制) |
7 | %h | 小时(12小时制) |
8 | %i | 分钟(00,01...59) |
9 | %s | 秒(00,01...59) |
四、流程控制函数
SELECT IF(1 > 0,'正确','错误') ->正确
CASE expression WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... WHEN conditionN THEN resultN ELSE result END CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。
SELECT CASE WHEN 1 > 0 THEN '1 > 0' WHEN 2 > 0 THEN '2 > 0' ELSE '3 > 0' END ->1 > 0
SELECT IFNULL(null,'Hello Word') ->Hello Word
SELECT ISNULL(NULL); ->1
五、其他函数:
SELECT VERSION() -> 5.6.34
SELECT DATABASE() -> runoob
SELECT USER() -> guest@%
六、分组函数
SELECT COUNT(ProductID) AS NumberOfProducts FROM Products;
SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails;
SELECT MAX(Price) AS LargestPrice FROM Products;
SELECT MIN(Price) AS MinPrice FROM Products;
SELECT AVG(Price) AS AveragePrice FROM Products;
特点:
1、以上五个分组函数都忽略null值,除了count(*)
2、sum和avg一般用于处理数值型;max、min、count可以处理任何数据类型
3、都可以搭配distinct使用,用于统计去重后的结果
4、count的参数可以支持:字段、*、常量值,一般放1,建议使用 count(*)
5、和分组函数一同查询的字段要求是group by后的字段