mysql 基础用法
函数between and 的用法
#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT *FROM `employees`
WHERE `department_id` BETWEEN 90 AND 110 OR `salary`>15000;
like的用法 escpe:通配符转义
#案例3:查询员工名中第二个字符为_的员工名
SELECT `last_name`
FROM `employees`
WHERE `last_name` LIKE '_$_%' ESCAPE '$';
in的用法
-
使用in提高语句简洁度
-
in列表的值类型必须一致或兼容
-
in列表中不支持通配符
#案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN( 'IT_PROT' ,'AD_VP','AD_PRES');
约束
就是一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
去重
#案例:查询员工表中涉及到的所有的部门编号
SELECT DISTINCT department_id FROM employees;
拼接字符串
CONCAT
SELECT CONCAT('a','b','c') AS 结果;
判断是否为null
ifnull
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值
IFNULL(expr1,expr2)
获取参数值的字节个数
length
SELECT LENGTH('john');
SELECT LENGTH('张三丰hahaha');
大小写
upper 大写 lower 小写
SELECT CONCAT(UPPER(last_name),LOWER(first_name)) 姓名 FROM employees;
索引
#4.substr、substring 注意:索引从1开始 #截取从指定索引处后面所有字符
SELECT SUBSTR('李莫愁爱上了陆展元',7) out_put;
#截取从指定索引处指定字符长度的字符
SELECT SUBSTR('李莫愁爱上了陆展元',1,3) out_put;
#案例:姓名中首字符大写,其他字符小写然后用_拼接,显示出来
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) out_put
FROM employees;
case when 条件1 then 要显示的值1或语句1 when 条件2 then 要显示的值2或语句2 else 要显示的值n或语句n end
#案例:查询员工的工资的情况
如果工资>20000,显示A级别
如果工资>15000,显示B级别
如果工资>10000,显示C级别
否则,显示D级别
SELECT salary,
CASE
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END AS 工资级别
FROM employees;
时间差 DATEDIFF
SELECT MAX(hiredate) 最大,MIN(hiredate) 最小, DATEDIFF(MAX(hiredate),MIN(hiredate) ) DIFFRENCE
FROM employees;
升序 asc 降序 desc 默认升序
limit 显示多少行的数据
#案例1:查询前五条员工信息
SELECT * FROM employees LIMIT 0,5;
SELECT * FROM employees LIMIT 5;
子查询
in 和 =any 即满足一个即可 = all 需要满足全部条件
not in 和 <> all 即不等于所有,每个都不相等。但是<>any 只要有一个不相等即为true