1.算数运算符
*加减运算
*在SQL中,+没有连接作用,只表示加法运算
*乘除运算
*取模运算
2.比较运算符
*字符串存在隐式转换,如果转换数值不成功,则看做0,两边都是字符串的话,则按照ANSI的比较规则进行比较
*安全等于运算符 安全等于运算符(<=>)与等于运算符(=)的作用是相似的, 唯一的区别 是‘<=>’可以用来对NULL进行判断。在两个操作数均为NULL时,其返回值为1,而不为NULL;当一个操作数为NULL时,其返回值为0,而不为NULL。
*LIKE:模糊查询
%代表不确定个数的字符(0个,1个或多个)
例如:SELECT last_name FROM employees WHERE last_name LIKE ‘%a%’;#查询last_name里包含a的
_代表一个不确定的字符
例如:SELECT last_name FROM employees WHERE last_name LIKE ‘_a%’;#查询last_name里第二个字符是a的
\代表转义字符
例如:SELECT last_name FROM employees WHERE last_name LIKE ‘_\_a%’;#查询last_name里第二个字符是_且第三个字符是a的
3.逻辑运算符
*XOR:满足A且不满足B或满足B且不满足A
4.位运算符
*位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制
5.运算符的优先级
6.使用正则表达式查询
#1.选择工资不在5000到12000的员工的姓名和工资
SELECT first_name,last_name,salary
FROM employees
WHERE salary <5000 OR salary > 12000;
# 2.选择在20或50号部门工作的员工姓名和部门号
SELECT first_name,last_name,department_id
FROM employees
WHERE department_id=20 OR department_id =50;
# 3.选择公司中没有管理者的员工姓名及job_id
SELECT first_name,last_name,job_id
FROM employees
WHERE manager_id IS NULL;
# 4.选择公司中有奖金的员工姓名,工资和奖金级别
SELECT first_name,last_name,salary,commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;
# 5.选择员工姓名的第三个字母是a的员工姓名
SELECT last_name
FROM employees
WHERE last_name LIKE '__a%';
# 6.选择姓名中有字母a和k的员工姓名
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%' AND last_name LIKE '%k%';
# 7.显示出表 employees 表中 first_name 以 'e'结尾的员工信息
SELECT *
FROM employees
WHERE first_name LIKE '%e';
# 8.显示出表 employees 部门编号在 80-100 之间的姓名、工种
SELECT last_name,job_id
FROM employees
WHERE department_id >80 AND department_id <100;
# 9.显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、工资、管理者id
SELECT last_name,salary,manager_id
FROM employees
WHERE manager_id IN (100,101,110);