• Oracle学习笔记(6)——函数


    • 函数的作用
      • 方便数据的统计
      • 处理查询结果
    • 函数的分类
      • Oracle内置的系统函数
        • 数值函数
          • 四舍五入
                                                ROUND(n[,m])
                                                1、n:表示要进行四舍五入的值
                                                2、m:表示保留小数点后几位或前几位
                                                3、省略m : 0
                                                4、m > 0:小数点后m位
                                                5、m < 0:小数点前m位
                                                样例:select round(23.4),round(23.45,1),round(23.45,-1) from dual;
    • 取整函数
                                                取最大值:CEIL(n)
                                                取最小值:FLOOR(n)
                                                样例:select ceil(23.45),floor(23.45) from dual;

    • 经常使用计算
                                                  1、 取绝对值:ABS(n)
                                                   select abs(23.45),abs(-23),abs(0) from dual;
                                                  2、取余数:MOD(m,n)   假设m和n中有一个值为null值。则结果返回null值
                                                   select mod(5,2) from dual;
                                                   select mod(5,null) from dual;
                                                  3、POWER(m,n):表示返回m的n次幂
                                                   select power(2,3),power(null,2) from dual;
                                                  4、求平方根:SQRT(m)
                                                    select sqrt(16) from dual;
    • 三角函数
                                                  1、正弦:SIN(n)、反正弦:ASIN(n)     n表示弧度
                                                  2、余弦:COS(n)、反余弦:ACOS(n)   n表示弧度
                                                  3、正切:TAN(n)、反正切:ATAN(n)   n表示弧度
                                                    select sin(3.124) from dual;
    • 字符函数
      • 大写和小写转换函数
                                                UPPER(char):转大写
                                                LOWER(char):转小写
                                                INITCAP(char):首字母转大写
                                                样例: select upper('abde'),lower('ADe'),initcap('asd') from dual;
    • 获取子字符串函数
                                                SUBSTR(char,[m[,n]])
                                                说明:char:源字符串,m:取子串的開始位置,n:截取子串的位数
                                                           n能够省略,当n省略时表示从m的位置截取到字符串的末尾
                                                           m为0,表示从字符串的首字母開始截取
                                                           m为负数,表示从字符串的尾部開始截取
                                                select substr('abcde',2,3),substr("abcde",2),substr('abcde',-2,1) from dual;

    • 获取字符串长度函数
                                                LENGTH(char):
                                                select length('acd ') from dual;
    • 字符串连接函数
                                                CONCAT(char1,char2)  与 || 操作符的作用一样
                                                select concat('ab','cd') from dual;
                                                select  'ab' || 'cd' from dual;

    • 去除子串函数
                                               1、 TRIM(c2 FROM c1):该函数表示从字符串c1中去除字符c2
                                                select trim('a' from 'abcde') from dual;
                                               2、LTRIM(c1[,c2]):
                                                select ltrim('ababaa','a') from dual;
                                               3、RTRIM(c1[,c3]):
                                                select rtrim('ababaa','a') from dual;
                                               4、TRIM(c1):取除首尾的空格

    • 替除函数
                                                1、REPLACE(char,s_string[,r_string]) : 省略r_string用空格替换
                                                 样例:select replace('abced','a','A') from dual;
                                                            select replace('abced','a') from dual;
                                                            select replace('abced','ab','A') from dual;

    • 日期函数
      • 系统时间
        • SYSDATE   默认格式:DD-MON-RR
                                                      select sysdate from dual;

    • 日期操作
      • ADD_MONTHS(date,i):返回在指定日期上加入的月份。

        i能够是不论什么整数。假设i的小数,会自己主动截取整数。

                                                                                            假设i是负数,则相当于为原日期减去月份。

                                                    select add_months(sysdate,3),add_months(sysdate,-3) from dual;
    • NEXT_DAY(date,char):假设char的值是'星期一',则返回date指定日期的下周一是那天
                                                    select next_day(sysdate,'星期一') from dual;
    • LAST_DAY(date):返回某一月的最后一天的日期
                                                    select last_day(sysdate) from dual;
    • MONTHS_BETWEEN(date1,date2):表示两个日期之间相隔的月份
                                                    select months_between('20_5月_15','10_1月_15') from dual;

    • EXTRACT(date FROM datetime):
                                                     select extract(year from sysdate) from dual;
                                                     select extract(month from sysdate) from dual;
                                                     select extract(date from sysdate) from dual;
                                                     select extract(hour from timestamp '2015-10-1 17:25:14') from dual;

    • 转换函数
      • 日期转换成字符的函数
                                            TO_CHAR(date[,fmt[,params]])
                                            參数说明:
                                            date:将要转换的日期
                                            fmt:转换的格式
                                            params:日期的语言。通常不写
    • 默认格式:DD-MON-RR
    • YY  YYYY   YEAR
    • MM   MONTH
    • DD     DAY
    • HH24     HH12
    • MI    SS
                                            样例:select to_char(sysdate,'YYYY-MM-DD  HH24:MI:SS') from dual;
                                                       select to_char(sysdate,'YYYY-MM-DD  HH12:MI:SS') from dual;

    • 字符转换成日期的函数
                                            TO_DATE(char[,fmt[,params]])     注意:to_date()依照系统默认格式显示日期
                                             样例:select to_date('2015-05-22','YYYY-MM-DD') from dual;

    • 数字转换成字符的函数
                                            TO_CHAR(number[,fmt])
                                            9:显示数字并忽略前面的0
                                            0:显示数字。位数不足。用0补齐
                                            .或D:显示小数点
                                            ,或G:显示千位符
                                            $:美元符号
                                            S:加正负号(前后都能够,不能同一时候加上)
                                            select to_char(12345.678,'$99,999.999') from dual;
                                            select to_char(12345.678,'$99,999,999') from dual;
                                            select to_char(12345.678,'S99,999.999') from dual;

    • 字符转换成数字的函数
                                            TO_NUMBER(char[,fmt])
                                            fmt是转换的格式。能够省略
                                            select to_number('$1,000','$9999') from dual;

      • 自己定义的函数(临时不学)
    • 在查询中使用函数
      • 在查询中使用字符函数
                        1、在员工信息表查询出员工的生日(也就是依据员工省份证号码得到员工生日)
                        select substr(cardid,7,8) from users;
                        2、将部门号01所有替换成'信息技术'
                        select replace(deptno,'01','信息技术') from users;
                        3、将员工信息表中的年龄字段与10取余数
                        select mod(age,10) from users;



    • 在查询中使用日期函数
                        1、取得员工入职的年份
                        select extract(year from regdate) from users;
                        2、查询出5月份入职的员工信息
                        select * from users where extract(month from regdate)=5;


  • 相关阅读:
    为什么要做服务化?
    同步 互斥锁 读写锁 区别
    http request header 中的host行的作用
    关于group by 、group by having、where group by与 group by order by
    where,having与 group by连用的区别
    数据库:drop、truncate、delete三者删除的区别
    设置 TOMCAT 请求超时时间 和 最大连接数
    访问平台Servlet时,如何设置超时时间
    开源一款简单清爽的日历组件,JavaScript版的
    关于响应式布局
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8915977.html
Copyright © 2020-2023  润新知