数据库sql函数归纳

函数:
1、字符串函数:
concat(s1、s2、...sn)        字符串拼接、将s1、s2、...sn拼接为一个字符串;

SELECT CONCAT('yi',' xing');


lower(str)                      将字符串转为小写

SELECT LOWER('YIXINgui');


upper(str)                      将字符串转为大写

SELECT UPPER('yixingGUI');


lpad(str,n,pad)         左填充,用字符串pad对str的左边进行填充,达到n个字符串

SELECT LPAD('YI',10,'SHUAI');


rpad(str,n,pad)         右填充,用字符串pad对str的右边进行填充,达到n个字符串

SELECT RPAD('GUAGUA',10,'WUDI!');


trim(str)                        去掉字符串头部和尾部的空格

SELECT TRIM('    WUDI!   GUAGUA                ');


substring(str,start,len)在字符串str中从start位置起截取len个长度的字符串

SELECT SUBSTRING('2DADAG2',2,3

);

案例:

SELECT id,LPAD(workno,5,0),`name` FROM emp ORDER BY id desc;--错误示范
SELECT * FROM emp;
UPDATE emp SET workno=LPAD(workno,5,0);--正确示范

2、数值函数:
cel(x)      向上取整;
SELECT CEIL(12.1);
floor(x)   向下取整;
SELECT FLOOR(13.14);
mod(x,y)返回x/y的模;
SELECT MOD(5,2);
rand()     返回0~1内的随机数;
SELECT RAND();
round(x,y)求参数x的四舍五入的值,保留  y位小数。
SELECT ROUND(3.1415926535,5);

案例:
随机生成一个6位验证码。
SELECT LPAD(ROUND(RAND(),6)*1000000,6,'0');

3、日期函数:
curdate()         返回当前日期;
curtime()         返回当前时间;
now()          返回当前的日期和时间;
year(date)   获取指定date的年份;
month(date)获取指定date的月份;
day(date)    获取指定date的日期;
date_add(date,interval exper type)返回一个日期/时间值加上一个时间间隔exper后的时间值;
datediff(date1,date2)返回起始时间date1和结束时间date2之间的天数。

SELECT CURDATE();
SELECT CURTIME();
SELECT NOW();
SELECT YEAR(NOW());
SELECT MONTH(CURDATE());
SELECT DAY(CURTIME());
SELECT DATE_ADD(NOW(),INTERVAL 14 YEAR);
SELECT 0-DATEDIFF('2001-01-09',NOW());


案例:查询入职天数并按其倒序排列。

SELECT DATEDIFF(NOW(),entrydate),`name`,id FROM emp ORDER BY DATEDIFF(NOW(),entrydate) desc;

4、流程控制:
if(value,t,f)                         如果value位true,则返回t,否则返回f;
ifnull(value1,value2)          如果value1不为空,返回value1;否则返回value2;
case when [val1] then [res1],...else [default] end 如果val1为true,返回res1,...否则返回默认值default;
case [expr] when [val1] then [res1] ...else [default] end 如果expr的值等于val1,返回res1,...否则返回默认值default;

SELECT IF(TRUE,'ok','NO');

SELECT IFNULL(NULL,'NONE');

SELECT IFNULL('','NONE');

case WHEN 'TRUE' THEN 'ok' ELSE 'null' END;

SELECT `name`, (CASE workaddress
    WHEN '北京' THEN
        '一线城市'
    WHEN '上海' THEN
    '一线城市'
    ELSE
        '二线城市'
END) AS '工作地址'
FROM emp;

SELECT `name`,CASE age
    WHEN 18 THEN
        '帅哥'
    WHEN 19 THEN
      '帅帅哥'
    when 20 THEN
      '大帅哥'
    ELSE
        '我是帅哥'
END AS '帅不帅?' FROM emp;


 

你可能感兴趣的:(数据库,sql,oracle)