码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 冷知识(一)

时间:2015-04-13 23:08:23      阅读:419      评论:0      收藏:0      [点我收藏+]

标签:

Long 类型使用中会出现种种问题,不建议使用

&  && 的使用(仅用于命令模式)

&用于指定变量,&& 用于输出已有的变量

descritpion 显示对象信息(仅用于命令模式)

例如:

 describe zx;

round

trunc

用于数字和日期

nvl(expr1, expr2)  如果expr1不为空则输出expr1,否则输出expr3

NVL2(expr1, expr2, expr3) 如果 expr1 is not null ,则输出expr2否则输出expr3

COALESCE (expr1, expr2, ... exprn) 依次显示值,直到下一个值不为null

COUNT(DISTINCT expr)  count 可以配合distince 关键字使用.

SELECT AVG(NVL(commission_pct, 0))  FROM employees;   avg 会忽略掉null值,此时可用 nvl 函数来解决

All group funcitons ignore null values


SELECT e.last_name, e.salary, j.grade_level

FROM employees e 

INNER JOIN job_grades j

ON e.salary

BETWEEN j.lowest_sal AND j.highest_sal;

这里,连接查询,不一定只能用 "=" 连接,可以使用运算符,函数类的

子查询中 in ,any ,all,exists 的使用,exists 与in 的区别,在于对not时对于null的处理上,如:

SELECT employee_id,

  FROM employees

 WHERE salary < ANY (SELECT salary

          FROM employees

         WHERE job_id = ‘IT_PROG‘)

       AND job_id <> ‘IT_PROG‘;


UNION,UNION ALL

INTERSECT(共有),MINUS(in the first query ,not in the second query)

集合操作关键字,一般用在改写SQL语句时用到,Union 默认有排序功能

使用union 中使用order by ,order by 放在最后,而且不能指定列名,通过指定列号的方式操作

SELECT employee_id, job_id,salary  FROM employees 

UNION

SELECT employee_id, job_id,0  FROM job_history 

ORDER BY 2;


Oracle 冷知识(一)

标签:

原文地址:http://my.oschina.net/zhouxiang/blog/400734

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!