数据库程序员dotNET

Oracle数据库学习

2016-07-16  本文已影响86人  tenlee

Select/条件和排序/单行函数(7.14)

条件查找

排序

单行函数

函数 结果
MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') 19.6774194
ADD_MONTHS ('11-JAN-94',6) 11-Jul-94
NEXT_DAY ('01-SEP-95','FRIDAY') 8-Sep-95
NEXT_DAY ('01-SEP-95',1) 3-Sep-95
NEXT_DAY ('1995-09-01',1) ORA-01861:literal does not match format string
NEXT_DAY (to_date('1995-09-01','YYYY-MM-DD'),1) 3-Sep-95
LAST_DAY('01-FEB-95') 28-Feb-95
ROUND('25-JUL-95','MONTH') 1-Aug-95
ROUND('25-JUL-95' ,'YEAR') 1-Jan-96
TRUNC('25-JUL-95' ,'MONTH') 1-Jul-95
TRUNC('25-JUL-95','YEAR') 1-Jan-95

to_char用法

Select to_char(sysdate,'ss') from dual取当前时间秒部分

Select to_char(sysdate,'mi') from dual取当前时间分钟部分

Select to_char(sysdate,'HH24') from dual取当前时间秒小时部分

Select to_char(sysdate,'DD') from dual取当前时间日期部分

Select to_char(sysdate,'MM') from dual取当前时间月部分

Select to_char(sysdate,'YYYY') from dual取当前时间年部分

Select to_char(sysdate,'w') from dual取当前时间是一个月中的第几周(从1日开始算)

Select to_char(sysdate,'ww') from dual取当前时间是一年中的第几周(从1.1开始算)

Select to_char(sysdate,'iw') from dual取当前时间是一年中的第几周(按实际日历的)

Select to_char(sysdate,'d') from dual取当前时间是一周的第几天,从星期天开始,周六结束
Select to_char(sysdate,'day') from dual 取当前日是星期几,和数据库设置的字符集有关,会输出'Tuesday'

Select to_char(sysdate,'ddd') from dual 当前日是一年中的第几天

多表关联/分组计算和group by/子查询/DML语句/事务控制/锁(7.15)

DML语句

事务控制

表/约束/视图/序列&索引&同义词/集合操作/用户权限控制(7.16)

约束

TOP-N

SELECT [column_list], ROWNUM
FROM (SELECT [column_list]
FROM table
ORDER BY Top-N_column)
WHERE ROWNUM <= N;

索引

集合操作

Group By 子句增强/子查询进阶/递归查询/INSERT增强(7.17)

group by增强

子查询进阶

递归查询

SELECT [LEVEL], column, expr...
FROM table
[WHERE condition(s)]
[START WITH condition(s)]
[CONNECT BY PRIOR condition(s)] ;
    

举例:查询从King 开始,从上往下的各级员工。

SELECT last_name||' reports to '||
PRIOR last_name "Walk Top Down"
FROM employees
START WITH last_name = 'King'
CONNECT BY PRIOR employee_id = manager_id ;

insert增强

SQL进阶功能(7.19)

SELECT * FROM departments AS OF TIMESTAMP SYSDATE-5/(24*60)
上一篇下一篇

猜你喜欢

热点阅读