# BETWEEN 条件1 AND 条件2
# (查询条件1和条件2范围内的数据)
SELECT EMPLOYEE_ID,LAST_NAME,SALARY
FROM EMPLOYEES
WHERE SALARY >= 5000 && SALARY <= 8000;
# WHERE SALARY BETWEEN 5000 AND 8000;
# NOT BETWEEN 条件1 AND 条件2
# (查询不在条件1和条件2范围内的数据)
SELECT EMPLOYEE_ID,LAST_NAME,SALARY
FROM EMPLOYEES
WHERE SALARY < 5000 && SALARY >8000;
# WHERE SALARY NOT BETWEEN 5000 AND 8000;
# IN (SET)\ NOT IN (SET)
# 查询部门为10 20 30 部门的员工信息
SELECT LAST_NAME, SALARY,DEPARTMENT_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 10 OR DEPARTMENT_ID = 20 OR DEPARTMENT_ID = 30;
# WHERE DEPARTMENT_ID IN (10,20,30);
# 查询部门工资不是5000, 6000, 7000 的员工信息
SELECT LAST_NAME, SALARY,DEPARTMENT_ID
FROM EMPLOYEES
WHERE SALARY NOT IN (5000,6000,7000);
# LIKE 模糊查询
# 查询last_name 包含a的字符
SELECT LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME LIKE '%A%'; # %代表不确定字符的个数
SELECT LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME LIKE 'A%'; # 以a开头的字符
# 查询包含a和e的字符
SELECT LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME LIKE '%A%' AND LAST_NAME LIKE '%E%';
# WHERE LAST_NAME LIKE '%A%E%' AND LAST_NAME LIKE '%E%A%';
# 查询第二个字符是a的员工信息
# _ : 代表一个不确定的字符
SELECT LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME LIKE '_A%' ;
# 查询第二个字符是_的员工信息
# 使用转义字符
SELECT LAST_NAME
FROM EMPLOYEES
WHERE LAST_NAME LIKE '_\_A%' ;
逻辑运算符
逻辑运算符又被称为布尔运算符,通常用来判断表达式的真假,如果为真返回1,否则返回0,真和假也可以用TRUE和FALSE表示。
运算符 | 注释 |
NOT或! | 逻辑非 |
AND或&& | 逻辑与 |
OR或 II | 逻辑或 |
XOR | 逻辑异或 |
1、逻辑非
逻辑运算符中最简单的运算符就是逻辑非,逻辑非使用NOT或!表示。
操作结论:
逻辑非将跟在它后面的逻辑测试取反,把真变为假,把假变为真。
1)如果NOT后面的操作数为0时,所得值为1;
2)如果操作数为非0时,所得值为0;
3)如果操作数为NULL时,所得值为NULL。
2、逻辑与
逻辑与通常用于判断两个值或多个值得有效性,逻辑与使用AND或&&表示
NULL本真并不表示0或1即真假。当判断条件因为有NULL存在的时候无法判断真假时就返回一个NULL值
1与NULL | NULL | 1 | 1 |
NULL与1 | NULL | 1 | 1 |
0与NULL | 0 | NULL | NULL |
NULL与0 | 0 | NULL | NULL |
NULL与NULL | NULL | NULL | NULL |
3、逻辑或
逻辑或表示两个值或多个值,其中有任意一个非零值,即返回真。逻辑或用||或OR表示
4、逻辑异或
任意两个值的操作数,如果两者都是0或者都是非0,则返回0;如果一个为0,另一个为非0,则返回结果为1;当任意一个值为 NULL时,返回值为NULL。逻辑异或用 “xor” 表示
位运算符
位运算符实际上是对二进制数进行计算的运算符。
MySQL内位运算会先将操作数变成二进制格式,然后进行位运算,最后在将计算结果从二进制变回到十进制格式,方便用户查看
& | 按位与 |
I | 按位或 |
~ | 按位取反 |
^ | 按位异或 |
<< | 按位左移 |
>> | 按位右移 |
优先级表