SQL --函数

这一章节主要谈谈SQL经常使用函数mysql

1、求余函数MOD(x,y)
算法

MOD(x,y) 返回x被y除后的余数,MOD()对于带有小数部分的数值也起做用,它返回除数后的精确余数。sql

例子数据库

1.被除数和除数都是整数
服务器

2.被除数或者除数带有相同位数小数
网络

3.被除数和除数带有不一样位数小数,返回小数位数以除数为准函数

2、四舍五入函数ROUND(x,y) 和 截取小数点后n位函数TRUNCATE(x,y)编码

TRUNCATE(x,y)  返回被舍去至小数点后y位的数字x;若y的值为0,则结果不带小数部分。加密

1.小数点后0位
code


2.小数点后1位


ROUND(x,y)  返回被舍去至小数点后y位的数字x,x会四舍五入;若y的值为0,则结果不带小数部分,结果仍是会四舍五入。

1.不带小数的四舍五入,四舍


2.不带小数的四舍五入,五入


3.带一位小数的五入

备注:8.36带一位小数四舍五入,0.06>=0.05,因此五入。

4.带一位小数的四舍

3、十六进制函数HEX(N_or_S)与反十六进制函数UNHEX(str)

1.对字符串进行十六进制编码


2.对十六进制进行反码


4、字符串函数

1.CHAR_LENGTH(str) 返回字符串str所包含的字符个数。


2.CONCAT(str1,str2,...)  字符串拼接函数



3.字符串替换函数 INSERT (str,pos,len,newstr)

将字符串str中pos位置(从1开始计算)开始,长度为len的字符串用newstr代替

4.字符串代替函数 REPLACE(str,from_str,to_str)

REPLACE(源字符串,须要替换的字符串,替换成的值)

5.字符串填充函数 LPAD(str,len,padstr) 和 RPAD(str,len,padstr)

LPAD(源字符串,填充后字符串总长度,填充字符串),padstr填充到str的左边去,若是str的个数大于len,则返回拼接后len长度字符串。

RPAD(str,len,padstr),即向右拼接字符串


6.删除空格(或指定字符)的函数  TRIM([remstr FROM] str)

TRIM(str)  删除字符串str两侧的空格,字符串中间的空格不能删除。

//不能删除字符串中间的空格

TRIM('removeStr' FROM str)  删除str中前面或者后面为removeStr的字符串,中间的不能删除,默认时删除空格。


7.重复生成字符串函数  REPEAT (str,count)

REPEAT (须要重复的字符串,重复次数)

8.字符串比较大小函数  STRCMP(expr1,expr2)

 

5、日期和时间函数

1.获取当期日期和当前时间的函数


如上都是获取日期和时间的函数,我经常使用的是 sysdate。

2.以下都是时间函数

#查询年
SELECT YEAR(SYSDATE());
#查询月份数字
SELECT MONTH(SYSDATE());
#查询月份英文
SELECT MONTHNAME(SYSDATE());
#查询的是几号
SELECT DAY(SYSDATE());
#查询的是星期
SELECT DAYNAME(SYSDATE());
#查询如今的小时
SELECT HOUR(SYSDATE())
#查询如今的分钟
SELECT MINUTE(SYSDATE());
#查询如今的秒数
SELECT SECOND(SYSDATE());
#时间转换为秒钟
SELECT TIME_TO_SEC(SYSDATE());
#秒钟转换为时间
SELECT SEC_TO_TIME(65393)
#日期格式化 http://www.w3school.com.cn/sql/func_date_format.asp
SELECT DATE_FORMAT(SYSDATE(),'%Y%m%d')
#时间格式化
SELECT TIME_FORMAT(SYSDATE(),'%H%i%s')

6、条件判断函数

经常使用的条件判断函数有if、ifnull、case

1.IF(expr1,expr2,expr3)函数,若是表达式expr1是true,则F()返回值为expr2;不然返回表达式expr3。


2.IFNULL(expr1,expr2)函数,若是expr1不为null,则f()返回值为expr1;不然返回expr2。


3.case函数

case  when  expr1  then  value1  else  value2  end

当expr1成立时,结果为value1;不然结果为value2


7、信息系统函数

1.获取mysql版本号


2.获取mysql服务器的链接次数


备注:该返回值为到如今为止mysql服务器的链接次数,每一个链接都有本身惟一的ID。

3.查询数据库名称

8、加密函数

1.PASSWORD(str)

password加密后的数据长度是41位,且以*开头,可用select length(password('lixianli'))察看。password函数加密不可逆。它主要用于密码加密。可是这种生成密码的方法依赖数据库,并且须要链接数据库,有网络开销。一般还用MD5的方法 作明码的加密

2.MD5(str)

MD5为字符串计算出一个128比特校验和。该值以32位十六进制的二进制字符串形式返回。此加密算法不可逆。其实md5算法是信息摘要算法,若是拿来作压缩也是有损压缩,理论上即便有反向算法也没法恢复信息原样。他常被用来检验下载数据的完整性。如好多软件都提供md5码,供用户下载完毕校验完整性。

3.加密和解密函数

ENCODE(str,pass_str) 和 DECODE(crypt_str,pass_str)

ENCODE(str,pass_str)  使用pass_str做为密码,加密str。加密结果是二进制数,须要使用BLOB类型的字段保存。

DECODE(crypt_str,pass_str) 使用pass_str做为密码,解密crypt_str。解密结果就是通过encode加密以前的str。

4.格式化函数

FORMAT(X,D)  将数字x格式化,并以四舍五入的方式保留小数点后n位。

5.不一样进制的数字转换函数

CONV(N,from_base,to_base)  n为须要转换的数,from_base为源转换进制,to_base为目的转换进制。

6.返回不一样的进制

7.IP地址与数字相互转换函数


如上,当要存储ip到数据库时,能够现将其转换成数字,再存入数据库,取出来的时候,能够再转换成ip。

8.重复执行指定操做的函数  BENCHMARK(count,expr)

该函数重复count次执行表达式expr,它经常使用于计算MYSQL处理表达式的速度。

结果值一般为0,0表示处理速度很快。

举例子说明


由上能够看出,PASSWORD('lixianli & panda')被执行0次的时间是0.000s;被执行10000次的时间是0.016s。


自此,mysql的函数部分介绍完毕。

相关文章
相关标签/搜索