最近在忙标项的事情,学习中断了。继续...
第四章 单行函数
字符函数
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
对于in和exists的性能区别:
如果子查询得出的结果集记录较少,主查询中的表较大且有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。
其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是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, Number(4,2)指的是整数占2位,小数占2位(99.994可以,99.995不行,因为是四舍五入)
4, Number默认为38位。
Java对blob字段的操作(后续补充)
张文海
相关推荐
总的来说,Oracle的单行和组函数是数据查询和分析的基础工具。理解并熟练掌握这些函数,对于任何Oracle数据库管理员或开发人员来说都是至关重要的。通过不断的练习和应用,你不仅可以提高工作效率,还能更好地理解和...
此外,单行函数可能改变数据类型,比如从字符串转换为数字,或者相反。下面将具体介绍各种类型的单行函数。 #### 三、字符函数 字符函数主要用于处理字符串数据,可以实现大小写转换、字符串连接、截取子串等功能。...
Oracle数据库系统提供了丰富的单行函数,这些函数在日常的编程和数据处理中极为重要。本文主要介绍Oracle中的字符函数、数学函数、日期函数以及转换函数。 首先,让我们详细探讨字符函数。字符函数主要用于处理字符...
根据其处理数据的方式不同,可以将Oracle函数大致分为两类:单行函数和组函数(也称聚合函数)。本文将详细介绍这两类函数的特点与使用方法。 #### 二、单行函数 单行函数是指针对每一行数据进行处理,并且返回一个...
### Oracle_PL(SQL)单行函数和组函数及使用 #### 一、概述 ...掌握这些函数的用法,可以帮助开发者更加高效地完成数据查询和处理任务。通过本文的学习,希望读者能够灵活运用单行函数解决实际问题。
里面有详细的oracle函数 1、Oracle数据类型 2、Oracle函数分为单行函数和多行函数两大类(sql_function) 单行函数分类 字符函数 数值函数 日期函数 转换函数 通用函数 函数嵌套 分组函数:集合操作符(了解) 实现...
在Oracle的PL/SQL编程中,函数是极其重要的组成部分,它们用于处理和操作数据。本篇文章将详细讲解PL/SQL中的单行函数和组函数。 首先,单行函数是针对单行数据进行操作的函数,它们可以应用于SQL查询的不同部分,...
oracle笔记单行函数,oracle中单行函数有哪些,如何使用,具体案例和代码!
### Oracle EBS 数据字典中文版 #### 一、OE模块 **1. 表名**: ONT.OE_order_headers_all **说明**: 订单头信息表存储了所有销售订单的基本信息,包括订单编号、创建日期、状态等关键字段。这对于理解和追踪销售...
Oracle数据库中的函数是SQL查询和PL/SQL编程中不可或缺的一部分,它们帮助我们处理和操作数据。函数分为两类:单行函数和组函数。本篇将详细介绍这两种函数,并以Oracle数据库为例,探讨它们的使用和重要性。 单行...
Oracle 单行函数详解 本章要点包括字符函数、数字函数、日期函数、转换函数和通用函数等单行函数。 字符函数 字符函数用于处理字符串,包括大小写处理函数和字符处理函数。大小写处理函数可以将字符串转换为大写...
- **类型转换**:某些单行函数可以实现数据类型的转换,如将字符数据转换为数字数据。 - **嵌套使用**:单行函数可以在其他函数内部使用,形成复杂的嵌套结构。 #### 三、常见单行函数分类 单行函数可以按照其功能...
### Oracle数据库单行函数知识点详解 #### 一、数值处理函数 **1. ROUND 函数** - **功能描述:** `ROUND` 函数用于对数值进行四舍五入操作,可以指定四舍五入的精度。 - **语法结构:** `ROUND(number, ...
Oracle数据库的SQL开发教程中,第四章主要讲解了单行函数的使用,这是数据库查询语言SQL中的重要组成部分。单行函数在SQL中扮演着转换、处理数据的角色,它们对单行数据进行操作并返回单一结果。这些函数可以用于...
Oracle 函数是指在 Oracle 数据库中可以使用的一系列函数,包括单行函数、聚合函数、日期函数、类型转换函数等。这些函数可以在 SELECT 语句、WHERE 子句、ORDER BY 子句、START WITH 子句、CONNECT BY 子句等中使用...
Oracle数据库中的单行函数是SQL查询中不可或缺的一部分,它们用于处理单行数据并返回单一结果。这些函数可以操作字符、数字和日期数据类型,帮助我们完成数据转换、格式化和计算等多种任务。以下是对这些单行函数的...
Oracle 函数大全是 Oracle 数据库管理系统中的一系列函数,用于处理和操作数据。这些函数可以分为两大类:单行函数和组函数。 单行函数 单行函数用于处理单行数据,在 SELECT、WHERE、ORDER BY 等子句中可以使用...
Oracle函数是Oracle数据库中用于数据处理的重要工具,分为单行函数和组函数两种类型。单行函数处理单个数据行,对每一行都返回一个结果,而组函数则对多行进行聚合操作,如计数、求和等。 单行函数主要包括字符函数...
Oracle数据库中的函数是SQL查询和PL/SQL编程中不可或缺的一部分,它们帮助用户处理和操作数据。函数分为两类:单行函数和组函数。本篇主要关注单行函数及其使用。 单行函数在Oracle中用于处理单行数据,适用于...