这几天 预习了一遍 Oracle , 此处把 Oralce 数据库 中 视图 的笔记 拿出来 分享 一下, 该文中 有的地方 或许存在 点错误, 希望 看到的朋友 帮我指正出来,谢谢。Oracle 中提供了 大量的 内置函数, 已处理各种形式的运算。 这些函数涵盖了 字符串运算、数值运算、日期运算等方面, 同样 Oracle允许使用数值运算、逻辑运算等基表达式运算, 另外,提供了SQL标准所规定的特殊判式。
Oracle 中的 字符串函数;
Oracle 中的 数学函数;
Oracle 中的 日期函数;
Oracel 中的 聚合函数;
Oracle 中的 运算表达式;
Oracle 中的 特殊判式;
Oracle 中的 高级函数—分析函数与窗口函数;
- -- lpad() 函数 : 用于 左补全 字符串。 在某些情况下, 预期的字符串为固定长度, 而且格式统一, 此时可以考虑使用 lpad() 函数。 例如, 深圳股票代码都是 以 0 开头, 并且都为 6为, 可以利用 lpad格式化股票代码, 以保证 股票代码的格式。
-
- select lpad("21",6,"0") stock_code from dual;
-
- --需要注意的是, 当原字符串的长度大于 预期长度时, 实际进行的是 截取字符串操作。
-
- select lpad("1234567889",6,"0") stock_code from dual;
-
-
- -- rpad() 函数 : 与 lpad() 函数 相反, rpad() 函数从右端补齐字符串。
- select rpad("abc",10,"*") from dual;
-
- --需要注意的是:
- -- lpad() 和 rpad() 都用于填充字符串, lpad() 从左端进行填充, 而 rpad() 从右端进行填充,
- -- 但是 二者在最终截取字符串时, 都是 从 左端开始截取 的。
-
- select rpad("abcdefg"5,"*") from dual; --这句代码执行后 ,截取出来的饿时 ‘abcde’
-
-
-
-
-
-
- -- lower() 函数: 返回小写字符串 。 lower() 函数用于返回字符串的小写形式。 lower() 函数在查询语句中经常 扮演重要角色。 例如, 对于用户名和密码的小眼来说, 用户名一般不区分大小写, 用户无论输入了大写还是小写的形式, 都被认为是合法用户。 因此, 在数据库查询时, 应该将数据库中用户名与用户输入的用户名进行统一。
-
- --select user_id,user_name from t_users where lower(user_name)=lower("Alex");
-
- SQL> select empno,ename from emp where lower(ename)=lower("joNes");
-
- EMPNO ENAME
- ---------- ----------
- 7566 JONES
-
-
- --不使用 lower() 函数的形式 会出现如下结果:
- SQL> select empno,ename from emp where ename="joNes";
- 未选定行
- SQL>
-
-
-
-
- -- upper() 函数: 返回大写字符串。 upper() 函数返回字符串的大写形式。 与 lower() 函数类似, upper() 函数也可以用在查询语句中, 以统一数据和 查询条件的一致性。
-
- --select user_id, user_name from t_users where upper(user_name)=upper("ALEX");
-
- SQL> select empno,ename from emp where upper(ename)=upper("jones");
-
- EMPNO ENAME
- ---------- ----------
- 7566 JONES
-
- SQL>
-
- --不使用 upper() 函数的形式 会出现如下结果:
- SQL> select empno,ename from emp where ename="jones";
- 未选定行
- SQL>
-
-
- --z注意与说明: upper() 函数 和 lower() 函数 只针对 英文字符其作用, 因为只有 英文字符才有大小写之分。
-
-
-
-
- -- initcap() 函数 : 单词 首字母大写。 select initcap("big") from dual;
- SQL> select initcap("big") from dual;
-
- INI
- ---
- Big
-
-
- -- 需要注意的是, initcap() 函数 不能自动识别单词。 select initcap("bigbigtiger") from dual;
- SQL> select initcap("bigbigtiger") from dual;
-
- INITCAP(BI
- -----------
- Bigbigtiger
-
-
-
- -- initcap() 函数会将参数中的 非单词字符 作为 单词分隔符
-
- SQL> select initcap("big_big_tiger") from dual;
-
- -----------
- Big_Big_Tiger
-
- SQL> select initcap("big/big/tiger") from dual;
- -----------
- Big/Big/Tiger
-
- SQL> select initcap("big big tiger") from dual;
- -----------
- Big Big Tiger
-
-
-
- -- length() 函数 : 返回字符串 长度 。 select length("abcd ) from dual;
-
- -- 空字符串的长度不是 0 , 而是 null . 因为空字符串被 视作 null , 所以, length(null) 返回的仍然是 null.
- -- select length("") from dual;
- SQL> select length("") from dual;
-
- LENGTH("")
- ----------
-
- SQL>
-
-
- -- 对其他数据类型, 照样可以通过 length() 函数 来获得其 长度。 length() 函数 会首先将 参数转换为字符串, 然后计算其长度。
- -- select length(12.51) from dual;
- SQL> select length(12.51) from dual;
-
- LENGTH(12.51)
- -------------
- 5
-
- SQL>
-
-
-
-
- -- substr() 函数: 截取字符串 。 substr() 函数用户截取字符串。 该函数可以指定 截取的起始位置, 截取长度, 可以实现灵活的截取操作, 因此, 称为字符串操作中最为常用的 函数之一。
-
- --例如: 对于 字符串“1234567890”, 现在欲截取 自 第5位开始的 4个字符。 select substr("1234567890",5,4) from dual;
- SQL> select substr("1234567890",5,4) from dual;
- SUBS
- ----
- 5678
-
- SQL>
-
- -- 需要注意的是 Oracle 中的 字符位置 是从 1 开始, 而不是向某些编程语言 (如Java)那样从 0 开始。
- -- 如果 不指定长度, 那么 substr() 函数 将获取 起始位置参数 字符串结尾处 的所有字符。
- -- select substr("1234567890",5) from dual;
- SQL> select substr("1234567890",5) from dual;
-
- SUBSTR
- ------
- 567890
-
- SQL>
-
-
-
-
- -- instr() 函数 : 获得 字符串出现位置 。 instr() 函数用于获得字符串在父字符串中出现的位置
- --例如: select instr("big big tiger","big") from dual;
- SQL> select instr("big big tiger","big") from dual;
-
- INSTR("BIGBIGTIGER","BIG")
- --------------------------
- 1
-
-
- -- 可以指定额外的参数, 以命令该函数从 指定位置开始搜索。
- SQL> select instr("big big tiger","big",2) from dual;
-
- INSTR("BIGBIGTIGER","BIG",2)
- ----------------------------
- 5
-
- SQL>
-
- -- 还可以指定出现次数参数, 以指定是 第几次搜索到的子字符串。
- --例如: select instr("big big tiger","big",2,2) from dual;
- SQL> select instr("big big tiger","big",2,2) from dual;
-
- INSTR("BIGBIGTIGER","BIG",2,2)
- ------------------------------
- 0
-
-
-
- -- ltrim() 函数 : 删除字符串 首部空格。 ltrim() 中 l 代表 left 。 该函数用于删除字符串左端的空白符。
- -- select ltrim(" abc) from dual;
- SQL> select ltrim(" abc") from dual;
- LTR
- ---
- abc
-
- SQL>
-
- -- 需要注意的是, 空白符 不仅仅包括了 空格符, 还包括 TAB键、 回车符 和 换行符。
-
-
- -- rtrim() 函数: 删除字符串 尾部空格 。 rtrim() 中 的 r 代表 right 。 该函数用于删除字符串右端空白符 。 删除字符串 首尾空白符可以结合 使用 ltrim() 和 rtrim() 函数。
- -- select rtrim(ltrim( " abc ")) from dual;
- SQL> select rtrim(ltrim(" abc ")) from dual;
-
- RTR
- ---
- abc
-
- SQL>
-
-
-
- -- trim() 函数 : 删除字符串首尾空格 。 trim() 函数可以用于删除首尾空格, 相当于 ltirm() 和 rtrim() 的组合。
- -- select trim(" abc ") from dual;
- SQL> select trim(" abc ") from dual;
-
- TRI
- ---
- abc
-
- SQL>
-
-
-
-
- -- to_char() 函数 : 将其他类型转换为字符类型,这些类型主要包括数值型、 日期型。
- 1. 将数值型转为 字符串
-
- --select to_char(120,"99999") result from dual;
- SQL> select to_char(120,"99999") result from dual;
-
- RESULT
- ------
- 120
-
- SQL>
-
-
- --select to_char(0.96,"9.99") result from dual;
- SQL> select to_char(0.96,"9.99") result from dual;
-
- RESUL
- -----
- .96
-
- SQL>
-
-
- --select to_char(0.96,"0.00") result from dual;
- SQL> select to_char(0.96,"0.00") result from dual;
-
- RESUL
- -----
- 0.96
-
-
- --select to_char(5897.098,"999,999,999.000") result from dual;
- SQL> select to_char(5987.098,"999,999,999.000") result from dual;
-
- RESULT
- ----------------
- 5,987.098
-
- SQL>
-
-
-
- --select to_char(5987.098,"$999,999,999.000") result from dual;
- SQL> select to_char(587.098,"$999,999,999.000") result from dual;
-
- RESULT
- -----------------
- $587.098
-
- SQL>
-
-
-
-
- 2. 将日期型转换为 字符串
-
- --select to_char(sysdate,"yyyy-mm-dd") result from dual;
- SQL> select to_char(sysdate,"yyyy-mm-dd") reuslt from dual;
-
- REUSLT
- ----------
- 2012-03-05
-
- SQL>
-
-
- --select to_char(sysdate,"YYYY-MON-DD") from dual;
- SQL> select to_char(sysdate,"YYYY-MON-DD") from dual;
-
- TO_CHAR(SYSDATE,
- ----------------
- 2012-3月 -05
-
- SQL>
SQL 查询本周本月问题Oracle 函数 与 存储过程 的应用相关资讯 oracle数据库教程
- Oracle raw数据类型介绍 (01/29/2013 10:05:53)
- 监听器注册与ORA-12514 错误分析 (11/13/2012 14:30:08)
- Oracle SQL的cursor理解 (11/13/2012 14:16:17)
| - Oracle 如何强制刷新Buffer Cache (01/29/2013 10:02:46)
- dblink致Oracle库的SCN变成两库的 (11/13/2012 14:24:41)
- Linux操作系统下完全删除Oracle数 (11/13/2012 08:25:52)
|
本文评论 查看全部评论 (0)