第二章:oracle_sql语句之限制(where子句)和排列数据(order by子句)

限制数据访问:

使用数字做条件

select ename,sal,deptno from emp where DEPTNO=10;


使用字符做条件,字符串要单引,大小写敏感!

select ename,sal,deptno from emp where ename='king';

select ename,sal,deptno from emp where ename='KING';


使用日期做条件,格式敏感!

select ename,hiredate from emp where hiredate='23-JAN-82';


借助系统函数查看系统日期格式:

select sysdate from dual;

select * from nls_database_parameters;


在where条件中使用单行比较符号

> , < , = ,>= ,<= ,<> != 


在where条件中使用逻辑运算

and , or , not 


检索符合下列条件的数据:

工资大于2000的雇员

工资大于2000并且小于3000的雇员

工资大于2000或者小于1000的雇员


特殊比较符:

between and 相当于 ( >= and <= )

select ename,sal from emp where sal between 2000 and 3000;


in (set list): 枚举方式取数据,in后面跟随一个集合列表!

select ename,sal from emp where sal in (1000,2000,3000);


like : 能够做模糊匹配

select ename from emp where ename like 'M%';

select ename,hiredate from emp where hiredate like '%81';

select ename from emp where ename like '_L%';

select ename from emp where ename like '_ _%' escape ' ';


is null (is not null) : 过滤空值

select ename,comm from emp where comm is null;

select ename,comm from emp where comm is not null;


补充:在查询中使用rownum伪列,rownum是结果集的编号!

select rownum,ename from emp;

select * from emp where rownum<6;


排列结果集:

升序排列结果集

select ename,sal from emp order by sal;


降序排列结果集

select ename,sal from emp order by sal desc;


对别名排序

select ename,sal*12 ann_sal from emp order by ann_sal;


多列排序

select ename,deptno,sal from emp order by deptno desc,sal desc;


select ename,deptno,sal from emp order by 2,3 desc;


select * from emp order by 5;

练习 2

第2章 限制和排列数据

1.显示收入大于2850的雇员名称和工资

2.查看雇员编号7566的雇员名字和所在部门号

3.查看BLAKE的工资

4.显示收入在2000和5000之间的人

5.显示收入为1000,2000,3000,5000的人

6.显示奖金不为空的人

7.显示管理者编号为空的人

8.找到名字当中第二个字母为"L"的员工

9.找到工资大于1000的职员

10.找到工资大于1000的或者工作为职员的人

11.找到工作为管理员或者是分析员,并且工资大于2500的人

12.查看雇员名称,工资,将工资按照降序排列

13.查看雇员名称,部门编号,工资,将部门编号按照升序排列,工资按照降序排列

14.做一个用别名排序的例子(随意)


select * from emp where job in ('MANAGER','ANALYZEST') AND SAL>2500; 


猜你喜欢

转载自blog.51cto.com/11067624/2141260