单行函数语法:
语法:funcation_name(列 | 表达式[, 参数1, 参数2])
单行函数主要分为以下几种:
- 字符函数:接收数据返回具体的字符信息
- 数值函数:对数字进行处理,例如:四舍五入
- 日期函数:直接对日期进行相关的操作
- 转换函数:日期、字符、数字之间可以完成互相转换功能
- 通用函数:Oracle自己提供的有特色的的函数
字符函数:
在Oracle里面所有的验证操作必须存在完整SQL语句之中,所以如果现在只是进行功能验证,使用的是一张具体的表。
SELECT UPPER('LiXingHua') FROM emp;
因为emp有14行记录,所以会重复显示14行。如果emp表中的数据很多,即使用DISTINCT消除,代码的代价还是很高。所以现在希望有一张表进行用户验证,所以在Oracle里提供dual的数据表(dual是张虚拟表)。
范例:验证 UPPER() 和 LOWER()
SELECT UPPER('LiXingHua'), LOWER('MLDN') FROM dual;
范例:
范例:
首字母大写,那么一定其他字母都是小写,可以利用INITCAP()函数进行处理。
范例:替换使用的是REPLACE()函数。
范例:计算长度,使用LENGTH()函数,长度返回的数据是数值型数据。
范例:截取操作使用SUBSTR()函数
截取函数SUBSTR()的两种形式:
- 从指定位置截取到结尾:SUBSTR(列 | 字符串, 截取开始点)
- 截取部分的字符串:SUBSTR(列 | 字符串, 截取开始点, 截取个数)
在Oracle数据库中,下标都是从1开始,如果设置为0,也会自动转换为1。
范例:
范例:
截取姓名之中的后三个,开始点的确定:
- 实现一:先求得姓名的长度,而后减2
- 实现二:设置开始点为负数
注意:Java语言里的substring()方法,是不够设置负数的。
面试题: 请问Oracle中的SUBSTR()函数的下标开始点是从0开始还是从1开始。
Oracle也可以设置为1,即使使用了0,那么最终的结果也会将其定义为1。
范例:返回dual中“l”的ASCII码
范例:
范例:(ltrim 左边裁减掉指定字符串 trim 修减)
不管如何消除,中间的空格是无法消除的。
范例:(pad 填补)
范例:(instr 指示书,指导人)
如果查找到要找的内容,那么此函数会返回位置,如果找不到,就返回0。
这个函数和Java中的 indexOf() 方法功能相同的。