Oracle知识点整理(三)

 

Andy-ZhangSir 2020-06-03 11:37:06  10  收藏  原力计划
展开
Oracle知识点整理(三)
前言
SELECT语句
字符串函数
CONCAT()
LENGTH()
UPPER/LOWER/INITCAP
dual
TIRM/LTRIM/RTRIM
LPAD/RPAD
SUBSTR
INSTR
ROUND
TRUNC
MOD
CEIL/FLOOR
前言
这一篇主要介绍的是Oracle中字符串、数值的相关操作,会涉及到函数,因为函数不能单独存在,因此会先简单说一下SELECT语句。

SELECT语句
SELECT * FROM A WHERE id=1
1
这是一条查询语句,

表示查询出表中所有字段,也可以选择写出具体的字段名
FROM 后面跟查询的表
WHERE 后面跟查询的过滤条件,可以跟一个或多个,也可以不跟条件。
SELECT 子句中可以跟表达式也可以跟函数。
例如:SELECT name,salary*12 FROM A 表示查询A表中各信息的名称和十二个月的工资
函数的示例在下面展示。

字符串函数
CONCAT()
拼接字符串

SELECT ename,sal FROM A                 
1
结果:


SELECT CONCAT(ename,sal) FROM A   
1
结果:


CONCAT函数可以包含CONCAT函数,从而实现多个字符串的拼接
除了CONCAT函数,还有一种拼接方式就是||的方式,
例如:SELECT ename || sal FROM A
也可以实现CONCAT 的结果,而且更加的简单一些。

LENGTH()
LENGTH©
如果c是varchar,返回字符串实际的长度,如果是char返回char的固定长度,包括空格。

SELECT ename,LENGTH(ename) FROM A
1
UPPER/LOWER/INITCAP
将字符串转为全大写/全小写/首字母大写
对于INITCAP可以用空格隔开多个单词,那么每个单词的首字母都会大写

dual
Oracle中的伪表
当查询的内容与任何一张表都没有关系时,可以使用伪表,伪表只会查询出一条数据。

TIRM/LTRIM/RTRIM
TRIM(a from b)去除当前字符串中两边的指定重复字符,指定字符只能是单一的字符不能有多个,比如a可以是’m’但不能为’mn’
LTRIM(b,a)只去除左边,去除b中左边的a,这里的a可以是多个字符,比如LTRIM(’errewyyyee‘,’erw‘),得到的结果是yyyee,会将左边的errew都去掉,也就是说会将b中左边包含a中各字符的都去掉,知道没有包含字符结束。
RTRIM(b,a)只去除右边,同LTRIM

SELECT TRIM('e' FROM 'eeessseee') FROM dual
1
SELECT LTRIM('eeessseee','e') FROM dual
SELECT RTRIM('eeessseee','e') FROM dual
1
2
LPAD/RPAD
补位函数,将不足的位数补出
LPAD(sal,6,’@’) 表示将sal补充到6位,不足的用@在左侧补齐

可以通过补充空格实现左对齐和右对齐效果

SUBSTR
截取字符串
SUBSTR(‘hello world’,7,2)
从下标七开始截取两位
结果为wo

如果第三个参数没有或者长度超出的字符串的长度,都是表示截取到末尾
截取的位置可以是负数,表示从倒数的第几个字符开始截取

在数据库中下标是从1开始的

INSTR
INSTR(c1,c2,[,n[,m]])
返回字符串c2在字符串c1中的位置
从n开始搜索,没有从1开始
m表示c2的第几次出现,没有就是第一次
如果c1中没有c2则返回0

ROUND
ROUND(m,n) 四舍五入
m表示需要计算的数,
n必须是整数
n为正整数,表示四舍五入到小数点后的第n位
n为0表示四舍五入到整数位
n为负整数,表示四舍五入到小数点前的第n位

TRUNC
TRUNC(m,n)截取数字
截取的位数后面的值不重要,值截取对应的位的值
比如

SELECT TRUNC(345.678,2) FROM dual
1
结果为 345.67

MOD
MOD(m,n)求余数

如果除数n为0返回m

CEIL/FLOOR
分别为向上取整和向下取整
或者说CEIL为取大于该数的最小整数
FLLOR为取小于该数的最大整数

SELECT CEIL(45.678) FROM dual;
SELECT FLOOR(45.678) FROM dual;
1
2
结果:
46
45
————————————————
版权声明:本文为CSDN博主「Andy-ZhangSir」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41404112/article/details/106517999

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值