MySQL 常用内置函数
1.数值函数
Abs(X) //绝对值abs(-10.9) = 10 Ceil(X) //向上取整ceil(10.1) = 11 Floor(X) //向下取整floor (10.1) = 10 Round(X) //四舍五入去整 Mod(M,N) M%N M MOD N //求余 10%3=1 Pi() //获得圆周率 Pow(M,N) //M^N Sqrt(X) //算术平方根 Rand() //随机数 Truncate(X,D) //截取D位小数
2.时间日期函数
Now(),current_timestamp() //当前日期时间 Current_date() //当前日期 current_time() //当前时间 Date(‘yyyy-mm-dd HH;ii:ss’) //获取日期部分 Time(‘yyyy-mm-dd HH;ii:ss’) //获取时间部分 Date_format(‘yyyy-mm-dd HH;ii:ss’,’%D %y %a %d %m %b %j') //日期格式化 Unix_timestamp() //获得unix时间戳 From_unixtime() //从时间戳获得时间
3.字符串函数
Ascii(str) //返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。 Concat(str[,... ]) //连接字串 Char_Length(str) //str的字符个数 Length(str) //str长度,字节 Instr(str,substr) //返回substr首次在str中出现的位置 Locate(substring,str [,start_position ]) //同INSTR,但可指定开始位置 Lcase(str) //转换成小写 Left(str,length) //返回字符串str的最左面length个字符。 Right(str,length) //返回字符串str的最右面length个字符。 Substr(str,position [,length ]) //从str的position开始,取length个字符。和substr()一样。 Trim(str) //去除前后端空格 Ltrim(str) //去除前端空格 Rtrim(str) //去除后端空格 Replace(str,search_str,replace_str) //在str中用replace_str替换search_str Repeat(str,count) //重复count次 Reverse(str) //返回颠倒字符顺序的字符串str Insert(str,pos,length,newstr) //返回字符串str,在位置pos起始的子串且length个字符长的子串由字符串newstr代替。 substring_index(str,delim,count) //从str中找到delim字符串按下标获取字符串 Load_File(file_name) //从文件读取内容 Lpad(str,length,pad ) //重复用pad加在str开头,直到字长度为length Rpad(str,length,pad) //在str后用pad补充,直到长度为length
4.流程函数
IF(expr1,expr2,expr3) //如果 expr1 是TRUE,则返回值为expr2; 则返回值则为 expr3。 Ifnull(expr1,expr2) //如果expr1为null, 则返回expr2 Case When [condition] Then result [When [condition] Then result ...] [Else result] End //多分支 Strcmp(str1,str2) //如果str1>str2返回1,str1=str2反回0,str1<str2返回-1)
5.系统信息函数
version() //函数返回数据库的版本号 connection_id() //函数返回服务器的连接数,也就是到现在为止MySQL服务的连接次数 database(), schema() //返回当前数据库名 user(), system_user(), session_user(), current_user() //获取用户名的函数 Charset(str) //函数返回字符串str的字符集,一般情况这个字符集就是系统的默认字符集; Collation(str) //函数返回字符串str的字符排列方式 Last_Insert_Id() //函数返回最后生成的AUTO_INCREMENT值
6.其他常用函数
ASCII(s) //返回字符串s的第一个字符的ASCII码; BIN(x) //返回x的二进制编码; OCT(x) //返回x的八进制编码; HEX(x) //返回x的十六进制编码; CONV(x,f1,f2) //将x从f1进制数变成f2进制数。 /* 格式化函数 */ Format(x,n) //函数可以将数字x进行格式化,将x保留到小数点后n位。这个过程需要进行四舍五入。 /* 加密函数 */ Md5() //函数可以对字符串str进行加密。 /* IP地址与数字相互转换的函数 */ INET_ATON(IP) //函数可以将IP地址转换为数字表示(函数中IP值需要加上引号) INET_NTOA(n) //函数可以将数字n转换成IP的形式。 /* 加锁函数和解锁函数 */ Get_Loct(name,time) //函数定义一个名称为name、持续时间长度为time秒的锁。如果锁定成功,返回1;如果尝试超时,返回0;如果遇到错误,返回NULL。 Release_Lock(name) //函数解除名称为name的锁。如果解锁成功,返回1;如果尝试超时,返回0;如果解锁失败,返回NULL; Is_Free_Lock(name) //函数判断是否使用名为name的锁。如果使用,返回0;否则,返回1。 Benchmark(count,expr) //函数将表达式expr重复执行count次,然后返回执行时间。该函数可以用来判断MySQL处理表达式的速度。 /* 改变字符集的函数(只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER这些类型起作用,只是改变了输出值的数据类型) */ CONVERT(s USING cs) //函数将字符串s的字符集变成cs CAST(x AS type) 和 CONVERT(x,type) //这两个函数将x变成type类型。