Oracle入门学习(6)

来源:互联网 发布:java自定义泛型类 编辑:程序博客网 时间:2024/04/30 02:06

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_DATE91年的员工

SELECT LAST_NAME, START_DATE

FROM S_EMP

WHERE START_DATE LIKE '%91';

 

 

 

 

SELECT LAST_NAME

FROM S_EMP

WHERE LAST_NAME LIKE '_a%' ;

 

1 0