`
fehly
  • 浏览: 248705 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle数据类型与函数

阅读更多

Oracle数据类型

数据类型						说明
char		字符型,最大长度2000B,缺省长度为1B
nchar		基于NLS国家字符集的字符型,最大长度2000B,缺省为1字符
varchar2	变长字符型,最大长度4000B
nvarchar2	基于NLS国家字符集的字符型,其余同varchar2
varchar		同于varchar2
number(m,n)	数值型,m为总位数,n为小位数,总长度最大为38位
date		日期型,有效表数范围:公元前4712y-1m-1d到公元后4712y-12m-31d
long		变长字符型,最大长度2GB,不支持对字符串内容进行搜索
raw			变长二进制数据类型,最大长度2000B
long raw	变长二进制数据类型,最大长度2GB
blob		二进制大对象类型,最大长度4GB
clob		字符大对象类型,最大长度4GB
nclob		基于NLS国家字符集的字符,字符大对象类型,最大长度4GB
bfile		在数据库外部保存的大型二进制文件,大对象类型,最大长度4GB

 函数

Oracle函数分为单行函数和多行函数两大类

单行函数

  • 操作数据项
  • 接受参数并返回处理结果
  • 对每一返回行起作用
  • 可修改数据类型
  • 可嵌套使用

单行函数分类

  • 字符函数
  • 数值函数
  • 日期函数
  • 转换函数
  • 通用函数

字符函数(函数,功能,用法,返回结果)

字符大小写转换函数  

lower()	转换为小写		lower("John Smith")		john smith
upper()	转换为大写		upper("John Smith")		JOHN SIMTH
initcap()单词首字母大写	initcap("JOHN smith")	John Smith

 字符处理函数  

concat()	字符串连接		concat('Hello','World')		Hello World
subst()		截取字串		substr('HelloWorld',4,3)	loW
length()	返回字符串长度	  length('Hello world')		  11
instr()		定位字串		instr('Hello World','or')	8
lpad()		左侧填充		lpad('Smith',10,'*')		*****Smith
rpad()		右侧填充		rpad('Smith',10,'*')		Smith*****
trim()		过滤首尾空格	  trim('  Mr Smith   ')		   Mr Smith
replace()	替换			replace('Mr Tom','Mr','Mrs')  Mrs Tom

 数值函数(abs 返回值有误为3.14)

 

 日期类型

 关于日期类型

  • Oracle内部以数字格式存储日期和时间信息:世纪,年,月,日,小时,分钟,秒
  • 缺省的日期格式是 DD-MON-YY
  • 可使用sysdate函数获取当前系统日期和时间

日期型数据的算术运算

  • 日期型数据可以直接加或减一个数值,结果仍为日期
  • 两个日期型数据可以相减,结果为二者相差多少天

日期函数

转换函数

数据类型转换包括隐含转换盒显式转换两种方式,建议使用现实转换,确保sql语句的可靠性.

日期------------------>字符串

to_char()函数可以将日期型数值转换为字符串形式

格式:

to_char(date)  //缺省转换为'dd-mm-yy'格式
to_char(date,'format_model') //转换为模式串指定的格式

 

select id,name,age,to_char(time,'yyyy-mm-dd') from table

 常用日期格式符

说明:除上述格式符外,日期模式串中还可以出现如下字符 ' - : ; / ' ,如要显示其他文本字符串则需使用双引号括起来,也可在模式串的开头使用"fm"标记以去掉数字前面的零.

字符串------->日期

to_date()函数可以将字符串转换为日期类型

to_date(char) //按缺省格式('dd-mm-yy')进行解析
to_date(char,'format_model')//按模式串指定的格式进行解析
insert into test values('Tom',to_date('2010-01-02','yyyy-mm-dd'))

 数字-------->字符串

to_char()函数可以将数字值转换为字符串形式

to_chat(number) 
to_char(number,'format_model')
select to_char(12345.678901) from tab;
select to_char(12345.678901,'$99,999.0000')from tab  --$12,345.6789

 

 

数字模式符

 

字符串---->数字

to_number()函数可以将字符串转换为数字值

to_number(char) 
to_number(char,'format_model')
select to_number('12345.678901')from tab; --12345.6789
select to_number('$12345.6789','$99,999.0000')from tab; --12345.6789

 通用函数

通用函数适用于任何类型数据(包括空值):

  • nvl()
  • nvl2()
  • nullif()
  • coalesce()
  • case表达式
  • decode()

NVL()函数

NVL()函数用于将空值null替换为指定的缺省值,适用于字符、数字、日期等类型数据.

NVL(exp1,exp2)

说明:如果表达式exp1的值为null,则返回exp2的值,否则返回exp1的值。

select id,name,age,time,nvl(time,sysdate) from tab;

NVL2()函数

NVL2()函数用于实现条件表达式功能

NVL2(exp1,exp2,exp3)

说明:如果表达式exp1的值不为null,则返回exp2的值,否则返回exp3的值

select id,name,age,time,nvl2(age,sysdate-time,name) from tab;

NULLIF()函数

nullif()函数用于数据等价性比较返回null或其中一个被比较的数值

nullif(exp1,exp2)

说明:如果表达式exp1与exp2的值相等则返回null,否则返回exp1的值

select name 原名,nullif(pen_name,name)笔名 from tab;

COALESCE()函数

coalesce()函数用于实现数据"接合"功能

coalesce(exp1,exp2,....)

说明:依次考察各参数表达式,遇到非null值即停止并返回该值

select id,name,age,bonus,wage,coalesce(wage+bonus,0)总收入 from tab;

CASE表达式

case表达式用于实现多路分治结构

case exp when comparision_exp1 then return_exp1
               [when comparision_exp2 then return_exp2
                when comparision_expn then return_expn
                else else_exp]
end 
select id,name,work,
             case department when 10 then '财务部'
                                         when 20 then '研发部'
                                         when 30 then '销售部'
                                          else '未知部门'
              end 部门
form tab

DECODE()函数

和case表达式类似,decode()函数也用于实现多路分支结构

decode(col | expression,search1,result1
                                      [,search2,result2,...,]
                                      [,default])

 

select id,name,age,
             decode(department,10,'财务部',
                                             20,'研发部',
                                              30,'销售部',
                                              '未知部门')
              部门
from tab;

 函数嵌套

单行函数可以嵌套使用,嵌套层次无限制

嵌套函数的执行顺序是由内到外

单行函数小结

使用系统提供的单行函数可实现如下功能:

  • 对数据进行计算
  • 控制数据的输出格式
  • 设置/改变日期的显示格式
  • 进行数据类型转换
  • 使用NVL函数处理空值
  • 实现if-then-else多路分支逻辑

分组函数

分组函数对一组数据进行运算,针对一组数据(多行记录)只返回一个结果,也称多行函数.

count()函数

count(*)返回组中总记录数目;

count(exp)返回表达式exp值非空的记录数目

count(distince(exp))返回表达式exp值不重复的,非空的记录数目

select count(*) from tab;
select count(name) from tab;

 GROUP BY 子句

group by 子句将表中数据分成若干小组,出现selcet列表中的字段,如果不是包含在组函数中,那么该字段必须同时在group by子句中出现,包含group by子句中的字段则不必须出现在selcet列表中。

HAVING子句

having子句用于过滤分组

selcet    id,work,avg(age)
from       tab
where    time>=to_date('2000-01-02','yyyy-mm-dd')
group by department,work
having  avg(age)>30
order by department,work

 分组函数嵌套

分组函数最多可嵌套两层

selcet   max(avg(age))
from table
group by department

 

分享到:
评论

相关推荐

    v512工作室_张利国_Java高端培训系列教材_Oracle实用教程_04章_Oracle数据类型和函数.

    ### Oracle 数据类型详解 #### 4.1 Oracle 数据类型 ##### 4.1.1 概述 在深入了解Oracle数据库中的各种数据类型之前,我们首先需要明确数据类型的基本概念。数据类型是由一组具有相同特性的值及其上定义的操作...

    oracle数据类型及函数

    Oracle 数据库是一个强大的关系型数据库管理系统,其丰富的数据类型和函数是进行数据存储和处理的基础。在Oracle中,数据类型用于定义字段可以存储的数据种类,而函数则帮助我们对数据进行各种操作。以下是对这些...

    oracle(数据类型函数).

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

    Oracle实用教程_04章_Oracle数据类型和函数[整理].pdf

    Oracle 数据类型和函数 Oracle 数据类型是指一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。在 Oracle 数据库中,数据类型可以分为字符型、数值型、日期型和其它类型等几类。 Oracle 数据类型...

    ORACLE 数据类型及常用函数培训

    以下是对标题和描述中提及的Oracle数据类型及常用函数的详细讲解。 **一、Oracle数据类型** 1. **字符数据类型** - `Char(n)`:固定长度的字符串,最多可存储n个字符,不足会填充空格。 - `Varchar2(n)`:可变...

    SqlServer,Oracle数据类型,函数,导入导出对照

    标题和描述均聚焦于SQL Server与Oracle数据库管理系统中数据类型、函数以及导入导出操作的对比,这为我们提供了一个深入探讨这两个广泛使用的数据库平台之间差异的机会。以下是对这些知识点的详细解析: ### 数据...

    Oracle实用教程_04章_Oracle数据类型和函数.pdf

    Oracle实用教程_04章_Oracle数据类型和函数.pdf

    学习Oracle实用教程04章Oracle数据类型和函数.pdf

    在学习Oracle时,理解并掌握数据类型和函数是至关重要的基础。本章主要探讨Oracle中的数据类型,包括概述、字符数据类型、数值数据类型、日期类型以及其他特殊类型。 4.1.1 数据类型的概述 数据类型是数据库中用于...

    Oracle数据库空间数据类型和空间函数扩展实现.pdf

    Oracle数据库空间数据类型和空间函数扩展实现 Oracle数据库是当前最流行的关系型数据库管理系统之一,对于空间数据的存储和查询提供了良好的支持。为了满足空间数据处理的需求,Oracle数据库扩展了空间数据类型和...

    Oracle中实现Split函数功能

    同时,这个函数也可以与其他 Oracle 函数和操作符结合使用,以实现更加复杂的数据处理任务。 在实际应用中,Oracle 中实现 Split 函数功能可以用于各种数据处理场景,例如数据清洁、数据转换和数据分析等。例如,在...

    oracle 函数大全 参考函数 手册 速查 chm格式

    4. 转换函数:如TO_CHAR(字符串转换为日期或数字)、TO_DATE(日期转换为字符串)等,实现不同数据类型间的转换。 5. 条件函数:如IFNULL(如果为空则替换)、NVL(空值替换)、DECODE(根据条件返回值)等,处理...

    oracle函数大全 oracle函数大全

    Oracle数据库系统提供了丰富的内置函数,这些函数用于处理各种数据类型,包括字符串、数值以及日期等。以下是关于Oracle函数的一些详细说明: 1. ASCII函数:ASCII函数返回与输入字符相对应的ASCII码,即十进制数字...

    sqlserver-oracle 数据类型对照

    - `bit`在SQL Server中没有直接对应的Oracle数据类型,但可以近似用单字节的`NUMBER(1)`表示。 - `datetime`和`smalldatetime`在SQL Server中对应Oracle的`DATE`,表示日期和时间。 - `decimal`和`numeric`在SQL ...

    ORACLE CRC32函数

    在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成针对特定字符串的固定长度的数字签名,这...

    oracle数据类型总结PPT

    以下是对Oracle数据类型的详细总结,特别是字符和二进制串类型。 首先,我们来看字符类型。Oracle提供了四种基本的字符数据类型:`CHAR`,`NCHAR`,`VARCHAR2`,以及`NVARCHAR2`。`CHAR`和`NCHAR`是固定长度的数据...

    oracle常用函数和类型

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的数据类型和函数来支持复杂的数据操作和处理。在Oracle中,数据类型是定义变量、列或者常量的格式,而函数则是执行特定任务的预定义过程。 首先,让...

    Oracle基本数据类型存储格式浅析

    《Oracle基本数据类型存储格式详解》 Oracle数据库中,数据类型的存储格式对于数据库的性能和空间利用率至关重要。本文将深入探讨Oracle的字符类型、数字类型、日期类型、ROWID类型和RAW类型的基本数据类型的存储...

    ORACLE操作XML函数

    在Oracle数据库中,`XMLTYPE`是一种专门用于存储XML数据的数据类型。通过使用`XMLTYPE`字段,可以有效地管理和查询XML文档。其中,`XPath_string`是用于指定在XML文档中查找或操作节点的路径表达式。 - **XMLTYPE_...

    Oracle与Informix函数比较.doc

    Oracle 与 Informix 函数比较 在数据库管理系统中,函数是对数据进行操作和处理的重要手段。不同的数据库管理系统提供了不同的函数,了解这些函数的使用和区别是非常重要的。本文将对 Oracle 和 Informix 两个流行...

Global site tag (gtag.js) - Google Analytics