Oracle 初步学习

pre { font-family: "DejaVu Sans"; }td p { margin-bottom: 0cm; }p { margin-bottom: 0.21cm; }

Oracle
 一. 单行函数
	1.操作数据对象
	2.接受参数返回一个结果
	3.只对一行进行变换
	4.可以转换数据类型
	5.可以嵌套
	6.参数可以是一列或一个值
二. 字符函数
	1.大小写控制函数
		a.LOWER
			LOWER('SQL Course') ---- 结果 ---sql course
		b.UPPER
			UPPER('SQL Course') ---- 结果 ---SQL COURSE
		c.INITCAP
			INITCAP('SQL Course') ---- 结果 ---Sql Course
	2.字符控制函数
		a.CONCAT
			CONCAT('Hello','World') ----- 结果 ----HelloWorld
		b.SUBSTR
			SUBSTR('HelloWorld',1,5)  ---- 结果 ---Hello
		c.LENGTH
			LENGTH('HelloWorld') ---- 结果 ---10
		d.INSTR
			INSTR('HelloWorld','W') ---- 结果 ---6
		e.LPAD | RPAD
			LPAD(salary,10,'*') ---- 结果 ---*****24000
			RPAD(salary,10,'*') ---- 结果 ---24000*****
		f.TRIM
			TRIM('H' FROM 'HelloWorld') ----结果----elloWorld
三. 数字函数
	1.ROUND:四舍五入
		ROUND(45.926,2)----结果----45.93
	2.TRUNC: 截断
		TRUNC(45.926,2)----结果----45.92
	3.MOD:求余
		MOD(12,5)----结果----2
四. 日期函数
	1.函数SYSDATE返回:
		a.日期
		b.时间
	2.日期的数学运算
		a.在日期上加上或减去一个数字结果仍是日期
		b.两个日期相减返回日期之间相差的天数
		c.可以用数字除24来向日期中加上或减去小时
	3.MONTHS_BETWEEN : 两个日期相差的月数
		MONTHS_BETWEEN('01-SEP-95','11-JAN-94')----结果----19.6774194
	4.ADD_MONTHS : 向指定的日期中加上若干月数
		ADD_MONTHS('11-JAN-94',6)----结果----'11-JUL-94'
	5.NEXT_DAY : 指定日期的下一个日期
		NEXT_DAY('01-SEP-95','FRIDAY')----结果----'08-SEP-95'
	6.LAST_DAY : 本月的最后一天
		LAST_DAY('01-FEB-95')----结果----‘28-FEB--95’
	7.ROUND : 日期四舍五入
	8.TRUNC : 日期截断
		Assume SYSDATE = '25-JUL-95':
			ROUND(SYSDATE,'MONTH')----结果----'01-AUG-95'
			ROUND(SYSDATE,'YEAR')----结果----'01-JAN-95'
			TRUNC(SYSDATE,'MONTH')----结果----'01-JUL-95'
			TRUNC(SYSDATE,'YEAR')----结果----'01-JAN-95'

五. 转换函数

	1. 隐式转换
		a.

源数据类型

目标数据类型

VARCHAR2 or CHAR

NUMBER

VARCHAR2 or CHAR

DATE

NUMBER

VARCHAR2

DATE

VARCHAR2

	2. 显示转换
		a.TO_CHAR 函数对日期的转换
			TO_CHAR(date, 'format_model')
			格式:必须包含在单引号中且大小写敏感
				   可以包含任意有效的日期格式
				   日期之间用逗号隔开
			to_char(SYSDATE, 'yyyy-mm-dd hh:mi:ss day')
		b.TO_CHAR 函数对数字的转换
			TO_CHAR(number, 'format_model')
	

9

数字

0

$

美元符

L

本地货币符号

.

小数点

,

千位符

	
		c.TO_NUMBER 
			使用 TO_NUMBER函数将字符转换成数字
		d.TO_DATE
			使用TO_DATE 函数将字符转换成日期
六. 通用函数
	这些函数使用于任何数据类型,同时也适用于空值
	1.NVL(expr1, expr2)

a. 可以使用的数据类型有日期,字符,数字

b. 函数的一般形式:

nvl(commission_pct, 0) 如果值为空,算作0

nvl (hire_date, '01-JAN-97' )

nvl(job_id, 'No Jod Yet')

	2.NVL2(expr1, expr2, expr3)
		a.expr1 不为null, 返回expr2;为null,返回expr3
	3.NULLIF(expr1, expr2)
		a.相等返回NULL,不等返回expr1
	4.COALESCE(expr1, expr2, ... ,exprn)
		a.COALESCE 与 NVL 相比的优点在于COALESCE 可以同时处理交替的多个值
		b.如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE。
七. 条件表达式
	1. 在SQL语句中使用IF-THEN-ELSE逻辑
	2.使用两种方法:
		a.CASE 表达式
		CASE expr WHEN comparison_expr1  THEN return_expr1

[WHEN comparison_expr2 THEN return_expr2

WHEN comparison_exprn THEN return_exprn

ELSE else_expr ]

END

		b.DECODE 函数	
			DECODE(
col|expression, search1, result1  

[ , search2, result2,..., ]

[ , default ])

八. 函数嵌套
	1.单行函数可以嵌套。

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


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值