Oracle基础条件查询
当我们要组合三个或者三个以上条件的时候,就需要用到小括号()来表示应该如何进行条件运算。
例如,编写一个复杂的条件:工资在5000以下或者10000以上,并且是JOB_ID为SA_MAN:
按多个条件查询employees:
SELECT employee_id,last_name,salary,job_id FROM employees
WHERE (salary < 5000 OR salary > 10000) AND JOB_ID = 'SA_MAN';
如果不加括号,条件运算按照NOT、AND、OR的优先级进行;
NOT优先级最高,
AND其次,
OR是最后;
加上括号可以改变优先级。
在Oracle条件查询where条件之中,当遇到查询值不清楚时,可以利用模糊查询LIKE关键字进行where条件的模糊查询。
LIKE 关键字通过字符匹配检索出所需要的数据行。字符匹配操作可以使用通配符“%”和“_” :
例如,查询last_name包含有in这两个的字符的数据:
SELECT employee_id,last_name,salary,job_id FROM employees
WHERE last_name LIKE '%ing%';
%:表示零个或者多个任意字符。
_:代表一个任意字符。
可以通过使用escape标识符选择’%’或者’_’;
\:指转义字符,“\%”在字符串中表示一个字符“%”。
回避特殊符号的:使用转义符。
例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 。
SELECT employee_id,last_name,salary,job_id FROM employees
WHERE job_id LIKE ‘IT\_%‘ escape ‘\‘;
常用的一些条件表达式
条件 表达式举例1 表达式举例2 说明
使用=判断相等
salary = 5000 last_name = 'King' 字符串需要用单引号括起来;
使用>判断大于
salary > 5000 last_name > 'King' 字符串比较根据ASCII码,中文字符比较根据数据库设置;
使用>=判断大于或相等
salary >= 5000 last_name >= 'King';
使用<判断小于
salary < 5000 last_name <= 'King';
使用<=判断小于或相等
salary <= 5000 last_name <= 'King';
使用<>判断不相等
salary <> 5000 last_name <> 'King';
使用LIKE判断相似
last_name LIKE 'King%' last_name LIKE '%in%'
%表示任意字符
例如'Kin%'将匹配'Kin','King','Kingd'
查询工资在5000元(含)~1000000元(含)之间的员工可以使用的WHERE语句是:
WHERE salary >= 5000 OR salary <= 10000
WHERE salary >= 5000 AND salary <= 10000
WHERE salary IN (5000, 10000)
WHERE salary BETWEEN 5000 AND 10000
WHERE 5000 <= salary <= 10000