首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

重温Oracle(三)

2012-11-29 
重温Oracle(3)第八章 高级查询?随即返回5条记录Select *from (select ename, job from emp order by dbms_

重温Oracle(3)

第八章 高级查询

?

随即返回5条记录

Select *from (select ename, job from emp order by dbms_random.value() ) where rownum<=5;

?

处理空值排序

Select *from emp order by comm. Desc nulls last(first);?--默认为first

?

查询跳过偶数行

Selectename from (select row_number() over (order by ename) rn, ename from emp) xwhere mod(rn,2) = 1;

?

连续求和

Selectename,sal, sum(sal) over(), sum(sal) over(order by ename) from emp;

Sum(sal)over(order by ename)指的是连续求和,是以ename排序。若有两个这样的窗口函数,以后面的为主。

?

分部门连续求和

Selectdeptno, ename, sal, sum(sal) over(partition by deptno order by ename) as s fromemp;

?

?

得到当前行上一行或者下一行的数据

Selectename,sal, lag(sal) over (order by sal) before, lead(sal) over(order by sal)last from emp;

要求用一条SQL语句,统计每个月及上个月和下个月的总收入

Selectmonth, sum(income),lag(sum(income)) over(order by sum(income)) as 上月收入,lead(sum(income))over(order by sum(income)) as 下月收入 from table group by month;

?

Selectadd_months(trunc(sysdate, ‘y’), 12) – trunc(sysdate,’y’) from dual;

?

第九章 数据字典

?

查询某用户下的所有表

Select table_namefrom all_tables where owner=’SCOTT’;

查询表的所有字段

Select *from all_tab_columns where table_name=’EMP’;

查询表的索引列

Select *from sys.all_ind_columns where table_name=’EMP’;

查询表的约束

Select *from all_constraints where table_name=’EMP’;

描述数据字典视图

Selecttable_name,comments from dictionary where table_name like ‘%TABLE%’;

?

第十章 Oracle数据类型

Char,nchar,varchar2,nvarchar2,number(),date,blob(binary二进制大对象),clob(文件大对象)

注意:

<!--[if !supportLists]-->1,? <!--[endif]-->由于char是以固定长度的,所以它的速度要比varchar2快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉;

<!--[if !supportLists]-->2,? <!--[endif]-->Varchar2一般适用于英文和数字,nvarchar2适用于中文和其他字符,其中n表示unicode常量,可以解决多语言字符集之间的转换问题;

<!--[if !supportLists]-->3,? <!--[endif]-->Number(4,2)指的是整数占2位,小数占2位(99.994可以,99.995不行,因为是四舍五入)

<!--[if !supportLists]-->4,? <!--[endif]-->Number默认为38位。

?

Java对blob字段的操作(后续补充)

热点排行