1.基础函数
SELECT
ROUND(5.756,2) 四舍五入,保留小数位数
TRUNCATE(5.7345,2) 截断数值
CEILING(5.2) 最小整数
ABS() 绝对值
RAND() 0-1的随机数
更多的可查询:MySQL :: MySQL 8.0 Reference Manual :: 12.6 Numeric Functions and Operators
2.字符串函数
SELECT
LENGTH('sky') 字符串长度
UPPER('sky') 大写 LOWER('Sky') 小写
LTRIM(' sky') 去除左边的空格 RTRIM('sky ')去除右边的空格
TRIM('s k y ') 删除所有空格
LEFT('Kindergarten',4) 选取左侧4个字符 kind RIGHT('Kindergarten',4) 选取右侧4个字符
SUBSTRING('Kindergarten',4,2) 字符截断(开始位置,截断长度)
LOCATE('ten','Kindergarten') 确定一个字符或一串字符的位置
REPLACE('Kindergarten','garten','garden')替换字符/串
CONCAT('first','last') 连接 CONCAT('first',' ','last')中间加空格
更多可查询:
MySQL :: MySQL 5.7 Reference Manual :: 12.8 String Functions and Operators
3.日期函数
SELECT
NOW() 当前的日期+当前的时间 2021/11/10 17:33:01
CURDATE() 当前的日期 2021/11/10
CURTIME() 当前的时间 17:33:01
YEAR(NOW()) 年份 2021 MONTH(NOW()) 月份11
DAY(NOW()) 天数10 HOUR(NOW()) 17
DAYNAME(NOW()) 字符串日期
EXTRACT调用
SELECT EXTRACT (YEAR FROM NOW())
4.格式化日期和时间
SELECT DATE_FORMAT(NOW(),'%Y %M')
TIME_FORMAT(NOW(),'%H %M')
更多的可查询:
MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functions
5.计算日期和时间
SELECT DATE_ADD(NOW(),INTERVAL 1 DAY/YEAR)
增加一天或者一年
SELECT DATE_SUB(NOW(),INTERVAL 1 DAY/YEAR)
SELECT DATE_ADD(NOW(),INTERVAL -1 DAY/YEAR)
减去一天或者一年
SELECT DATEDIFF('2019-01-05','2019-01-01')
计算时间间隔 天数
SELECT TIME_TO_SEC('09:00')- TIME_TO_SEC('09:02')
计算时间间隔 秒数
6.IFNULL与COALESCE函数
SELECT
IFNULL (shipper_id,'Not assigned') AS shipper 如果空值,返回为Not assigned
COALESCE(shipper_id,comments,'Not assigned')
如果空值,返回为默认值,无默认值返回Not assigned
7.IF函数
SELECT
order_date,加逗号
IF(
YEAR(order_date)=YEAR(NOW())-2,
'active',
'archived') AS category 返回一列值
FROM orders
8.CASE函数
SELECT
order_id,
CASE
WHEN YEAR(order_date) = YEAR(NOW()) THEN 'acttive'
WHEN YEAR(order_date) = YEAR(NOW())-1 THEN 'last year'
WHEN YEAR(order_date) < YEAR(NOW())-1 THEN 'archied'
ELSE 'future'
END AS category
FROM orders
9.创建视图
CREATE VIEW sales_by_client AS
SELECT
.....
FROM table
删除试图 DROP VIEW sales_by_client