Oracle 常用函数

系统 1616 0

1.Oracle 数据库中的to_date()函数的使用:   往emp表中插入一条记录:

      SQL
      
        > 
        
          insert 
          
            into emp 
            
              values(
              
                1234,
                
                  '
                  
                    LIZELU
                    
                      ',
                      
                        '
                        
                          BOSS
                          
                            ',
                            
                              1234,
                              
                                '
                                
                                  1980-12-06
                                  
                                    ',
                                    
                                      10000.0,
                                      
                                        0,
                                        
                                          30
                                          
                                            ); 
                                            
                                              insert 
                                              
                                                into emp 
                                                
                                                  values(
                                                  
                                                    1234,
                                                    
                                                      '
                                                      
                                                        LIZELU
                                                        
                                                          ',
                                                          
                                                            '
                                                            
                                                              BOSS
                                                              
                                                                ',
                                                                
                                                                  1234,
                                                                  
                                                                    '
                                                                    
                                                                      1980-12-06
                                                                      
                                                                        ',
                                                                        
                                                                          10000.0,
                                                                          
                                                                            0,
                                                                            
                                                                              30
                                                                              
                                                                                ) ORA
                                                                                
                                                                                  -
                                                                                  
                                                                                    01861: 文字与格式字符串不匹配
                                                                                    
                                                                                      --
                                                                                      
                                                                                        日期格式不对 
                                                                                        
                                                                                           使用to_date()函数搞定:格式to_date(
                                                                                          
                                                                                            '
                                                                                            
                                                                                              1965-02-05
                                                                                              
                                                                                                ',
                                                                                                
                                                                                                  '
                                                                                                  
                                                                                                    yyyy-mm-dd
                                                                                                    
                                                                                                      '); 
                                                                                                    
                                                                                                  
                                                                                                
                                                                                              
                                                                                            
                                                                                          
                                                                                        
                                                                                      
                                                                                    
                                                                                  
                                                                                
                                                                              
                                                                            
                                                                          
                                                                        
                                                                      
                                                                    
                                                                  
                                                                
                                                              
                                                            
                                                          
                                                        
                                                      
                                                    
                                                  
                                                
                                              
                                            
                                          
                                        
                                      
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

 

2.Oracle中的字符函数:

  字符函数是Oracle中最常用的函数,   lower(char); 把字符串转换为小写格式;   upper(char);把字符串转换为大写格式;   length(char);返回字符串的长度;   substr(char,m,n);取字符串的字串;   replace(char,search_char,replace_str);

  1.将所有员工的名字按小写的格式输出

      
        select 
        
          lower(emp.ename) 
          
            from emp;
          
        
      
    

  2.显示正好为5个字符的名字;

      
        select ename 
        
          from emp 
          
            where length(ename)
            
              =
              
                5;
              
            
          
        
      
    

  3.显示姓名的前三个字符;substr(char,2,3);代表从第二个取,取三个字符;

      
        select substr(ename,
        
          1,
          
            3) 
            
              from emp;
            
          
        
      
    

  4.显示姓名要求首字母大写,其余的小写;     分成三部走:     (1)把首字母大写:

      
        select 
        
          upper(substr(emp.ename,
          
            1,
            
              1)) 
              
                from emp;
              
            
          
        
      
    

    (2)把后面的字母小写:

      
        select 
        
          lower(substr(ename,
          
            2,length(ename)
            
              -
              
                1)) 
                
                  from emp;
                
              
            
          
        
      
    

    (3)把两个字符串连接起来 ||(管道符是连接作用的)

      
        select 
        
          upper(substr(emp.ename,
          
            1,
            
              1))
              
                ||
                
                  lower(substr(ename,
                  
                    2,length(ename)
                    
                      -
                      
                        1)) 
                        
                          from emp;
                        
                      
                    
                  
                
              
            
          
        
      
    

 

 

  5.把名字中的A转换为a;

      
        select 
        
          replace(ename,
          
            '
            
              A
              
                ',
                
                  '
                  
                    a
                    
                      ') 
                      
                        from emp;
                      
                    
                  
                
              
            
          
        
      
    

 

3.Oracle 中的数学函数:   1.round(n,[m]):四舍五入,省略m则四舍五入到整数位,m为小数点的位数;

      
        select 
        
          round(sal,
          
            1) 
            
              from emp 
              
                where ename
                
                  =
                  
                    '
                    
                      MILLER
                      
                        ';
                      
                    
                  
                
              
            
          
        
      
    

  2.trunc(n,[m]):保留小数位,m为小数位的个数

      
        select trunc(sal,
        
          1) 
          
            from emp 
            
              where ename
              
                =
                
                  '
                  
                    MILLER
                    
                      ';
                    
                  
                
              
            
          
        
      
    

  3.mod(n,m):去小数;
  4.floor(n):返回小于等于n的最大整数;  ceil(n):返回大于等于n的最小整数

      SQL
      
        > 
        
          select 
          
            floor(sal) 
            
              from emp 
              
                where ename
                
                  =
                  
                    '
                    
                      MILLER
                      
                        ';
                        
                          --
                          
                            向下取整 
                            
                              FLOOR
                              
                                (SAL) 
                                
                                  --
                                  
                                    -------- 
                                    
                                      1300
                                      
                                         SQL
                                        
                                          > 
                                          
                                            select ceil(sal) 
                                            
                                              from emp 
                                              
                                                where ename
                                                
                                                  =
                                                  
                                                    '
                                                    
                                                      MILLER
                                                      
                                                        ';
                                                        
                                                          --
                                                          
                                                            向上取整 
                                                            
                                                               CEIL(SAL) 
                                                              
                                                                --
                                                                
                                                                  -------- 
                                                                  
                                                                    1301
                                                                  
                                                                
                                                              
                                                            
                                                          
                                                        
                                                      
                                                    
                                                  
                                                
                                              
                                            
                                          
                                        
                                      
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

其他数学函数: abs(n):返回数字n的绝对值。 acos(n),asin(n),stan(n) 返回数字的反余弦,反正弦,反正切的值 exp(n):返回e的n次幂; log(m,n);返回对数值; power(m,n);返回m的n次幂

 

4.Oracle中的日期函数:   日期函数用于处理date类型的数据:默认情况下是dd-mon-yy格式。   (1)sysdate:该函数返回系统时间

      SQL
      
        > 
        
          select sysdate 
          
            from
            
               dual; SYSDATE 
              
                --
                
                  --------- 
                  
                    2014
                    
                      -
                      
                        4
                        
                          -
                          
                            13 
                            
                              9
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

  (2)add_moths(d,n);

    显示入职8个多月的职工;

      
        select 
        
          * 
          
            from emp 
            
              where sysdate
              
                >add_months(emp.hiredate,
                
                  8);
                
              
            
          
        
      
    

 

  (3)last_day(d);返回当前日期该月的最后一天

      
        select last_day(emp.hiredate) 
        
          from emp;
        
      
    

 

 ( 4)显示员入职的天数

      SQL
      
        > 
        
          select ename,
          
            round(sysdate
            
              -emp.hiredate) "入职天数" 
              
                from emp;
              
            
          
        
      
    

 

  (5) 找出个月的倒数第3天入职的员工

      SQL
      
        > 
        
          select 
          
            * 
            
              from emp 
              
                where (last_day(emp.hiredate)
                
                  -emp.hiredate)
                  
                    =
                    
                      2;
                    
                  
                
              
            
          
        
      
    

 

 

 

 

5.Oracle中数据类型的转换   to_char():把数据转换为字符串类型:to_char(字符串,类型);

  1.日期转换

      SQL
      
        > 
        
          select to_char(sysdate,
          
            '
            
              yyyy/mm/dd hh24:mi:ss
              
                ') 
                
                  from
                  
                     dual; TO_CHAR(SYSDATE,
                    
                      '
                      
                        YYYY/MM/DDHH2 ------------------------------ 2014/04/13 10:13:52
                      
                    
                  
                
              
            
          
        
      
    

  2.显示1980年入职的员工信息

      SQL
      
        > 
        
          select 
          
            * 
            
              from emp 
              
                where to_char(emp.hiredate,
                
                  '
                  
                    yyyy
                    
                      ')
                      
                        =
                        
                          1980
                          
                            ; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 
                            
                              --
                              
                                --- ---------- --------- ----- ----------- --------- --------- ------ 
                                
                                  1234 LIZELU BOSS 
                                  
                                    1234 
                                    
                                      1980
                                      
                                        -
                                        
                                          12
                                          
                                            -
                                            
                                              6 
                                              
                                                10000.00 
                                                
                                                  0.00 
                                                  
                                                    30 
                                                    
                                                      7369 SMITH CLERK 
                                                      
                                                        7902 
                                                        
                                                          1980
                                                          
                                                            -
                                                            
                                                              12
                                                              
                                                                -
                                                                
                                                                  17 
                                                                  
                                                                    800.00 
                                                                    
                                                                      20
                                                                    
                                                                  
                                                                
                                                              
                                                            
                                                          
                                                        
                                                      
                                                    
                                                  
                                                
                                              
                                            
                                          
                                        
                                      
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

 

6.Oracle中的系统函数:sys_context();   1) terminal 当前会话客户所对应的终端标识符

      SQL
      
        > 
        
          select sys_context(
          
            '
            
              USERENV
              
                ',
                
                  '
                  
                    terminal
                    
                      ') 
                      
                        from
                        
                           dual; SYS_CONTEXT(
                          
                            '
                            
                              USERENV
                              
                                ',
                                
                                  '
                                  
                                    TERMINA -------------------------------------------------------------------------------- WEB-A93B1E61669
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

  2) language 语言

      SQL
      
        > 
        
          select sys_context(
          
            '
            
              USERENV
              
                ',
                
                  '
                  
                    language
                    
                      ') 
                      
                        from
                        
                           dual; SYS_CONTEXT(
                          
                            '
                            
                              USERENV
                              
                                ',
                                
                                  '
                                  
                                    LANGUAG -------------------------------------------------------------------------------- SIMPLIFIED CHINESE_CHINA.ZHS16GBK
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

 

  3)db_name 当前的数据库实例名称

      SQL
      
        > 
        
          select sys_context(
          
            '
            
              USERENV
              
                ',
                
                  '
                  
                    db_name
                    
                      ') 
                      
                        from
                        
                           dual; SYS_CONTEXT(
                          
                            '
                            
                              USERENV
                              
                                ',
                                
                                  '
                                  
                                    DB_NAME -------------------------------------------------------------------------------- orcl
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

 

  4)session_user 当前会话所对应的数据库

      SQL
      
        > 
        
          select sys_context(
          
            '
            
              USERENV
              
                ',
                
                  '
                  
                    session_user
                    
                      ') 
                      
                        from
                        
                           dual; SYS_CONTEXT(
                          
                            '
                            
                              USERENV
                              
                                ',
                                
                                  '
                                  
                                    SESSION -------------------------------------------------------------------------------- SCOTT
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

 

  5)current_schema:查看当前方案

      SQL
      
        > 
        
          select sys_context(
          
            '
            
              USERENV
              
                ',
                
                  '
                  
                    current_schema
                    
                      ') 
                      
                        from
                        
                           dual; SYS_CONTEXT(
                          
                            '
                            
                              USERENV
                              
                                ',
                                
                                  '
                                  
                                    CURRENT -------------------------------------------------------------------------------- SCOTT
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          
        
      
    

Oracle 常用函数


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论