SQL常用函数

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> hot3.png

SQL常用函数
  1. 函数介绍

  2. 函数分类

  3. 字符串函数

  4. 数值函数

  5. 日期和时间函数

  6. 流程函数

  7. 其他常用函数

函数介绍

事先提供好的一些功能可以直接使用

函数可以用在SELECT语句及其子句

也可以用在UPDATE,DELETE语句当中。

函数分类

字符串函数

数值函数

日期和时间函数

流程函数

其它函数

字符串函数

concat(s1,s2...sn)

  • 将传入的字符连接成一个字符串

  • 任何字符串与null进行连接结果都是null

SELECT CONCAT("ab","cd");
CONCAT("ab","cd")
abcd


insert(str,x,y,instr)

  • 将字符串str从x位置开始,y个字符长的子串替换为指定的字符

INSERT("abcde",2,3,"12345")
a12345e

LOWER(Str)和UPPER(str)

  • 将字符串转成小写或大写

LOWER("acBdF")
UPPER("FdCsc")
acbdfFDCSC


LEFT(str,x)和RIGHT(str,x)

  • 分别返回字符串最左边的x个字符和最右边的x个字符

  • 如果第二个参数为null,那么不返回任何字符

LEFT("abcd",2)
RIGHT("abcd",2)
ab
cd


LPAD(str,n,pad)和RPAD(str,n,pad)

  • 用字符串pad对str最左边或最右边进行填充,直接到长度为n个字符长度

LPAD("abc",7,"123")
RPAD("abc",7,"123")
1231abcabc1231


LTRIM(str)、RTRIM(str)、TRIM(str)

  • 去掉字符串当中最左侧、最右侧的空格、去掉字符串左右的空格


REPEAT(str,x)

  • 返回str重复x次的结果

REPEAT("abc",3)
abcabcabc


REPLACE(str,a,b)

  • 用字符串b替换字符串str中所有出现的字符串a.

REPLACE("abcdab","ab","123")
123cd123


SUBSTRING(str,x,y)

  • 返回字符串str中第x位置起y个字符长度的字符

SUBSTRING("abcde",2,3)
bcd

数值函数

ABS(x)

  • 返回X的绝对值

ABS(-45)
45

CEIL(x)

  • 小数不为零部分上取整,即向上取最近的整数

CEIL(2.3)
3

FLOOR(x)

  • 小数部分下取整,即向下取最近的整数

FLOOR(2.7)
2

MOD(X,Y)

  • 返回X/Y的模

MOD(4,3)
1

RAND()

  • 返回0-1内容的随机值

RAND()
0.6311537890053855

时间和日期函数

CURDATE()

  • 返回当前日期,只包含年月日

CURDATE()
2019-7-26


CURTIME()

  • 返回当前时间,只包含时分秒

CURTIME()
15:59:17


UNIX_TIMESTAMP(DATE)

  • 返回当前日期的时间戳

UNIX_TIMESTAMP("1998-1-20")
885225600


FROM_UNIXTIME(unixtime)

  • 将一个时间戳转换成日期

FROM_UNIXTIME(885225600)
1998-01-20 00:00:00


WEEK(DATE)

  • 返回当前是一年中的第几周

WEEK("2019-7-26")
29


YEAR(DATE)

  • 返回所给日期是那一年

YEAR("2019-7-26")
2019


HOUR(TIME)

  • 返回当前时间的小时

HOUR("16:32")
16


MINUTE(TIME)

  • 返回当前时间的分钟

MINUTE("16:32")
32


DATE_FORMAT(date,fmt)

  • 按字符串格式化日期date值

DATE_FORMAT(now(),"%M,%D,%Y")
July,26th,2019
%a缩写星期名
%b缩写月名
%c月,数值
%D带有英文前缀的月中的天
%d月的天,数值(00-31)
%e月的天,数值(0-31)
%f微秒
%H小时 (00-23)
%h小时 (01-12)
%I小时 (01-12)
%i分钟,数值(00-59)
%j年的天 (001-366)
%k小时 (0-23)
%l小时 (1-12)
%M月名
%m月,数值(00-12)
%pAM 或 PM
%r时间,12-小时(hh:mm:ss AM 或 PM)
%S秒(00-59)
%s秒(00-59)
%T时间, 24-小时 (hh:mm:ss)
%U周 (00-53) 星期日是一周的第一天
%u周 (00-53) 星期一是一周的第一天
%V周 (01-53) 星期日是一周的第一天,与 %X 使用
%v周 (01-53) 星期一是一周的第一天,与 %x 使用
%W星期名
%w周的天 (0=星期日, 6=星期六)
%X年,其中的星期日是周的第一天,4 位,与 %V 使用
%x年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y年,4 位
%y年,2 位


DATE_ADD(date,interval expr type)

  • 给日期加上一个值

DATE_ADD("1998-1-20",INTERVAL 3 DATE)
1998-1-23


DATEDIFF(date1,date2)

  • 计算两个日期相差的天数

DATEDIFF("2000-3-20","1998-2-18")
761


流程函数

IF(value,t,f)

  • 如果value是真,返回t,否则返回f

IF(2>3,aa,bb)
bb


IFNULL(value1,value2)

  • 如果value1不为空,返回value1否者返回value2

IFNULL(20,0)
20


CASE WHEN THEN END

CASE WHEN 2>3 THEN "aa" ELSE "bb" END
bb


其他函数

DATABASE()

  • 返回当前数据库名

VERSION()

  • 返回当前数据库版本


USER()

  • 返回当前登陆用户名


PASSWORD(STR)

  • 对str进行加密


MD5()

  • 返回str的MD5值




a37f0d96a7f3e6c2eee33b1cd2aa0a6ec6a.png 5af4941652df19706609870ecfe72fe4828.gif

勤学如春起之苗,不见其增,只有所长。辍学如磨刀之石,不见其增,日有所亏

c92cdd966ec5e9e13b90439e22d32d96cfc.jpg



eb09809f930dffc22742117b56d2f3e8df8.png

本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2019-07-26 21:38  木瓜煲鸡脚  阅读(54)  评论(0)    收藏  举报