数据库

MySQL数据操作语言:条件查询

2021-09-19  本文已影响0人  InsaneLoafer

条件查询

SELECT empno , ename , sal 
    FROM t_emp
WHERE deptno=10 AND sal >= 2000;
SELECT empno , ename , sal 
    FROM t_emp
WHERE (deptno=10 OR deptno=20) AND sal >= 2000;

四类运算符

算数运算符

null 进行加减乘除后的值仍然是null,如果此时要对null进行运算可以使用IFNULL(null,0)将其转为0。
SELECT 3+null; -> null
SELECT 3+IFNULL(null,0); -> 3

SELECT empno, ename, deptno, sal, hiredate
FROM t_emp
WHERE deptno=10 AND (sal+IFNULL(null,0))*12>=15000
AND DATEDIFF(NOW(),hiredate)/365>=20;

//DATEDIFF 用于计算前后的天数差

DATEDIFF(date1,date2) 用于计算前后的天数差

比较运算符

SELECT empno,ename,sal,deptno,hiredate
FROM t_emp
WHERE deptno IN(10,20,30) AND job!="SALESMAN"
AND hiredate<"1985-01-01";

SELECT 
    ename,comm,sal,hiredate
FROM t_emp WHERE comm IS NULL
AND sal BETWEEN 2000 AND 3000
AND ename LIKE "%A%";
//匹配一个字符用下划线_
SELECT 
    ename,comm,sal,hiredate
FROM t_emp WHERE comm IS NULL
AND sal BETWEEN 2000 AND 3000
AND ename LIKE "_LAKE";
//正则表达式匹配中文字符且长度为2-4位
SELECT 
    ename,comm,sal,hiredate
FROM t_emp WHERE comm IS NOT NULL
AND sal BETWEEN 1000 AND 3000
AND ename REGEXP "^[\\u4e00-\\u9fa5]{2,4}$";

[\\u4e00-\\u9fa5]代表中文字符的Unicode编码范围

逻辑运算符

二进制按位运算

按位运算符

WHERE子句的注意事项

SELECT empno, ename FROM t_emp WHERE ename = "FORD" AND sal >=2000;
SELECT empno, ename FROM t_emp WHERE deptno = 10 AND sal >= 2000;

各种子句的执行顺序

上一篇 下一篇

猜你喜欢

热点阅读