oracle学习 第四章 单行函数 ——02
来源:互联网 发布:英雄无敌3 mac 10.10 编辑:程序博客网 时间:2024/05/17 04:43
4.3 单行字符型函数
常用的单行字符型函数包括:
█ LOWER
█ UPPER
█ INITCAP
█ CONCAT
█ SUBSTR
█ LENGTH
█ INSTR
█ TRIN
█ REPLAC
下面,我们通过例子来分别介绍他们。
LOWER(列名|表达式):该函数是把字符转换成新小写。
可以通过例4-1的查询语句来验证这一单行字符型函数。
例 4-1
SQL> SELECT LOWER('SQL:Structural Query Language') 2 FROM dual;
例 4-1 结果
这里的dual使系统的一个虚表(伪表)。那么Oracle为什么要引入这个虚表呢?
在我们第一张中介绍过,在查询语句中必须包含连个字句。还记得是哪两个子句吗?在查询语句中必须包含SELECT和FROM两个字句。
可是LOWER('SQL:Structural Query Language')不属于任何表,我们如何在不违反SQL的语法前提下显示它呢?Oracle提供的虚表dual,就是用来解决这一难题的。
UPPER(列名|表达式):该函数把字符转换成大写。
可以通过例 4-2的查询语句来验证这一单行字符型函数。
例 4-2
SQL> SELECT UPPER('sql is used exclusively in rdbmses') 2 FROM dual;
例 4-2 结果
INITCAP(列名|表达式):该函数是吧每个字的头一个字符转换成大写,求的转换成小写。
可以通过如例 4-3的查询语句来验证这一单行字符型函数。
例 4-3
SQL> SELECT INITCAP('SQL is en ENGLISH LIKE language') 2 FROM dual;
例 4-3 结果
CONCAT(列名|表达式,列名|表达式):该函数是把同一个字符串和第二个字符串连接成一个字符串。
可以通过例4-4的查询语句来验证这一单行字符型函数。
例 4-4
SQL> SELECT CONCAT('SQL allows you to manipulate the data in DB', 2 'without any programming knowledge') 3 FROM dual;
例 4-4 结果
SUBSTR(列名|表达式):该函数是返回指定的子串。该子串是从第m个字符开始,其长度为n。
可以通过例 4-5的查询语句来验证这一单行字符型函数。
例 4-5
SQL> SELECT SUBSTR('SQL Lets you concentrate on what has to be done',14) 2 FROM dual;
例 4-5 结果
在这个例子中,我们省略了n,其结果是返回从第14个字符开始一直到结尾的所有字符。
LENGTH(列名|表达式):该函数是返回列中或表达式中字符串的长度。
可以通过 例 4-6 的查询语句来验证这一单行字符串函数。
例 4-6
SQL> SELECT LENGTH('SQL does not let you concentrate on how it will be achieved') 2 FROM dual;
例 4-6 结果
INSTR(列名|表达式,‘字符串’,[m],[n]):该函数是返回所给字符串的数字位置,表示从第m个字符开始搜索,n表示所给字符串出现的次数,他们的默认值都是1.
您可以通过例 4-7的查询语句来验证这一单行字符型函数。
例 4-7
SQL> SELECT INSTR('SQL allows for dynamic DB changes','F') 2 FROM dual;
例 4-7 结果
上面例子说明所给的字符串是鱼大小写有关的。因此,我们只要把例4-7中的‘F’改成‘f’就可以得到例4-8所需的结果。
例 4-8
SQL> SELECT INSTR('SQL allows for dynamic DB changes','f') 2 FROM dual;
例 4-8 结果
如果读者有时间的话,请仔细阅读例4-1到例4-8中的字符串。他们实际上是一个有关SQL的说明。
为了帮助读者理解,在这里给出如下的中文译文:
█ 例 4-1: SQL结构化的查询语言
█ 例 4-2: SQL仅适用于关系型数据库管理系统
█ 例 4-3: SQL是一种与英语相似的语言
█ 例 4-4: SQL允许您在不具备任何程序设计知识的情况下操纵数据库中的数据
█ 例 4-5: SQL让您把精力集中在必须要做的事情上
█ 例 4-6: SQL不让您把经历集中在您如何去做这件事上
█ 例 4-7: SQL允许动态的改变数据库
█ 例 4-8: SQL允许动态的改变数据库
当您仔细阅读完以上有关SQL的说明之后,相信您对SQL的理解一定会更加深刻,也许会达到一个新的层次。
TRIM([leading|trailing|borh]要去掉的字符FROM源字符串):该函数能从“源字符串”中的头(leading)部,或尾(trailing)部,或者从头(leading)部和尾(trailing)部(both)去掉“要去掉的字符”。
如果没有指定头(leading)或尾(trailing),TRIM函数按默认(both)处理(该函数是8i版本引入的,在8i之前的版本中是两个函数LTRIM和RTRIM)。
可以通过例4-9的查询语句来去掉SQL*PLUS前面的文号。
例 4-9
SQL> SELECT TRIM('?'FROM'?SQL*PLUS is the SQL implementation 2 used in an Oracle RDBMS or ORDBMS.') 3 FROM dual;例 4-9 结果
也可以通过例4-10的查询语句来去掉row后面的的两个文号。
例 4-10
SQL> SELECT TRIM('?'FROM 'It can process data in sets of rows??') 2 FROM dual;
例 4-10 结果
以上两个例子都没有指出是去掉头部还是尾部的字符,因此Oracle按默认Both来处理。但在例4-9中只有在头部有“?”而例4-10中只有在尾部有“?”,所以Oracle系统可以正常的处理。但在例4-11中,TRIM函数的这种方法就要遇到麻烦了。
例 4-11
SQL> SELECT TRIM('s' FROM 'sql*plus is a fourth generation query language') 2 FROM dual;
例 4-11 结果
在例4-11的SQL语句中,我们是想去掉尾部的‘s’,但Oracle系统把开头的和结尾的“s”都去掉了。这显然不是我们所希望的结果。这时我们可以用trailing选项来解决这个问题。现在您可以将例 4-11的SQL语句修改如例 4-12
例 4-12
SQL> SELECT TRIM(trailing 's'FROM 'sql*plus is a foutrh generation uery languages') 2 FROM dual;
例 4-12 结果
这次终于得到了自己想要的结果。
我们并没有给出在TRIM函数中直接使用Leading选项的例子。如果读者感兴趣的话,不妨自己试着构造一个或者几个这样的例子。
REPLACE(正文表达式,要搜寻的字符串,替换字符串):该函数是在“正文表达式”中查找“要搜寻的字符串”,如果找到了就用“替代字符串”替代。
可以通过里4-13的查询语句来验证这一单行字符型函数。
例 4-13
SQL> SELECT REPLACE('SQL*PLUS supports loops or if statements','supports', 2 'does not support') 3 FROM dual;
例 4-13 结果
如果读者有时间的话,请仔细阅读从例4-9至4-13中的字符串。他们实际上是对SQL*PLUS的说明
为了帮助读者理解,在这里给出如下的中文译文:
█ 例 4-9 : SQL*PLUS是SQL的一种实现,它用在Oracle的关系型数据库管理系统或面向对象的关系型数据库管理系统中
█ 例 4-10: 它可以一次处理多行数据
█ 例 4-11: SQL*PLUS是一种第四代查询语言
█ 例 4-12: SQL*PLUS是一种第四代查询语言
█ 例 4-13: SQL*PLUS不支持循环和判断(分支)语句
当仔细的阅读完伊桑有关SQL*PLUS的说明之后,相信您不但对SQL*PLUS的理解一定会更加深刻,而且对SQL和SQL*PLUS之间的关系也会更加清楚。也许会又到了一个更高的层次。
-----------------------------待续------------------------
上一篇:oracle学习 第四章 单行函数 ——01
下一篇:
- oracle学习 第四章 单行函数 ——02
- oracle学习 第四章 单行函数 ——01
- oracle入门之第四章【单行函数】
- Oracle第四章单行函数习题答案
- oracle中长用到的单行函数 (从实践中学习Oracle SQL-第四章)
- Oracle学习----单行函数
- Oracle学习笔记【02】:单行函数
- Oracle数据库学习笔记——单行函数
- Oracle学习之路——单行函数
- Oracle学习(2)单行函数
- Oracle学习(单行函数)
- Oracle学习(三):单行函数
- oracle学习之单行函数
- 【Oracle学习笔记】单行函数
- oracle学习笔记单行函数
- Oracle———单行函数
- Oracle笔记——单行函数
- Oracle知识点总结—单行函数
- 【Java线程】锁机制:synchronized、Lock、Condition
- Scrapy环境的搭建与入门教程
- Learn Java for Android Development (第三版)---封面
- STDM 数字水印算法
- CSS样式padding margin border属性
- oracle学习 第四章 单行函数 ——02
- android 网络文件上传下载工具类总结
- 贪心-活动安排问题
- storyboard和xib使用总结
- ios 创建控制器三种方式
- 百度笔试
- hdu 5428 The Factor
- Windows-程序运行原理
- 关于Toolbar的定制--文字或图片居中