`
雪馨25
  • 浏览: 129517 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

oracle简单学习总结(三)——函数

阅读更多

一、数值型函数

函 数 功 能 实 例 结 果
abs 求绝对值函数 abs(−5) 5
sqrt 求平方根函数 sqrt(2) 1.41421356
power 求幂函数 power(2,3) 8
cos 求余弦三角函数(用弧度) cos(3.14159) −1
mod 求除法余数 mod(1600, 300) 100
ceil 求大于等于某数的最小整数 ceil(2.35) 3
floor 求小于等于某数的最大整数 floor(2.35) 2
round 按指定精度对十进制数四舍五入 round(45.923, 1)
round(45.923, 0)
round(45.923, −1)
45.9
46
50
trunc 按指定精度截断十进制数 trunc(45.923, 1)
trunc(45.923)
trunc(45.923, −1)
45.9
45
40

二、oracle中的dual表

2.1 理解

1、DUAL是 SYS用户的一个TABLE.

2、Dual是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。

3、DUAL就是个一行一列的表, 该表和系统中的其他表一样,一样可以执行插入、更新、删除操作,还可以执行drop操作。但是不要去执行drop表的操作,否则会使系统不能用,数据库起不了,会报Database startup crashes with ORA-1092错误。

2.2 DUAL 能做什么

1、查找当天日期
SQL> select sysdate from dual;

2、查找当前日期的当月第一天
SQL> select trunc(sysdate,’MONTH’) from dual;

3、查找当前日期的当月最后一天
SQL> select trunc(last_day(sysdate)) from dual;

4、查看当前用户,可以在SQL Plus中执行下面语句
SQL> select user from dual;

5、获得当前系统时间
SQL> select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;

6、获得主机名
SQL>
select SYS_CONTEXT(‘USERENV’,'TERMINAL’) from dual;

7、获得当前locale
SQL>
select SYS_CONTEXT(‘USERENV’,'language’) from dual;

8、获得一个随机数
SQL>
select dbms_random.random from dual;

9、查看当前日期、时间
SQL> select sysdate from dual;

10、获得序列your_sequence的下一个值
SQL>
select your_sequence.nextval from dual;

11、获得序列your_sequence的当前值
SQL>
select your_sequence.currval from dual;

12、可以用做计算器

参考网址:http://yesican.blog.51cto.com/700694/269814

http://www.itfarmer.com.cn/plsql/1093.html

三、字符型函数

函数名称
功 能 实 例 结 果
ascii 获得字符的ASCII 码 Ascii('A') 65
chr 返回与ASCII 码相应的字符 Chr(65) A
lower 将字符串转换成小写 lower ('SQL Course') sql course
upper 将字符串转换成大写 upper('SQL Course') SQL COURSE
initcap 将字符串转换成每个单词以大写开头 initcap('SQL course') Sql Course
concat 连接两个字符串 concat('SQL', ' Course') SQL Course
substr 给出起始位置和长度,返回子字符串 substr('String',1,3) Str
length 求字符串的长度 length('Wellcom') 7
instr 给出起始位置和出现的次数,求子字符串在字符串中出现的位置 instr('String', 'r',1,1) 3
lpad 用字符填充字符串左侧到指定长度 lpad('Hi',10,'-') --------Hi
rpad 用字符填充字符串右侧到指定长度 rpad('Hi',10,'-') Hi--------
trim 在一个字符串中去除另一个字符串 trim('S' FROM 'SSMITH') MITH
replace 用一个字符串替换另一个字符串中的子字符串 replace('ABC', 'B', 'D') ADC

四、日期型函数

1、Oracle使用内部数字格式来保存时间和日期,包括世纪、年、月、日、小时、分、秒。缺省日期格式为DD-MON-YY,如“08-05月-03”代表2003年5月8日。
2、SYSDATE是返回系统日期和时间的虚列函数。

函 数 功 能 实 例 结 果
months_between 返回两个日期间的月份 months_between ('04-11 月-05','11-1 月
-01')
57.7741935
add_months 返回把月份数加到日期上的新日期 add_months('06-2 月-03',1)
add_months('06-2 月-03',-1)
06-3 月-03
06-1 月-03
next_day 返回指定日期后的星期对应的新日期 next_day('06-2 月-03','星期一') 10-2 月-03
last_day 返回指定日期所在的月的最后一天 last_day('06-2 月-03') 28-2月-03
round 按指定格式对日期进行四舍五入 round(to_date('13-2 月-03'),'YEAR')
round(to_date('13-2 月-03'),'MONTH')
round(to_date('13-2 月-03'),'DAY')
01-1 月-03
01-2 月-03

16-2 月-03

(按周四舍五入)

trunc 对日期按指定方式进行截断 trunc(to_date('06-2 月-03'),'YEAR')
trunc(to_date('06-2 月-03'),'MONTH')
trunc(to_date('06-2 月-03'),'DAY')
01-1 月-03
01-2 月-03
02-2 月-03

(按周截断

五、日期转换格式字符


代 码 代表的格式 例 子
AM、PM 上午、下午 08 AM
D 数字表示的星期(1~7) 1,2,3,4,5,6,7
DD 数字表示月中的日期(1~31) 1,2,3,…,31
MM 两位数的月份 01,02,…,12
Y、YY、YYY、YYYY 年份的后几位 3,03,003,2003
RR 解决Y2K 问题的年度转换
DY 简写的星期名 MON,TUE,FRI,…
DAY 全拼的星期名 MONDAY,TUESDAY,…
MON 简写的月份名 JAN,FEB,MAR,…
MONTH 全拼的月份名 JANUARY,FEBRUARY,…
HH、HH12 12小时制的小时(1~12) 1,2,3,…,12
HH24 24 小时制的小时(0~23) 0,1,2,…,23
MI 分(0~59) 0,1,2,…,59
SS 秒(0~59) 0,1,2,…,59
,./-;: 原样显示的标点符号
'TEXT' 引号中的文本原样显示 TE

sql: SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual;


sql: SELECT TO_CHAR(sysdate,'YYYY" 年"MM" 月"DD" 日"')FROM dual;


六、转换函数

 

函 数 功 能 实 例 结 果
To_char 转换成字符串类型 To_char(1234.5, '$9999.9') $1234.5
To_date 转换成日期类型 To_date('1980-01-01', 'yyyy-mm-dd') 01-1 月-80
To_number 转换成数值类型 To_number('1234.5') 1234.5

说明: Oracle可以自动根据具体情况进行如下的转换:
(1) 字符串到数值。(2) 字符串到日期。(3) 数值到字符串。(4)日期到字符串。

sql: SELECT SYSDATE,to_char(SYSDATE,'YYyysp') FROM dual;

七、数值转换

 

代 码 代表的格式 例 子
9 代表一位数字,如果是正数,前面是空格,如果是负数,前面是-号 9999
0 代表一位数字,在相应的位置上如果没有数字则出现0 0000
, 逗号,用作组分隔符 99,999
. 小数点,分隔整数和小数 999.9
$ $货币符号 $999.9
L 本地货币符号 L999.99
FM 去掉前后的空格 FM999.99
EEEE 科学计数法 9.9EEEE
S 负数符号−放在开头 S999.9

sql: SELECT TO_CHAR(123.45,'0000.00'), TO_CHAR(12345,'L9.9EEEE'), TO_CHAR(12345,'L9,9999') ,TO_CHAR(12345,'L9,9') FROM dual;

说明: 如果实际位数超过指定位数,则会填充为#号

八、其他常用函数

函 数 功 能 实 例 结 果
nvl 空值转换函数 nvl(null, '空')
decode 实现分支功能 decode(1,1, '男', 2, '女')
userenv 返回环境信息 userenv('LANGUAGE') SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
greatest 返回参数的最大值 greatest(20,35,18,9) 35
least 返回参数的最小值 least(20,35,18,9) 9

 

说明: 字符串的比较原则是,依次转换为ASCII码,先比较第一位,如果相同,则继续比较第二位,依此类推,直到出现大小关系

nvl 例:

nvl(comm, 0):用0代替空的Comm值。
nvl(hiredate, '01-1月-97'):用1997年1月1日代替空的雇佣日期。

nvl(job, '无'):用“无”代替空的职务。

decode例:

sql: SELECT name,age,decode(age, '26', '年龄26','12','年龄12','年龄不大于10') FROM userinfor;


说明: 如果age字段的内容为26”则返回“ 年龄26”,如果是“12”则返回“ 年龄12”。如果不是“ 26” 、“ 12” 之一, 则返回“ 年龄不大于10”

userenv 例:

函数userenv返回用户环境信息字符串,该函数只有一个字符串类型的参数,参数的内容为如下之一的字符串,可以不区分大小写:
* ISDBA:判断会话用户的角色是否为SYSDBA,是则返回TRUE。
* INSTANCE:返回会话连接的INSTANCE标识符。
* LANGUAGE:返回语言、地区、数据库字符集信息。
* LANG:返回会话语言的ISO简称。
* TERMINAL:返回正在会话的终端或计算机的标识符。

分享到:
评论

相关推荐

    ORACLE报表分析利剑——分析函数

    ### ORACLE报表分析利剑——分析函数:深度解析与应用 #### 一、理解分析函数:数据统计的新维度 分析函数作为Oracle数据库中一项高级功能,专为解决复杂报表统计需求设计,其核心优势在于能够对数据进行精细的...

    oracle新手入门指导之三——ORACLE常用函数大全 .txt

    ### Oracle新手入门指导之三——ORACLE常用函数大全 在Oracle数据库的学习过程中,掌握常用的SQL函数是非常重要的一步。本文将详细介绍部分Oracle中的常用函数及其用法,并通过具体的示例帮助初学者更好地理解和...

    韩顺平Oracle笔记——函数.pptx

    根据提供的文件信息,我们可以归纳总结出Oracle数据库中几种常用的功能函数及其应用场景,主要涉及字符函数、数学函数以及日期函数。 ### 字符函数 字符函数在Oracle数据库中扮演着非常重要的角色,它们主要用于...

    oracle分析函数

    ·1Oracle分析函数一——函数列表 ·2Oracle分析函数二——函数用法 ·3Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT ·4Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST… ·5Oracle分析函数五——统计分析...

    Oracle经典教程1——走进Oracle

    ### Oracle经典教程1——走进Oracle #### Oracle简介 Oracle是一种基于对象的关系型数据库管理系统,它由美国甲骨文公司开发并维护。Oracle数据库系统因其高度可靠性和强大的数据处理能力而闻名,广泛应用于各种...

    Oracle学习笔记——day01

    在Oracle学习的第一天,我们主要关注了SQL语句,这是与Oracle交互的基础。SQL主要包括三种类型的语言:DML(数据操作语言)、DDL(数据定义语言)和DCL(数据控制语言)。 1. **DML(数据操作语言)**:DML主要用于...

    oracle新手入门指导之三续——精简ORACLE常用函数大全.txt

    根据提供的文件信息,本文将对Oracle数据库中的常用函数进行详细介绍,尤其关注文本处理与日期处理相关的函数,旨在帮助Oracle新手更好地理解和应用这些函数。 ### 文本处理函数 #### 大小写转换 - **UPPER**:将...

    Oracle学习笔记——day03

    在Oracle数据库的学习中,第三天的内容主要涵盖了字符类型、数值类型、日期类型以及表的约束。下面我们将逐一详细探讨这些知识点。 首先,我们来看字符类型。Oracle提供了三种基本的字符类型:`CHAR`、`VARCHAR`和`...

    oracle 10g培训PPT——SQL01

    Oracle 10g SQL 培训教程涵盖了数据库查询的基础知识,主要讲解了如何书写简单的 SELECT 语句以及在查询中进行各种操作。以下是对这些知识点的详细解释: 1. **SELECT 语句**:SELECT 语句是 SQL 的核心,用于从一...

    Oracle学习笔记——day04

    在Oracle学习笔记的第四天,我们探讨了数据库管理和操作的一些核心概念,主要集中在DDL(数据定义语言)、DML(数据操作语言)、DCL(数据控制语言)以及事务管理。以下是对这些内容的详细阐述: 首先,我们看到了...

    oracle 10g培训资料——SQL第二部分

    Oracle 10g SQL是数据库管理系统Oracle的一种查询语言,它提供了丰富的功能来处理和...通过熟练掌握这些集合操作,你可以更有效地在Oracle 10g数据库中进行数据查询和管理,无论是简单的数据检索还是复杂的分析任务。

    20194225144-杨子煜-实验2 Oracle常用工具的使用——预习题.docx

    2. **PL/SQL Developer**:这是一个集成开发环境,专为Oracle数据库的存储过程、函数、触发器等PL/SQL代码提供编写、调试和管理功能。它具有自动补全和语法高亮等特性,便于开发和维护。 3. **Toad for Oracle**:...

    oracle汉字转拼音函数整理大全

    总之,本文详细介绍并解释了Oracle中用于汉字转拼音的两个函数——`fn_getpyKGJG` 和 `fn_getpyWKG`。通过对这些函数的深入理解,用户可以根据自己的具体需求选择合适的函数和参数,以实现高效的数据处理。

    oracle获取汉字拼音和拼音首字母的功能函数

    总的来说,Oracle中获取汉字拼音和拼音首字母涉及了字符编码、Java编程、自定义函数、第三方工具等多个方面。开发者可以根据具体的需求和环境,选择合适的方法来实现这一功能。在处理过程中,要注意字符集的兼容性、...

    oracle新手入门指导之四——ORACLE数据类型 .txt

    ### Oracle新手入门指导之四——ORACLE数据类型 在Oracle数据库中,数据类型的选择对于确保数据的正确存储、处理效率以及资源的有效利用至关重要。本文将详细介绍Oracle中的各种数据类型及其特性,帮助初学者更好地...

    Oracle110个常用函数……PDF清晰版

    ### Oracle110个常用函数——PDF清晰版 #### 描述: 本资料是基于网络资源整理而成的Oracle数据库110个常用函数汇总,旨在帮助读者更好地理解和掌握这些函数的应用场景和技术细节。这些函数不仅适用于求职面试准备...

    Mysql+Oracle函数文档

    这里,我们主要探讨的是它们的函数用法,通过提供的文档资源——"MySQL_5.1_zh.chm" 和 "oracle函数大全(分类显示).chm",我们可以深入了解这两个数据库系统的函数功能和应用场景。 首先,MySQL 是一款开源、免费的...

Global site tag (gtag.js) - Google Analytics