SQL语句-3

 第八章 Function

# 绝对值和PI()
SELECT ABS(-10) ,PI()

# 平方根和求余
SELECT sqrt(49),MOD(90,4)

# 获取不小于x的整数CEIL(x) CEILING(x)
SELECT CEIL(-3.35),CEILING(3.35)

# 获取不大于x的整数FLOOR(x)
SELECT FLOOR(-3.35)

# 获取接近x的整数
# ROUND(x,y) y以小数点作为0分界线
SELECT ROUND(-1.14),ROUND(23.53,0) 

# 浮点数进行截取
SELECT TRUNCATE(1.35,1)

# 符号运算
SELECT SIGN(-1),SIGN(0),SIGN(2)

# 幂函数

# 对数运算
SELECT LOG(3),LOG10(100)

# 角度化为弧度R和弧度化为角度D
SELECT RADIANS(90),DEGREES(PI()/2)

# 正弦和余弦,反正弦和反余弦
SELECT SIN(PI()/2),ASIN(1),COS(0),ACOS(1)

# 正切、反正切和余切
SELECT TAN(PI()/4),ATAN(1),COT(PI()/4)

# 求字符串长度
SELECT CHAR_LENGTH('HELLO')

# 合并字符串 
SELECT CONCAT('HELLO','WORLD') # 若有空,则返回空
SELECT CONCAT_WS(',','HELLO','WORLD') # 连接字符串以‘,’ 隔开

# 替换字符串 INSERT(s1 ,x,len,s2)返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字
# 符。如果x超过字符串长度,则返回值为原始字符串。假如len的长度大于其他字符串的长度,
# 则从位置x开始替换。若任何一个参数为NULL,则返回值为NULL。
SELECT INSERT('quest',2,4,'hell') as col1

# LOWER(str)或者LCASE (str)可以将字符串str中的字母字符全部转换成小写字母。
# UPPER(str)或者UCASE(str)可以将字符串str中的字母字符全部转换成大写字母。
# LEFT(s,n)返回字符串s开始的最左边n个字符。
# RIGHT(s,n)返回字符串中最右边n个字符。
# LPAD(s1,en,s2)返回字符串s1,其左边由字符串s2填补到len字符长度。假如s1的长度大于len,则返回值被缩短至len 字符。
# RPAD(s1,len,s2)返回字符串sl,其右边被字符串s2填补至len字符长度。假如字符串s1的长度大于len,则返回值被缩短到len字符长度。
# LTRIM(s)返回字符串s,字符串左侧空格字符被删除。
# RTRIM(s)返回字符串s,字符串右侧空格字符被删除。
# TRIM(s)删除字符串s两侧的空格。
# TRIM(s1 FROM s)删除字符串s中两端所有的子字符串s1os1为可选项,在未指定情况下,删除空格。
# SPCE(m)返回一一个由n个空格组成的字符串。
# REPLACE(s,s1,s2)使用字符串s2替代字符串s中所有的字符串s1。
# STRCMP(s1,2)若所有的字符串均相同,则返回0;若根据当前分类次序,第-个参数小于第二个,则返回-1,其他情况返回1。
# SUBSTRING(,n,len)带有len参数的格式,从字符串s返回一个长度同len 字符相同的子字符串,起始于位置n。也可能对n使用一一个负值。假若这样,则子字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串的开头位置。
# LOCATE(trl,str)、POSITION(str1 IN str)和 INSTR(str, str1)3个函数作用相同,返回子字符串str1在字符串str 中的开始位置。
# REVERSE(s)将字符串s反转,返回的字符串的顺序和s字符串顺序相反。
# ELTQN,字符串1,字符串2,字符串3.....字符串N)若N= 1,则返回值为字符串1,若N=2,则返回值为字符串2,以此类推。若N小于1或大于参数的数目,则返回值为NULL.
# FIELD5s,l,2,-.)返回字符串s在列表s.,2...中第一次出现的位置, 在找不到s的情况下,返回值为0。如果s为NULL,则返回值为0,原因是NULL不能同任何值进行同等比较。
# FIND IN SET(s1,s2)返回字符串s1在字符串列表s2中出现的位置,字符串列表是一一个由多个逗号‘,’ 分开的字符串组成的列表。如果s1不在s2或s2为空字符串,则返回值为0。如果任意一一个参数为NULL,则返回值为NULL。这个函数在第一-个参数包含- 一个逗号‘,'时将无法正常运行。
# MAKE_ SETx,1,2,-)返回由x的二进制数指定的相应位的字符串组成的字符串,s1对应比特1, s2 对应比特01,以此类推。s1, 2...中的NULL值不会被添加到结果中。

# 获取当前日期
SELECT  CURDATE(),CURRENT_DATE(),CURDATE()+0

# 获取当前日期和时间
SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();

# 获取UNIX时间戳函数 # 若参数为空,则返回GMT之后的秒数
# FROM_ UNIXTIME(date)函 数把UNIX 时间戳转换为普通格式的时间,与UNIX_ TIMESTAMP (date)函数互为反函数。
# UTC_ DATE()函数返回值为当前时区的日期值。UTC_ _TIME(返回当前UtC时间值,其格式为‘HH:MM:SS’ 或HHMMSS,具体格式取决于函数是否用在字符串或数字语境中。
# MONTH(date)函数返回date对应的月份,范围值从1~12。
# DAYOFWEEK(d)函数返回d对应的一周中的索引(位置)。1表示周日,2表示周一,...7表示周六)。
# WEEKDAY(d)返回d对应的工作日索引。0表示周一,1表示周二,... 6表示周日。
# WEEK(d)计算日期d是一年中的第几周。WEEK(的双参数形式允许指定该星期是否起始于周日或周一,以及返回值的范围是否为从0~53或从1~53。 若Mode参数被省略,则使用default_ week_ format 系统自变量的值,可参考表6.1。
# DAYOFYEAR(d)函数返回d是一年中的第几天,范围是从1~366。
# DAYOFMONTH(d)函数返回d是一个月中的第几天,范围是从1~31。
# YEAR(date) 返回date对应的年份,范围是1970~2069。
# QUARTER(date)返回date对应的一年中的季度值,范围是从1~4。
# MINUTE(time)返回time对应的分钟数,范围是从0~59。
# SECOND(time)返回time对应的秒数,范围是从0~59。
# EXTRACT(typeFROMdate)函数所使用的时间间隔类型说明符同DATE_ADD(或DATE_ SUBQ)的相同,但它从日期中提取- -部分,而不是执行日期运算。
# TIME_ TO_ SEC(time)返回已转化为秒的time参数。转换公式为:小时*3600+分钟*60+秒。
# SEC_ _TO_ _TIME(seconds)返 回被转化为小时、分钟和秒数的seconds 参数值,其格式为‘HH:MM:SS’或HHMMSS,具体格式根据该函数是否用在字符串或数字语境中而定。
SELECT UNIX_TIMESTAMP(NOW())


# IF(expr,v1,v2)函数 相当于C语言的三元运算符
SELECT IF(2>1,'YES','NO') as result1
# IFNULL(v1,v2) v1不为NULL,则返回v1,否则返回v2

# CASE 相当于C语言的switch函数
SELECT CASE 2 WHEN 1 THEN 'HELLO' WHEN 2 THEN 'WORLD' END AS RESULT2;



# VERSION0返回指示MySQL服务器版本的字符串。这个字符串使用utf8字符集。
SELECT VERSION();
# CONNECTION_ID()返回MySQL服务器当前连接的次数,每个连接都有各自唯--的ID。
SELECT CONNECTION_ID();
# 获取当前正在运行的线程
SHOW PROCESSLIST;

# 获取当前用户,USER()、CURRENT_ USER、SYSTEM_ USER()和SESSION_ USER()这几个函数返回当前被MySQL服务器验证的用户名和主机名组合。这个值符合确定当前登录用户存取权限的MySQL账户。一般情况下,这几个函数的返回值是相同的。
SELECT USER(),CURRENT_USER(),SYSTEM_USER();

# 获取当前字符串str的字符集 。乒[ [4非站专明IIS串出(IS)NOILVTIOD
SELECT CHARSET('abs')

# LAST_INSERT_ID()自动返回最后-一个INSERT或UPDATE为AUTO_ INCREMENT列设置的第一个发生的值。

# 加密函数
SELECT PASSWORD('NEW');

# 不同进制之间的转换 CONV(N,from_base,to_base)
SELECT CONV(222,10,16) AS RESULT3;

# INET_ ATON(expr)给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。地址可以是4或8bit地址。
# BENCHMARK(count,expr)函数重复count次执行表达式expr。
# CONVERT... USING ..)带有USING的CONVERT()函数被用来在不同的字符集之间转化数据。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值