Oracle_过滤和排序


1.查询语句时,字符串大小写敏感
  如:查询名叫KING的员工信息
      select * from emp where ename = 'KING';
      select * from emp where ename = 'king';
      查询的结果会不一样

2.日期格式敏感(重点)
 查询入职日期为17-11月-81的员工
 select * from emp where hiredate='17-11月-81'; --- 这里采用了隐式转换 把字符串转换成日期格式
 select * from emp where hiredate='1981-11-17';
 查询的结果会不一样
 Oracle 9i之前,日期格式: DD-MON-YY  导致1998 --> 98,2098 --> 98出现千年重问题
 Oracle 9i之后,日期格式: DD-MON-RR  底层采用复杂的算法实现

3.查看当前时间: select sysdate from dual;                                                             

                                             
4.查询系统参数: select * from v$nls_parameters;

5.修改Oracle日期格式
   alter session set NLS_DATE_FORMAT='yyyy-mm-dd';
   因为当前用户为scott,所以要指定session,这样只对当前用户的日期格式进行转变,如果要改变整个Oracle默认 的格式,则需要sys管理员登入来修改

6.如果集合中含义null值,不能使用not in操作符;但可以使用in

7.escape转义字符
  例:查询名字中含有下划线的员工
  select * from emp where  ename like '%\_%' escape '\'
  select * from emp where  ename like '%a_%' escape 'a'                                   

8.Oracle中默认是自动开启事务的,无需像Mysql那样手动开启事务,可以在进行增删改查后手动进行rollback

9.SQL优化:使用and or条件查询时,2个条件查询的解析顺序: 从右至左
   方案一:使用and时,把更有可能不符合的条件放在and之右
   方案二:使用or时,把更有可能符合的条件放在or之右

10.a命令意思为:append 例: a   desc 中间必须包含>=2个空格 用意在与在之前的sql语句末尾追加' desc'。

11.order by 后面 + 列名, 表达式, 别名, 序号
select ename,sal,comm,sal*12+nvl(comm,0) from emp order by sal*12+nvl(comm,0);
select ename,sal,comm,sal*12+nvl(comm,0) 年收入 from emp order by 年收入
select ename,sal,comm,sal*12+nvl(comm,0) 年收入 from emp order by 4

12.order by跟多列:作用于后面所有的列
select * from emp order by deptno,sal;
select * from emp order by deptno,sal desc -->desc作用与离他最近的一列,也就是sal,对deptno无作用
select * from emp order by deptno desc,sal desc

13.按奖金降序查询所有员工信息
  select * from emp order by comm desc
  select * from emp order by comm desc nulls last   --- 把奖金为null的行排在后面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值