sql 笔记

sql 笔记【2017-11-21】

单行函数

(1)不同类型的函数;
(2)转换函数;
(3)条件表达式

字符串函数:
(1)lower(str)转小写;
(2)upper(str)转大写;
(3)initcap(str)将单词的首字母大写;
(4)concat(str1,str2)连接字符串;
(5)substr(str,x,y)取字符串的子串,注意X是指从str的第几个字母开始,y是一共需要取几个字母;
(6)length(str) 取字符串的长度;
(7)instr(str,c)取字符c在字符串str第一次出现的位置;eg instr(‘helloworld’,’l’) 如果该字符不存在字符串里面,则返回0;
(8)lpad(str,n,c)将字符串str对齐,一共取n个字符位置,不足的左边补上字符c;

  eg:select lpad(id,10,'*') from activity;

  LPAD(ID,10,'*')
  --------------------
  ********36
  ********37
  ********38

(9)rpad(str,n,c)右对齐,原理同左对齐;

 eg  select rpad(id,10,'*') from activity;

  RPAD(ID,10,'*')
  --------------------
  36********
  37********
  38********

(10)trim(c from str)去除前后的指定字符[注意只是去除前后的而不是去除中间的]

  eg select trim('h' from 'hhhhhhaahhahhh') from dual;

  TRIM('H'FROM'HHHHHHAAHHAHHH')
  -----------------------------
  aahha

(11)repalce(str,c1,c2) 将字符串str中的字符c1全部替换成为c2

 eg select replace('ababaggbb','b','m') from dual;

  REPLACE('ABABAGGBB','B','M')
  ----------------------------
  amamaggmm

数字函数:

(1)round(n,x)四舍五入取得数n在精度为x的情况下四舍五入所得的值;

  eg select round(45.45,2),round(45.45),round(45.45,-1) from dual;

  ROUND(45.45,2) ROUND(45.45) ROUND(45.45,-1)
  -------------- ------------ ---------------
           45.45           45              50

(2)trunc(n,x)不用四舍五入,直接截断n在精度为x的情况下所得出的值;

        eg select trunc(45.45,1),trunc(45.45),trunc(45.45,-1) from dual;
        TRUNC(45.45,1) TRUNC(45.45) TRUNC(45.45,-1)
  -------------- ------------ ---------------
          45.4           45              40

2017-11-21[周三 小雪]
数字函数
(1)mod(a,b)取得a除以b的余数

 eg select mod(100,30) from dual;
   MOD(100,30)
  -----------
           10

日期函数

(1)在日期上面加上或者减去一个数字仍为日期;

  eg select sysdate,sysdate+1,sysdate-3 from dual;
  SYSDATE     SYSDATE+1   SYSDATE-3
  ----------- ----------- -----------
  2017/11/22  2017/11/23  2017/11/19

(2)两个日期相减返回日期之间相差的天数‘
–日期之间不允许做加法,无意义;

  eg  select sysdate -(sysdate+2) from dual;
    SYSDATE-(SYSDATE+2)
    -------------------
                       -2

(3)可以使用数字除以24来向日期中加上或者减去天数;
(4)months_between(date1,date2) 返回两个日期之间的相隔的月份;

  eg select months_between(sysdate,(sysdate-90)) from dual;
  MONTHS_BETWEEN(SYSDATE,(SYSDAT
  ------------------------------
                2.93548387096774  

(5)add_months(date1,months)在日期date1上面添加months个月份后得到的日期;

eg select sysdate ,add_months(sysdate,2),add_months(sysdate,-3),next_day(sysdate,'星期一') from dual;

  SYSDATE     ADD_MONTHS(SYSDATE,2) ADD_MONTHS(SYSDATE,-3) NEXT_DAY(SYSDATE,'星期一')
  ----------- --------------------- ---------------------- --------------------------
  2017/11/22  2018/1/22 10:56:23    2017/8/22 10:56:23     2017/11/27 10:56:23

(6)next_day(date,’星期几’)获取到距离日期date最近的一个星期几的具体日期;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值