zoukankan      html  css  js  c++  java
  • 数据库 数据库SQL语句二

    单行函数
    --操作数据对象
    --接受参数返回一个结果
    --只对一行进行变换
    --每行返回一个结果
    --可以转换数据类型
    --可以嵌套
    --参数可以是一列或一个值
    字符函数
    SQL> select lower('HELLO') 大写转小写,upper('hello2') 小写转大写,initcap('hellothis world') 首字母大写 from dual;
    大写  小写转 首字母大写
    ----- ------ ----------------
    hello HELLO2 Hello This World
    concat连接函数
    --SQL> select 'hello' || 'world' 连接函数1,concat('fly','with') 连接函数2 from dual;
    连接函数1  连接函
    ---------- -------
    helloworld flywith
    substr(a,b)--从a中,第b位开始取
    substr(a,b,c)--从a中,第b位开始提取c个字符
    SQL> select substr('abcdefgh',3) result1,substr('12345678',2,5) result2 from dual;
    RESULT RESUL
    ------ -----
    cdefgh 23456
    length获取字符数
    lengthb获取字节数
    一个中文是2个字节
    SQL> select length('abcde'),length('世界'),length('abcde'),lengthb('世界') from dual;
    LENGTH('ABCDE') LENGTH('世界') LENGTH('ABCDE') LENGTHB('世界')
    --------------- -------------- --------------- ---------------
                  5              2               5               4
    lpad()左填充函数
    rpad()右填充函数
    SQL> select lpad('abcd',10,'*'),rpad('abcd',10,'#') from dual;
    LPAD('ABCD RPAD('ABCD
    ---------- ----------
    ******abcd abcd######
    instr('母串','子串');在母串中查找子串,返回子串在母串中的位置,找不到返回0。
    SQL> select instr('abcdef','de') from dual;
    INSTR('ABCDEF','DE')
    --------------------
                       4
    trim去掉前后指定的字符,字符可以是空格,也可以不是空格
    SQL> select trim('h' from 'hehlloh') from dual;
    --注意去除的是最前后或者最后面的指定字符,中间的不会去除
    --注意指定字符区分大小写
    TRIM(
    -----
    ehllo
    replace替换
    SQL> select replace('helloword','w','#') from dual;
    REPLACE('
    ---------
    hello#ord
    --注意是全局替换,并非只替换一个
    数字函数
    round:四舍五入
    SQL> select round(45.926,2) AA,round(45.926,1) BB,round(45.926,0) CC,round(45.926,-1) DD,round(45.926,-2) EE from dual;
            AA         BB         CC         DD         EE
    ---------- ---------- ---------- ---------- ----------
         45.93       45.9         46         50          0
    -- 1保留到小数点后1位
    -- 0保留到个位
    -- -1保留到十位
    -- -2保留到百位
    trunc:截断小数点后面的n位
    SQL> select trunc(45.926,1) from dual;
    TRUNC(45.926,1)
    ---------------
               45.9
    mod求余
    SQL> select mod(4,3) from dual;
      MOD(4,3)
    ----------
             1
    日期函数
    oracle中日期类型数据实际含有两个值:日期和时间。
    默认的日期格式是 DD-MON-RR
    SQL> select sysdate-1 昨天,sysdate 今天,sysdate+1 明天 from dual;
    昨天           今天           明天
    -------------- -------------- --------------
    05-1月 -17     06-1月 -17     07-1月 -17
    to_char('日期/数字',format)把数字或者日期转换成指定格式的字符串
    select 
        to_char(sysdate-1,'yyyy-mm-dd hh24:mi:ss') 昨天,
        to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') 今天,
        to_char(sysdate+1,'yyyy-mm-dd hh24:mi:ss') 明天
    from dual
    昨天                今天                明天
    ------------------- ------------------- -------------------
    2017-01-05 22:52:02 2017-01-06 22:52:02 2017-01-07 22:52:02
    日期的数学运算
    --在日期上加上或减去一个数字结果仍然为日期
    --两个日期相减返回日期之间相差的天数
    --可以用数字除24来向日期中加上或减去小时
    --查询员工入职时间,按照天、周、月、年方式显示
    select ename,sysdate-hiredate 天,(sysdate-hiredate)/7 周,
    (sysdate-hiredate)/30 月,(sysdate-hiredate)/365from emp
    months_between()--两个日期相差的月数
    --精确计算员工的入职月数
    SQL> select months_between(sysdate,hiredate) 入职月数 from emp;
    add_months()--向指定日期中加上若干月数
    SQL> select to_char(add_months(sysdate,2),'yyyy-mon-dd') 当前月数加上两个月 from emp;
    next_day()--指定日期的下一个日期(天)
    --查询当前日期的下一个周一
    SQL> select to_char(next_day(sysdate,'星期一'),'yyyy-mon-dd') 当前日期的下一个星期一 from dual;
    结果
    2017-1月 -09
    last_day()--本月的最后一天
    SQL> select to_char(last_day(sysdate),'yyyy-mon-dd') 当前月数加上两个月 from emp;
    round()--日期的四舍五入(按月四舍五入,过月半,则显示下个月)
    trunc()--日期截断
  • 相关阅读:
    selenium iframe 定位 qq空间说说
    单个 进程网速 消耗 网路 带宽
    网页加速
    baidu 验证网站 一一映射
    内容原发网站seo不重视2个标签,导致seo效果不如转发网站
    vi shell 的水平 决定了 手机shell 办公的效率
    键盘控制鼠标
    seo 谷歌去年悄然收购这家英国硬件公司
    视频 爬虫
    python 深浅 拷贝
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6258081.html
Copyright © 2011-2022 走看看