日期函数
1. 函数:NOW() | CURDATE() | CURTIME()
描述:获取系统当前日期时间、日期、时间
实例:SELECT NOW();
SELECT CURDATE();
SELECT CURTIME();
2. 函数:YEAR(DATE) | MONTH(DATE) | DAY(DATE)
描述:从日期中选择出年、月、日
实例:SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());
3. 函数:LAST_DAY(DATE)
描述:返回月份的最后一天
实例:SELECT LAST_DAY(NOW());
4. 函数:ADDDATE(DATE,n) | SUBDATE(DATE,n)
描述:计算起始日期 DATE 加(减) n 天的日期
实例:SELECT ADDDATE(NOW(),10);
SELECT SUBDATE(NOW(),20);
5. 函数:QUARTER(DATE)
描述:返回日期 DATE 是第几季节,返回 1 到 4
实例:SELECT QUARTER(NOW());
6. 函数:DATEDIFF(d1,d2)
描述:计算日期 d1->d2 之间相隔的天数
实例:SELECT DATEDIFF('1998-01-02','1998-06-30');
7. 函数:DATE_FORMAT(d,f)
描述:按表达式 f的要求显示日期 d
实例:SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H-%M-%s');(日期里时小写h12小时制)
数学函数
1. 函数:ABS(X)
描述:返回 X 的绝对值
实例:SELECT ABS(-100);
2. 函数:CEIL(X) | FLOOR(X)
描述:向上(下)取整
实例:SELECT CEIL(1.5);
SELECT FLOOR(1.5);
3. 函数:MOD(X,Y)
描述:返回X MOD Y的结果,取余
实例:SELECT MOD(6,4);
4. 函数:RAND()
描述:返回 0 到 1 的随机数
实例:SELECT RAND();
5. 函数:ROUND(X) ROUND(X,Y) 保留X的Y位小数且四舍五入
描述:四舍五入
实例:SELECT ROUND(1.2345);
SELECT ROUND(1.2345,3);
6. 函数:TRUNCATE(X,Y) 舍尾法
描述:返回数值 X 保留到小数点后 Y 位的值
实例:SELECT TRUNCATE(1.2345,3);
SELECT TRUNCATE(1.2345,7);
字符串函数
1. 函数:CONCAT(s1,s2...sn)
描述:字符串 s1,s2 等多个字符串合并为一个字符串
实例:SELECT CONCAT('杨','晨');
2. 函数:CHAR_LENGTH(str)
描述:返回字符串 str 的字符数
实例:SELECT CHAR_LENGTH('杨晨');
3. 函数:LENGTH(str) 返回字符串 s 的字节数
描述:中文在utf8占3个字节,在gbk下占2个字节
实例:SELECT LENGTH('杨晨');
4. 函数:UCASE(s) | UPPER(s)
描述:将字符串转换为大写
实例:SELECT UCASE('dover');
SELECT UPPER('dover');
5. 函数:LCASE(s) | LOWER(s)
描述:将字符串转换为小写
实例:SELECT LCASE('DOVER');
SELECT LOWER('DOVER');
6. 函数:LOCATE(s1,s)
描述:从字符串 s 中获取 s1 的开始位置(从1开始)
实例:SELECT LOCATE('ov','dover');
7. 函数:TRIM(str) | LTRIM(str) | RTRIM(str)
描述:字符串去空格
实例:SELECT TRIM('d o v e r');
SELECT LTRIM('d o v e r');
SELECT RTRIM('d o v e r');
8. 函数:REPLACE(s,s1,s2)
描述:将字符串 s2 替代字符串 s 中的字符串 s1
实例:SELECT REPLACE('dover','do','flo');
9. 函数:SUBSTR(s, START, LENGTH)
描述:从字符串 s 的 START 位置截取长度为 LENGTH 的子字符串
实例:SELECT SUBSTR('dover',2,3);
10. 函数:STRCMP(str1,str2)
描述:比较字符串大小,左大于右时返回1,
左等于右时返回0,左小于于右时返回-1,
实例:SELECT STRCMP('杨晨','猫爬');
case函数(switch)
对查询的结果进行判断用到
-- 语法
SELECT 字段,字段,...,
CASE 表名.字段
WHEN 判断条件1 THEN 希望的到的值1
WHEN 判断条件2 THEN 希望的到的值2
ELSE 前面条件都没有满足情况下得到的值
END 新列名
FROM 表名;
SELECT ename,sal,grade,
CASE emp.grade
WHEN 1 THEN '谈恋爱'
WHEN 2 THEN '结婚'
WHEN 3 THEN '赡养老人,抚养小孩'
ELSE '天龙人'
END '阶段'
FROM emp
case后接的字段可以不在查询后出现
if函数
在查询的结果中要对数据进行展示结果判断时使用到
-- 语法
SELECT IF( 条件表达式 ,条件成立的结果, 条件失败的结果) FROM table_name;
-- 工资+奖金大于3000的员工 显示养老阶段,否则显示发展阶段
SELECT ename,sal,comm,
IF (sal+IFNULL(comm,0)>=3000,'养老阶段','发展阶段')
FROM emp;
-- 如果字段值为空,显示为0
IFNULL(字段,0)