函数
聚合函数
COUNT() : 计算表中的记录数(行数)
SELECT COUNT(列名) FROM Product; (下列函数表达式相同)
SUM() : 计算表中数值列中数据的合计值
AVG() : 计算表中数值列中数据的平均值
MAX() : 求出表中任意列中数据的最大值
MIN() : 求出表中任意列中数据的最小值
算术函数
ABS(数值) 绝对值函数
SELECT m, ABS(m) AS abs_col FROM SampleMath;
MOD(被除数,除数) 求余函数
ROUND(数值,保留小数的位数) 四舍五入函数
CEIL(数值) 向上取整
FLOOR(数值) 向下取整
PI() 返回圆周率
RAND() 返回一个小于1的随机数
SQRT(数值) 返回一个数的平方根
字符串函数
CONCAT(str1, str2) 拼接字符串
LENGTH(str) 字符串长度函数
Instr(字符串,子串) 返回子串第一次出现的索引值,如果没有则返回0
REGEXP 'expr' 正则表达式
SELECT name FROM person_tbl WHERE name REGEXP '^st';
NOT REGEXP
REGEXP_REPLACE()
REGEXP_SUBSTR()
字符串转换函数
LTRIM(str) 去除串左边的空格
RTRIM(str) 去除串右边的空格
LOWER(str) 小写转换函数
UPPER(str) 大写转换函数
REPLACE(被替换的str,传入的str) 替换字符串函数
SUBSTRING(str,索引) 字符串的截取函数
日期函数
CURRENT_DATE() 当前日期函数
SELECT CURRENT_DATE();
CURRENT_TIME() 当前时间函数
TIME() 返回日期时间的时间部分
DATE() 返回日期时间的日期部分
DATE_FORMAT() 返回格式化的日期或时间串
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
YEAR() 返回日期的年份部分
MONTH() 返回日期的月份部分
MONTHNAME() 返回日期对应月份的英文名
WEEK() 计算日期是一年中的第几周
WEEKOFYEAR() 计算某天位于一年中的第几周
DAY() 返回日期的天数部分
DAYOFYEAR() 返回日期是一年中的第几天
DAYOFMONTH() 返回日期在一个月中的位置
DAYNAME() 返回日期对应工作日的英文名
HOUR() 返回时间的小时部分
MINUTE() 返回时间的分钟部分
SECOND() 返回时间的秒部分
DATEOFWEEK() 对于日期,返回对应的星期几
DATEDIFF() 计算两个日期之差
NOW()、CURRENT_TIMESTAMP()、LOCALTIME()、SYSDATE() 返回当前日期和时间
条件判断函数
IF(expr, v1, v2) 如果expr表达式为True则返回v1,如果为False则返回v2
示例:
SELECT IF(1<2,'yes','no');
IFNULL(v1,v2) 如果v1不为null,返回v1,如果为null,返回v2
示例:
SELECT IFNULL(NULL,2);
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END
如果expr等于某个vn,则返回对应位置THEN后面的结果,如果所有值都不想等,则返回ELSE的rn
示例:
SELECT product_name,
CASE WHEN product_type = ' 衣服 '
THEN 'A : ' | | product_type
WHEN product_type = ' 办公用品 '
THEN 'B : ' | | product_type
WHEN product_type = ' 厨房用具 '
THEN 'C : ' | | product_type
ELSE NULL
END AS abc_product_type
FROM Product;
系统信息函数
VERSION() 返回当前MYSQL版本号
CONNECTION_ID() 查看当前用户的连接数
SELECT USER() 获取当前登录用户名称