这一章节主要谈谈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的函数部分介绍完毕。