字符函数

1、获取字节长度(UTF-8,汉字三个字节)
SELECT LENGTH(“张三丰”);
#2、拼接字符串
SELECT CONCAT(lastname,’‘,firstname) 姓名 FROM employees;
#3、大小写转换
SELECT UPPER(‘john’);
SELECT CONCAT(UPPER(last_name),’
‘,LOWER(first_name)) 姓名 FROM employees;
#4、获取指定索引后面对所有字节
SELECT SUBSTR(‘abcdefghiuj’,5);
#5、获取从指定索引处开始指定长度的字符
SELECT SUBSTR(‘abcdefghiuj’,3,5);
#5、返回子串第一次出现的索引,找不到返回0
SELECT INSTR(“神雕侠侣”,”侠侣”);
#6、去前后空格(或指定字符)
SELECT TRIM(“ 张翠山 “);
SELECT TRIM(“a” FROM ‘aa神雕aabb侠侣aaaaaa’);
#7、左填充使字符达到指定长度(RPAD—右填充)
SELECT LPAD(“杨过”,5,”@”) as 填充;
#8、替换
SELECT REPLACE(“ABCDEFGABCD”,”ABC”,”SS”);

数学函数

1、四舍五入、保留…
SELECT ROUND(12.567,2);
#2、向上取整(>=参数的最小参数)
SELECT CEIL(-2.01);
#3、向下取整…
SELECT FLOOR(-2.01);
#4、截断
SELECT TRUNCATE(1.999,1);
#5、取模
SELECT MOD(-10,-3);
#6、RAUND:获取随机数

日期函数

1、日期+时间
SELECT NOW();
#2、返回日期
SELECT CURRENT_DATE;
SELECT CURDATE();
#3、返回时间
SELECT CURTIME();
#4、格式转换
SELECT STR_TO_DATE(‘1999-3-3’,’%Y-%m-%d’);
SELECT * FROM employees WHERE hiredate = STR_TO_DATE(‘4-3-1992’,’%c-%d-%Y’);
SELECT DATE_FORMAT(NOW(),’%y年%m月%d日’);
SELECT last_name,DATE_FORMAT(hiredate,’%y年%m月%d日’) FROM employees WHERE commission_pct IS NOT NULL;
#5、获取指定年、月、日
SELECT YEAR(NOW());
SELECT YEAR(‘2099-1-1’) 年;
SELECT YEAR(hiredate) FROM employees;
SELECT MONTH(NOW());
SELECT MONTHNAME(NOW());(英文形式返回月)
#6、HOUR:小时,MINUTE:分钟,SECOND:秒,DATEDIFF:返回两个日期相差的天数,

其他函数

1、获取版本号
SELECT VERSION();
#2、数据库
SELECT DATABASE();
#3、当前用户
SELECT USER();
#4、PASSWORD('字符'):返回该字符的密码为形式;MD5('字符'):返回该字符的MD5加密形式

流程控制函数

IF函数
SELECT IF(10<5,’大’,’小’);(三目运算符)

CASE 方式一:switch case
SELECT
salary 原始工资,
department_id ID,
CASE
department_id
WHEN 30 THEN salary 1.1
WHEN 40 THEN salary
1.2
WHEN 50 THEN salary * 1.3 ELSE salary
END 新工资
FROM
employees;

方式二 多重if
SELECT salary,
CASE
WHEN salary>8000 THEN ‘资产阶级’
WHEN salary>7000 OR salary<8000 THEN '贫穷'
END 工资
FROM employees;

聚合函数

  • SELECT SUM(salary) FROM employees;   SELECT AVG(salary) FROM employees;
  • SELECT MAX(salary) FROM employees;
  • SELECT MIN(salary) FROM employees;
  • SELECT COUNT(salary) FROM employees;