第二章:限制(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 '';

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;