`
wenhai_zhang
  • 浏览: 182077 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

单行函数,高级查询,数据字典,数据类型--重温Oracle2

    博客分类:
  • DB
 
阅读更多

最近在忙标项的事情,学习中断了。继续...

 

第四章 单行函数

字符函数

Upper

 

nvl(str,str2) 如果str不为null,返回str否则返回str2(如果str2也为null,也返回null)

select nvl(ename, ‘a’) from emp;

 

last_day  返回日期当月最后一天的日期

select last_day(hiredate) from emp;

 

initcap  返回首字母大写,其余字母小写的格式的字符串

select initcap(ename) from emp;

 

length(str)

substr(str)

to_char(str)

to_date(str, format)

 

 

分页查询

 

Select * from (select rownum no, e.* from emp e) where no > 5 and no <= 10;

 

 

Exists

 

Select * from t1 where exists (select null from t2 where y=x);-- x为t2的字段,y为t1的字段。

 

等同于下面语句:

 

for x in (select from t1) loop
    if (exists(select null from t2 where y = x.x))
    then
        --Output the record
    end if
end loop

对于inexists的性能区别:

         如果子查询得出的结果集记录较少,主查询中的表较大且有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists

         其实我们区分inexists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是in,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了。

另外in不处理null

 

Select 1 from dual where null in (0,1,2,null)  --为空。

 

 

 

删除一张表重复记录(ID是自增唯一,重复记录:除ID外其他都一样)。

非常经典的一道面试题,可能存在很多数据,要求性能比较高。

 

1  abc  20
2  abc  20
3  ab   15
4  abc  20

 

delete from tbl where id not in (select min(id) from tbl group by name,age)
delete from tbl where id not in (select t1.id from tbl t1, tbl t2 where t1.id >t2.id and t1.name = t2.name and t1.age = t2.age)

 

 

第5-7章均是一些面试题,暂略

 

 

 

 

第八章 高级查询

 

随即返回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

查询跳过偶数行

 

Select ename from (select row_number() over (order by ename) rn, ename from emp) x where mod(rn,2) = 1;

连续求和

 

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

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

 

分部门连续求和

 

Select deptno, ename, sal, sum(sal) over(partition by deptno order by ename) as s from emp;

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

 

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

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

 

Select month, 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;

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

 

 

 

第九章 数据字典

 

查询某用户下的所有表

 

Select table_name from 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’;

 

描述数据字典视图

 

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

 

 

 

第十章 Oracle数据类型

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

注意:

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

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

3,  Number4,2)指的是整数占2位,小数占2(99.994可以,99.995不行,因为是四舍五入)

4, Number默认为38位。

 

Javablob字段的操作(后续补充)

 

张文海

分享到:
评论

相关推荐

    Oracle查询练习(单行,函数查询)

    个人觉得比较好的oracle查询练习,学会举一反三,其他题迎刃而解!

    Oracle常用单行函数

    本文总结了程序员常用的oracle最常用的单行函数

    oracle(数据类型函数).

    里面有详细的oracle函数 1、Oracle数据类型 2、Oracle函数分为单行函数和多行函数两大类(sql_function) 单行函数分类 字符函数 数值函数 日期函数 转换函数 通用函数 函数嵌套 分组函数:集合操作符(了解) 实现...

    oracle笔记单行函数

    oracle笔记单行函数,oracle中单行函数有哪些,如何使用,具体案例和代码!

    ORACLE单行函数和组函数

    ORACLE单行函数和组函数,doc文档,使用Oracle时的必备参考文档。

    oracle03单行函数.ppt

    oracle03单行函数.ppt oracle03单行函数.pptoracle03单行函数.ppt oracle03单行函数.ppt oracle03单行函数.ppt oracle03单行函数.ppt

    Oracle_PL(SQL)单行函数和组函数及使用

    Oracle_PL(SQL)单行函数和组函数及使用

    oracle第4章 单行函数

    内部学习资料,利于初步掌握和日后的学习工作

    oracle常用函数

    在sql与pl/sql中都自带了很多类型的函数,比如有字符、数字、日期、转换和混合型等多种函数用于处理单行数据,因此这些都被称为单行函数.这些函数都可以被用于select、where和oder by等子句中.下面我们就来分析单行...

    Oracle视频.zip

    12多表查询数据rar 13.PLSQL基础-变星与作用域rar 14.Oracle体结构.ram 15.Oracle体系结构实例管理-内存管理rar 16.0raCle体系结构实例管理进程结构。rar 17.Oracle存储管理rar 18.Oracle网路管理rar 19,oracle字符...

    Oreacle数据库单行函数练习题(包答案)

    互联网集团出的练习题,能做出这些题,就能掌握单行函数的知识点

    包含了所有的oracle函数文档

    Oracle 函数分类 :单行函数 分组函数 分析函数单行函数分为:日期函数 数字函数 字符函数 转换函数 其他函数分组函数分为:max(最大值) min(最小值) sum(求和) avg(平均) count(求个数) 分析函数分为:rank() 具有相同...

    ORACLE第四章单行函数ppt课件.ppt

    ORACLE第四章单行函数ppt课件.ppt

    PLSQL单行函数和组函数详解

    很好的资料 共享给大家 很好研读 增强理解 没事多看看 开发一定没问题

    数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf

    数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...

    Oracle函数列表速查

    PL/SQL单行函数和组函数详解 ...在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:  单行函数  组函数  本文将讨论如何利用单行函数以及使用规则。

    oracle函数大全.rar

    记载了oracle中的单行函数和多行函数。Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)

    oracle-plsql.zip_oracle_pl sql 分组查询_plsql_plsql 分组查询

    单行查询 分组查询 多表查询 子查询 高级查询 高级查询 数据字典 约束 视图 索引 游标 函数 存储过程 触发器 事务管理 用户管理 备份 恢复

    Oracle数据库教程

    数据库基础,Oracle入门,查询基础,单行函数,分组函数,多表查询,子查询,高级查询,数据字典,Oracle数据类型,Oracle体系结构(DBA),DDL(改变表结构),DML(改变数据结构),约束,视图,索引,序列、同义...

Global site tag (gtag.js) - Google Analytics