过滤和排序数据加强

WHERE 子句紧随 FROM 子句

查询 last_name 为 'King' 的员工信息

错误1: King 没有加上 单引号

select first_name, last_name
from employees
where last_name = King

错误2: 在单引号中的值区分大小写

select first_name, last_name
from employees
where last_name = 'king'

正确

select first_name, last_name
from employees
where last_name = 'King'

 

 

查询 1998-4-24 来公司的员工有哪些?(注意: 日期必须要放在单引号中, 且必须是指定的格式)

select last_name, hire_date
from employees
where hire_date = '24-4月-1998'
--where to_char(hire_date,'yyyy-mm-dd')='1999-02-09'        推荐使用这个方法

 

 

查询工资在 5000 -- 10000 之间的员工信息.

使用and

select * from employees
where salary >=5000 and salary<=10000

 

使用between...and,(包含边界)

select * from employees
where salary between 5000 and 10000

 

 

 

查询工资等于 6000, 7000, 8000, 9000, 10000 的员工信息

使用or:

select * from employees
where salary = 6000 or salary=7000 or salary=8000 or salary=9000 or salary=10000

 

使用in

select * from employees
where salary in(6000,7000,8000,9000,10000)

 

 

 

查询 LAST_NAME 中有 'a' 字符的所有员工信息.

select last_name 
from employees
where last_name like '%a%'

 

 

 

 

查询 LAST_NAME 中第二个字符是 'o' 的所有员工信息.

select last_name 
from employees
where last_name like '_o%'

 

 

查询 LAST_NAME 中含有 '_' 字符的所有员工信息

select last_name 
from employees
where last_name like '%\_%' escape '\'

 

 

查询 COMMISSION_PCT 字段为空的所有员工信息

select last_name,commission_pct 
from employees
where commission_pct is null

 

 

查询 COMMISSION_PCT 字段不为空的所有员工信息

select last_name, commission_pct
    from employees
    where commission_pct is not null

 

 

 

ORDER BY:
1). 若查询中有表达式运算, 一般使用别名排序
2). 按多个列排序: 先按第一列排序, 若第一列中有相同的, 再按第二列排序.
格式: ORDER BY 一级排序列 ASC/DESC,二级排序列 ASC/DESC;

 

 

选择员工姓名的第三个字母是a的员工姓名

select last_name,job_id,hire_date  
from employees
where last_name like '__a%'

 

 

选择姓名中有字母a和e的员工姓名

select last_name,job_id,hire_date  
from employees
where last_name like '%e%a%' or last_name like '%a%e%'

 

 

posted @ 2014-03-20 16:20  胡椒粉hjf  阅读(316)  评论(0编辑  收藏  举报