#筛选出employee_id是偶数的员工
SELECT
*
FROM
employees
WHERE
employee_id MOD 2 = 0;
#以下执行结果为NULL
SELECT
last_name,salary,commission_pct
FROM
employees
WHERE
commission_pct = NULL;
#查询commission_pct为NULL的员工
SELECT
last_name,salary,commission_pct
FROM
employees
WHERE
commission_pct <=> NULL;
#查询表中commission_pct为null的数据
SELECT
*
FROM
employees
WHERE
commission_pct IS NULL;
#或
WHERE
ISNULL(commission_pct);
#查询表中commission_pct不为null的数据
SELECT
*
FROM
employees
WHERE
commission_pct IS NOT NULL;
#where not commission_pct <=> NULL;
SELECT
LEAST(first_name, last_name),
LEAST(LENGTH(first_name), LENGTH(last_name))
FROM
employees;
#查询工资在6000到8000的员工信息
SELECT
employee_id,last_name,salary
FROM
employees
WHERE
salary BETWEEN 6000 AND 8000;
#where salary >= 6000 && salary <= 8000;
注意不能直接写 2500 <= salary <= 3500
要写2500 <= salary && salary <= 3500
#查询工资不在6000到8000的员工信息
SELECT
employee_id,last_name,salary
FROM
employees
WHERE
salary NOT BETWEEN 6000 AND 8000;
#where salary < 6000 or salary > 8000;
#查询部门为10,20,30部门的员工信息
SELECT
last_name,salary,department_id
FROM
employees
WHERE
department_id IN (10,20,30);
# where department_id = 10 or department_id = 20 or department_id = 30;
通配符
_ 只能匹配1个字符
% 匹配0个或多个字符
#查询last_name中包含字符'a'的员工信息
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '%a%';
#查询last_name中包含字符'a'且包含字符'e'的员工信息
#写法1:
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '%a%' AND last_name LIKE '%e%';
#写法2:
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '%a%e%' OR last_name LIKE '%e%a%';
注意可能是a在前面或e在前面,所以用OR的话两种都要写
AND、OR前后的语句要写完整,不能写成last_name LIKE ‘%a%e%’ OR ‘%e%a%’
#查询第2个字符是_且第3个字符是'a'的员工信息
#需要使用转义字符: \
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_\_a%';
#或者 (了解)
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_$_a%' ESCAPE '$';
#如果使用\表示转义,要省略ESCAPE。如果不是\,则要加上ESCAPE。
常用通配符
- ‘^’匹配以该字符后面的字符开头的字符串。
- ‘$’匹配以该字符前面的字符结尾的字符串。
- ‘.’匹配任何一个单字符。
- “[…]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。
为了命名字符的范围,使用一个‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。- ‘*’匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的‘x’字符,“[0-9]*”匹配任何数量的数字,而“*”匹配任何数量的任何字符。
注意:一起使用时,AND的优先级高于OR,先对AND两边的数进行操作。
位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数。