WHERE子句
1.条件为数值的时候
SELECT LAST_NAME, DEPT_ID, SALARY
FROM S_EMP
WHERE DEPT_ID = 42;
请问:如果把WHERE 后的条件对调,如下
SELECT LAST_NAME, DEPT_ID, SALARY
FROM S_EMP
WHERE 42 = DEPT_ID;
能否执行?
答案是可以的,Oracle中的 = 是判断是否相等的,不是java中赋值的意思。
2.条件为字符串的时候
SELECT LAST_NAME, DEPT_ID, SALARY
FROM S_EMP
WHERE LAST_NAME = 'Magee';
3.WHERE子句中的运算符
a) 比较运算符
i. = > < >= <= != <> ^=
ii. BETWEEN... AND ... IN(...) LIKE IS NULL
iii. NOT BETWEEN NOT IN NOT LIKE IS NOT NULL
b) 逻辑运算符
i. NOT(非)
ii. AND(与)
iii. OR(或)
BETWEEN... AND ... 包括起止值
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM S_EMP
WHERE SALARY BETWEEN 1000
AND 10000;
IN表示限定范围
SELECT ID, NAME, REGION_ID
FROM S_DEPT
WHERE REGION_ID IN (2, 3);
模糊查询
通过LIKE和通配符完成
% 可以匹配0 个或多个字符
_ 匹配单个字符
\ 转义字符
查找LAST_NAME 以M开头的员工
SELECT LAST_NAME
FROM S_EMP
WHERE LAST_NAME LIKE 'M%';
查找START_DATE为91年的员工
SELECT LAST_NAME, START_DATE
FROM S_EMP
WHERE START_DATE LIKE '%91';
SELECT LAST_NAME
FROM S_EMP
WHERE LAST_NAME LIKE '_a%' ;