Oracle学习之基本语法(一)—内置函数

  在工作中,一开始学Oracle是在PL/SQL界面工具上进行的,会了一些基本的数据类型和Oracle对象操作。比如:创建(CREATE)、修改(ALTER)、删除(DROP)表。还有一些对表的数据的操作,比如:插入(INSERT),更新(UPDATE)、删除(DELETE)表中的数据。除此之外,还有一些数据的处理,比如:查询(SELECT)、表连接(JOIN),集合(UNION)等等。
  但是,我发现会了这些基础的操作之后,对于像我这样刚开始用Oracle的菜鸟还是有很多不方便的地方。我发现如果我会用更多对数据处理的函数,我就会方便很多。所以,接下来我们要谈的是:Oracle常用的内置函数。

一、在数据处理时,难免会遇到数据类型之间的转换:
1、数值型(NUMBER)转换成字符型(VARCHAR2):
  SELECT TO_CHAR(1052.1234,'9999.999') FROM DUAL;
  --9999.999是转换格式,格式中小数点前面的9位数要大于等于实际数据的整数位数,小数点后面的9个数代表小数点后保留几位
2、日期型(DATE)转换成字符型(VARCHAR2):
  SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') FROM DUAL;
  SELECT TO_CHAR(SYSDATE, 'yyyy/mm/dd') FROM DUAL;

  SELECT TO_CHAR(SYSDATE, 'yyyymmdd') FROM DUAL;

  --YYYYMMDD固定要求的格式,代表年月日,如果转换的字符日期为年月那就是YYYYMM等等
3、字符型(VARCHAR2)转换成日期型(DATE):
  SELECT TO_DATE('20150912','yyyy/mm/dd') FROM DUAL;
4、字符型(VARCHAR2)转换成数字类型(NUMBER):
  SELECT TO_NUMBER('20150923','999999999.999') FROM DUAL;

二、字符串类型是需要处理比较多的:

字符串截取:
  SELECT SUBSTR('helloworld', 1, 5) FROM DUAL;
字符串连接:
  SELECT CONCAT('hello',',world') FROM dual;
字符串搜索:
  SELECT INSTR('hello,world','world') FROM dual;--world单词的首字母在字符串中第一次出现的位置
字符串大小写转换:
  SELECT UPPER('hello'),LOWER('HELLO'),INITCAP('hello word') FROM dual;--INITCAP每个单词首字母大写
字符串替换函数:
  SELECT REPLACE('helloword','word','world') FROM dual;--helloword位置可以放一个字段名
字符串填充:
  SELECT LPAD('hello',11,',oh'),RPAD('hello',11,',oh') FROM dual;--11是左边填充之后,这个字符串的长度
删除字符串首尾指定字符:
  SELECT TRIM(' hello,world '),LTRIM('ohhello','oh'),RTRIM('ohello',',hello') FROM dual;--默认删除空格
  --【对于去除首尾多个字符的时候,需要特别注意的是,Oracle数据库会从字符串中扫描,移除掉去除集合中出现的每一个字符,直到遇到第一个不在去除集合中的字符为止,  -- 而不是去去掉去除集合中的字符串。】
  SELECT TRIM(TRAILING 't' FROM 'this is test') FROM DUAL; --trailing 后缀符;leading 前缀符号,both 前后缀

三、除了对字符串进行处理,有时还需要对NUBER类型数据做一些四舍五入之类的:

保留小数点后位数:
  SELECT ROUND(2.34567, 0) FROM DUAL;
截取小数点后位数:
  SELECT TRUNC(22345.345678, 4) FROM DUAL;

四、另外,平时也会对日期进行处理:

为日期加上指定月份:
  SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL;
返回指定月份最后一天:
  SELECT LAST_DAY(SYSDATE) FROM DUAL; --date类型
date当前日期的下一周对应的日期:
  SELECT SYSDATE, NEXT_DAY(SYSDATE, '星期一') FROM DUAL; --(date,char)

五、以上都是针对某种数据类型的字段的处理,还有几个非常重要的函数:

处理字段为NULL的函数:
  SELECT NVL('abc', 'null') FROM DUAL;--判断某字段是否为null,如果为null处理第二个表达式的内容
字段表达式匹配函数:
  SELECT DECODE('ab', 'ab', '1', 'cd', '2') FROM DUAL;
聚合函数:
  sum()求和,avg()平均,max()最大,min()最小

到此,目前本人掌握的常用函数都进行了解释,希望对大家有帮助。并请大家留言进行补充和指正,不吝赐教。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值