加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle数据库的查询之过滤和排序(二)

发布时间:2020-12-12 15:09:13 所属栏目:百科 来源:网络整理
导读:一.过滤 注意事项: 1.使用where子句,将不满足条件的行过滤掉 2.where子句紧跟from子句 例如:查询10号部门的员工 select * from emp where deptno= 10 ; 二.字符和日期 1.字符和日期要包含在单引号内 2.字符大小写敏感,日期格式敏感 3.默认的日期格式为:DD-MO

一.过滤
注意事项:
1.使用where子句,将不满足条件的行过滤掉
2.where子句紧跟from子句

例如:查询10号部门的员工
 select * from emp where deptno=10;


二.字符和日期
1.字符和日期要包含在单引号内
2.字符大小写敏感,日期格式敏感
3.默认的日期格式为:DD-MON-RR

查询名叫KING的员工
select * from emp where ename ='KING';

 查询入职日期是17-11月-81的员工
 select * from emp where hiredate='17-11月-81';
修改日期格式
select * from v$nls_parameters; --查询出之前的日期格式
alter session set NLS_DATE_FORMAT='yyyy-mm-dd'; --修改之后的日期格式


三.比较运算

其他比较运算

注意事项:
1.在模糊查询中,可以使用”%”(代表多个字符)和”_”(代表单个字符)
2.between and: 包含边界,小值在前 大值在后
3. 如果in的集合中含有null,不能使用not in;但可以使用in

查询薪水1000~2000之间的员工
select * from emp where sal between 1000 and 2000;
查询部门号是10和20的员工
select * from emp where deptno in (10,20);
查询名字以S打头的员工
select * from emp where ename like 'S%';
查询名字是4个字的员工
select * from emp where ename like '____'
查询名字中含有下划线等特殊字符的员工,这个时候就需要使用转义字符
select * from emp where ename like '%_%' escape ''; “”可以用其他字符代替,例如a


四.逻辑运算


注意事项:
1.where 后边可以跟多个条件,通过and,or,not连接



五.排序
注意事项:
1.使用 order by 子句排序
2.order by子句在select查询语句的末尾
3.asc:升序,desc:降序
4.默认为升序排序
5.order by后面可以跟 列名、表达式名、别名、序号
6.order by作用于后面所有的列;desc只作用于离他最近的列
7.空值最大,所以降序排列的时候空值会排在最前边

例如:查询员工的年薪(方式1)
select empno,ename,sal,sal*12 from emp order by **sal*12** desc;

方式2:
select empno,sal*12 年薪 from emp order by **年薪** desc;
方式3(4代表的是sal*12处于第几列):
select empno,sal*12 from emp order by **4** desc;
多个列进行排序(需要在每一个列的后面呢加上排序方式)
select * from emp order by deptno desc,sal desc
--查询员工信息,按照奖金排序
 null的排序
select * from emp order by comm;
set pagesize 20;   设置一页显示的数据量多少

修改之后把空值放到最后就可以了
select * from emp order by comm desc nulls last;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读