Oracle 冷知识(一)

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;


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。