Oracle进阶之你可能会用到的命令(一)

来源:互联网 发布:基金仓位测算数据 编辑:程序博客网 时间:2024/06/04 00:52
    不管你天天使用Oracle还是刚接触Oracle,下面的这些命令或许在你忘记了的时候能帮忙快速找回来。
1. 查看当前用户
   show user;
2. 去掉重复记录的关键词
   distinct
3. 字符串拼接连接符
   ||
4. 录屏
   spool 路径
   spool off
5. 查看参数设置
   select * from v$nls_parameters;
6. 排序空值放最后边
   nulls last
7. 格式化时间
   to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
8. 通用函数
   nvl(a,b),当a为null时,返回b,
   nvl2(a,b,c) 当a=null的时候,返回c;否则返回b
   nullif(a,b) 当a=b的时候,返回null;否则返回a
   coalesce(a,b,c..) 从左到右 找到第一个不为null的值
9. case表达式
   case (列名) when ... then ...
when ... then ...
else ... 
   end;
10. group by 增强
   group by rollup(a,b)
11. 层次查询
   select level,empno,ename,mgr
   from emp
   connect by prior empno=mgr
   start with mgr is null
   order by 1; (emp表中的empno员工号,mgr员工老板号)
12. 针对操作给予反馈
    set feedback off oracle(关闭)
13. 创建事物中的保存点
   savepoint a; 
14. 不走回收站删除表 (管理员没有回收站)
   drop table 表名 purge;
15. 闪回
   flashback table 表名 to before drop;
16. 屏蔽视图的DML操作
   在创建视图的时候后面加 with read only
17. 创建序列:
   create sequence 序列名
   
*****************************************************
另附一份sql优化原则,我们都在意的是细节
   1.尽量使用别名
   2.sql解析是从右往左的,所以and时候假的在右,or的时候真的在右
   3.能用having和where,尽量使用where
   4.尽量使用多表查询,而不是子查询
   5.union和union all都可以时候,尽量用union all(union=union all   +distinct)
   6.尽量不要使用集合运算
1 0