#一、字符函数
#1、获取字节个数
SELECT LENGTH('张三丰哈哈哈');
SHOW VARIABLES LIKE '%char%';
#2、concat 拼接字符串
#3、upper、lower
SELECT CONCAT(UPPER(last_name),'_',LOWER(first_name)) FROM myemployees.employees;
#4、substr //注意索引从 1开始
SELECT SUBSTR('我就是大侠' FROM 1 FOR 2);
//案列:姓名中首字母大写,其他字符小写然后拼接,显示出来
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) AS '名字' FROM employees ORDER BY LENGTH(last_name);
#5、INSTR(str,substr) 返回它的起始索引,第一个参数是 主串, 第二个参数是 子串
SELECT INSTR('我就是大侠','大侠');
#6、TRIM([remstr FROM] str); 去空给
SELECT TRIM('x' FROM 'xxx123xxx');
#7、LPAD(str,len,padstr) 左填充右截断
SELECT LPAD('2222e',10,'xx');
#9、replace 替换
SELECT REPLACE('你是枭雄','枭雄','英雄');
#2、数学函数
Round(1.5);#四舍五入
FLOOR(1.0);#向下取整 <=最近的整数
CEIL(1,02);#向上取整 >=最近的整数
MOD(10,3);#取余数
#3、日期函数
#日期函数
SELECT NOW();#返回当前日期、时间
SELECT CURDATE();#返回日期
SELECT CURTIME();#返回时间
#可以指定 年、月、日-------等等
SELECT YEAR('1996-10-12');
#将字符串 转换成 日期格式
SELECT STR_TO_DATE('1996-10-12','%Y-%m-%d') AS ls;
#将日期格式 转换成 字符
SELECT DATE_FORMAT('1996/10/12','%Y年%m月%d日');
#4、流程控制
#条件控制符
#1、if函数
SELECT IF(10>5,'1','2');#等于三目运算符
#2、case WHEN THEN 函数
/*
CASE 要判断的字段或表达式 switch 要判断的字段或表达式
WHEN 常量1(也可以是条件) THEN 执行语句1; CASE 常量1: 执行语句1; break;
|| ||
|| ||
|| ||
ELSE 要显示的值n或语句n defalut 要显示的值n或语句n;break;
END
*/
/*案例 查询员工的工资,要求
部门号=30,显示的工资为1.1倍
部门号=40,显示的工资为1.2倍
-----------------------1.3倍
其他维持不变
*/
SELECT myemployees.employees.salary AS 原始工资,department_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 AS 新工资
FROM myemployees.employees;