oracle 10g 学习手册(4)SQL函数的运用与解析(一)字符函数和数字函数

本文详细介绍了Oracle SQL中的字符函数和数字函数,包括LOWER、UPPER、INITCAP等字符函数及ROUND、TRUNC、MOD等数字函数的使用方法与示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle 10g 学习手册(4)SQL函数的运用与解析(一)字符函数和数字函数
oracle 10g 学习手册(4)SQL函数的运用与解析
听说hays的风要从现在刮到来年春天后,我就再也不敢出门了,于是就做在这里写点东西。
这次我们来分析并学会运用sql的各种查询函数。
其实sql函数才是查询的利器,它包罗万象,从总体上分为单行查询和多行查询。举个例子:
SELECT LOWER(last_name)
FROM employees;
这就是单行查询函数,说他单行并不是因为它返回的查询结果只有一行,而是说函数的运算只针对某一行的某个字段,是一条一条处理的。
这个例子就是把last_name中的名字转换成小写字母,很显然它是一个名字一个名字的转换,而不是一组或者一批量的转换。
在看这个例子:
SELECT SUM(salary)
FROM employees;
这个例子就是把salary这一列(字段)求和。这个函数就属于多行查询了。很显然它把salary这一列求了和。明白什么是单行查询函数(single-row function)和 多行查询函数(group function)了吧?
下面我们就来逐个了解SQL函数的使用和规则。
因为SQL函数数量巨大,我一天还写不完,可能会分成多次逐一分析,请大家见谅
 
(一)   字符函数 (character functions)
 首先我在这里列出所有的字符函数:
LOWER()
UPPER()
INITCAP()
CONCAT()
SUBSTR()
LENGTH()
INSTR()
LPAD()
RPAD()
TRIM()
REPLACE()
这里就是基本上所有的字符函数了,我们一个一个的分析他们的作用和使用方法:
看如下例子,我们将用同样的语句来表现每一个函数的功能,大家一定要仔细观察分析,否则很容易弄错。
SELECT LOWER(last_name)
FROM employees;
LOWER() :将所有字母变成小写,这里是把last_name 这一列变小写后输出。注意,也可以单独转换一个词为小写,比如:LOWER(’NEIL’)-------neil
 
SELECT UPPER(last_name)
FROM employees;
UPPER() :同上,变大写用的。
 
SELECT INITCAP(last_name)
FROM employees;
这个函数比较有意思,他是把一组字母的第一个变为大写,其余的变小写。
比如:INITCAP(‘NEIL’)---------------Neil
 
SELECT CONCAT(last_name, salary)
FROM employees;
这个函数的作用就是把2个部分的结果连接起来输出,和我们以前讲到的||符号很相似输出的结果就是:CONCAT(‘HELLO’, ’WORLD’)-----------------HELLOWORLD
 
SELECT SUBSTR(last_name, 1, 5)
FROM employees;
这个函数的作用就是定义一个搜索范围,并按范围输出,比如:
SUBSTR(‘HELLOWORLD’, 1, 5)--------------------HELLO 表示从第一个字母开始搜索到第五个于是就输出hello了。呵呵
 
SELECT INSTR(last_name, ‘A’)
FROM employees;
这个函数的作用是查对象中字母a 是第几个字母。
比如:INSTR(‘HELLOWORLD’, ‘W’)--------------------------6
 
SELECT LPAD(last_name, 10 ’*’)
FROM employees;
这个函数的用途是按照指定的位数输出,空余位用你指定的符号的填补,并且右对齐。
例如:LPAD(salary, 10, ‘*’)-------------------------*******100
 
SELECT RPAD(last_name, 10 ’*’)
FROM employees;
这个函数的作用和上面一样,只不过是数据左对齐。
例如:RPAD(salary, 10, ‘*’)------------------------100*******
 
SELECT REPLACE(last_name, ‘J’ ’NEIL’)
FROM employees;
这个函数就是替换函数,用于把只定的字母替换成你想要的字母例如:
REPLACE(‘JACK AND JINE’, ‘J’, ‘HELLO’)---------HELLOACK AND HELLOINE 就是把字母j, 替换成了hello
 
SELECT TRIM(‘H’ FROM last_name)
FROM employees;
这个函数的作用就是把制定对象的一个字母删除。例如:
Trim(‘h’ from ‘hellowold’)---------------------elloword
 
到这里所有的字符操作函数就说完了。注意我给出的完整例子,都是针对一个完整列进行操作的,但仍然是single-row function单行查询函数。
(二)   数字函数
 数字函数,顾名思义,针对数字进行操作的函数
 我们先来看都有哪些数字函数然后再逐一解析。
 ROUND()
 TRUNC()
 MOD()
 解析:
 
ROUND()根据四舍五入的原则保留数字的位数
例如:ROUND(45.837,2)-------------------45.84
这个例子就是保留小数点后面2位。若ROUND(45.837),则系统默认为保留到个位,结果也就是46。如果是ROUND(45.837,-1),则表示为保留到整数位的第二位,结果也是50了。
 
TRUNC(),不使用四舍五入的原则来保留数字的位数,他跟round()的唯一区别就是不用四舍五入的原则
例如:TRUNC(93.338, 2)---------------93.33
大家可以看到,他保留小数点后面2位,但是没有四舍五入。如果TRUNC(93.638)则结果是93,如TRUNC(96.338, -1)结果是90。大家多体会一下就可以了。
我们可以看一个实际的例子:
SELECT ROUND(45.923,2),    ROUND(45.923, 0),    ROUND(45.923, -1)
FROM DUAL;
注意,DUAL表示oracle系统自带的表,并能被所有用户访问。他饱含了一个列和一个饱含x的行,可以用来查询并返回你需要的数字,这通常是用来验证Sql语法的。并没有什么实际的用途。
 
MOD()这个函数比较简单,就是求余数的函数
例如:MOD(1600,300)----------100
就是用1600/300算出余数是100。
 

http://blog.chinaunix.net/u/13606/showart.php?id=173776

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值