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