网站生成器apk怎么做,应用软件设计过程,wordpress评论加强,做网站设计的公司有哪些MySQL官方文档#xff1a;https://dev.mysql.com/doc/refman/5.6/en/func-op-summary-ref.html MySQL数据库提供了很多函数包括
一、数学函数
二、字符串函数
三、日期时间函数
四、聚合函数(常用于GROUP BY从句的SELECT查询中)
五、条件判断函数
六、系统信息函数
七、… MySQL官方文档https://dev.mysql.com/doc/refman/5.6/en/func-op-summary-ref.html MySQL数据库提供了很多函数包括
一、数学函数
二、字符串函数
三、日期时间函数
四、聚合函数(常用于GROUP BY从句的SELECT查询中)
五、条件判断函数
六、系统信息函数
七、加密函数
八格式化函数
九、不同进制的数字进行转换
十、其他函数 一、数学函数
数学函数主要用于处理数字包括整型、浮点数等。
函数作用ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 SELECT CEIL(1.5) -- 返回2 FLOOR(x) 返回小于或等于x的最大整数 SELECT FLOOR(1.5) -- 返回1 RAND() 返回0-1的随机数 SELECT RAND() -- 0.93099315612345 RAND(x) 若已指定一个整数参数 N 则它被用作种子值用来产生重复序列 SELECT RAND(2) -- 0.6555866465490187 SIGN(x) 返回x的符号x是负数、0、正数分别返回-1、0和1 SELECT SIGN(-10) -- (-1) PI() 返回圆周率(3.141593 SELECT PI() --3.141593 TRUNCATE(x,y) 返回数值x保留到小数点后y位的值与ROUND最大的区别是不会进行四舍五入 SELECT TRUNCATE(1.23456,3) -- 1.234 ROUND(x)返回离x最近的整数 SELECT ROUND(1.23456) --1ROUND(x,y) 保留x小数点后y位的值但截断时要进行四舍五入 SELECT ROUND(1.23456,3) -- 1.235 POW(x,y).POWER(x,y) 返回x的y次方 SELECT POW(2,3) -- 8 SQRT(x) 返回x的平方根 SELECT SQRT(25) -- 5 EXP(x) 返回e的x次方 SELECT EXP(3) -- 20.085536923188 MOD(x,y) 返回x除以y以后的余数 SELECT MOD(5,2) -- 1 LOG(x) 返回自然对数(以e为底的对数) SELECT LOG(20.085536923188) -- 3 LOG10(x) 返回以10为底的对数 SELECT LOG10(100) -- 2 RADIANS(x) 将角度转换为弧度 SELECT RADIANS(180) -- 3.1415926535898 DEGREES(x) 将弧度转换为角度 SELECT DEGREES(3.1415926535898) -- 180 SIN(x) 求正弦值(参数是弧度) SELECT SIN(RADIANS(30)) -- 0.5 ASIN(x)求反正弦值(参数是弧度)COS(x)求余弦值(参数是弧度)ACOS(x)求反余弦值(参数是弧度)TAN(x)求正切值(参数是弧度)ATAN(x) ATAN2(x)求反正切值(参数是弧度)COT(x)求余切值(参数是弧度)
二、字符串函数
字符串函数是MySQL中最常用的一类函数字符串函数主要用于处理表中的字符串。
函数说明CHAR_LENGTH(s) 返回字符串s的字符数 SELECT CHAR_LENGTH(你好123) -- 5 LENGTH(s) 返回字符串s的长度 SELECT LENGTH(你好123) -- 9 CONCAT(s1,s2,...) 将字符串s1,s2等多个字符串合并为一个字符串 SELECT CONCAT(12,34) -- 1234 CONCAT_WS(x,s1,s2,...) 同CONCAT(s1,s2,...)函数但是每个字符串直接要加上x SELECT CONCAT_WS(,12,34) -- 1234 INSERT(s1,x,len,s2) 将字符串s2替换s1的x位置开始长度为len的字符串 SELECT INSERT(12345,1,3,abc) -- abc45 UPPER(s),UCAASE(S) 将字符串s的所有字母变成大写字母 SELECT UPPER(abc) -- ABC LOWER(s),LCASE(s) 将字符串s的所有字母变成小写字母 SELECT LOWER(ABC) -- abc LEFT(s,n) 返回字符串s的前n个字符 SELECT LEFT(abcde,2) -- ab RIGHT(s,n) 返回字符串s的后n个字符 SELECT RIGHT(abcde,2) -- de LPAD(s1,len,s2) 字符串s2来填充s1的开始处使字符串长度达到len SELECT LPAD(abc,5,xx) -- xxabc RPAD(s1,len,s2) 字符串s2来填充s1的结尾处使字符串的长度达到len SELECT RPAD(abc,5,xx) -- abcxx LTRIM(s)去掉字符串s开始处的空格RTRIM(s)去掉字符串s结尾处的空格TRIM(s)去掉字符串s开始和结尾处的空格TRIM(s1 FROM s) 去掉字符串s中开始处和结尾处的字符串s1 SELECT TRIM( FROM abc) -- abc REPEAT(s,n) 将字符串s重复n次 SELECT REPEAT(ab,3) -- ababab SPACE(n)返回n个空格REPLACE(s,s1,s2) 将字符串s2替代字符串s中的字符串s1 SELECT REPLACE(abc,a,x) --xbc STRCMP(s1,s2)比较字符串s1和s2SUBSTRING(s,n,len)获取从字符串s中的第n个位置开始长度为len的字符串MID(s,n,len)同SUBSTRING(s,n,len)LOCATE(s1,s),POSITION(s1 IN s) 从字符串s中获取s1的开始位置 SELECT LOCATE(b, abc) -- 2 INSTR(s,s1) 从字符串s中获取s1的开始位置 SELECT INSTR(abc,b) -- 2 REVERSE(s) 将字符串s的顺序反过来 SELECT REVERSE(abc) -- cba ELT(n,s1,s2,...) 返回第n个字符串 SELECT ELT(2,a,b,c) -- b EXPORT_SET(x,s1,s2) 返回一个字符串在这里对于在“bits”中设定每一位你得到一个“on”字符串并且对于每个复位(reset)的位你得到一个 “off”字符串。每个字符串用“separator”分隔(缺省“,”)并且只有“bits”的“number_of_bits” (缺省64)位被使用。 SELECT EXPORT_SET(5,Y,N,,,4) -- Y,N,Y,N FIELD(s,s1,s2...) 返回第一个与字符串s匹配的字符串位置 SELECT FIELD(c,a,b,c) -- 3 FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置MAKE_SET(x,s1,s2)返回一个集合 (包含由“,” 字符分隔的子串组成的一个 字符串)由相应的位在bits集合中的的字符串组成。str1对应于位0str2对 应位1等等。 SELECT MAKE_SET(1|4,a,b,c); -- a,c SUBSTRING_INDEX 返回从字符串str的第count个出现的分隔符delim之后的子串。 如果count是正数返回第count个字符左边的字符串。 如果count是负数返回第(count的绝对值(从右边数))个字符右边的字符串。 SELECT SUBSTRING_INDEX(a*b,*,1) -- a SELECT SUBSTRING_INDEX(a*b,*,-1) -- b SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(a*b*c*d*e,*,3),*,-1) -- c LOAD_FILE(file_name) 读入文件并且作为一个字符串返回文件内容。文件必须在服务器上你必须指定到文件的完整路径名而且你必须有file权 限。文件必须所有内容都是可读的并且小于max_allowed_packet。 如果文件不存在或由于上面原因之一不能被读出函数返回NULL。
三、日期时间函数
MySQL的日期和时间函数主要用于处理日期时间。
函数说明CURDATE(),CURRENT_DATE() 返回当前日期 SELECT CURDATE() --2014-12-17 CURTIME(),CURRENT_TIME 返回当前时间 SELECT CURTIME() --15:59:02 NOW(),CURRENT_TIMESTAMP(),LOCALTIME(), SYSDATE(),LOCALTIMESTAMP() 返回当前日期和时间 SELECT NOW() --2014-12-17 15:59:02 UNIX_TIMESTAMP() 以UNIX时间戳的形式返回当前时间 SELECT UNIX_TIMESTAMP() --1418803177 UNIX_TIMESTAMP(d) 将时间d以UNIX时间戳的形式返回 SELECT UNIX_TIMESTAMP(2011-11-11 11:11:11) --1320981071 FROM_UNIXTIME(d) 将UNIX时间戳的时间转换为普通格式的时间 SELECT FROM_UNIXTIME(1320981071) --2011-11-11 11:11:11 UTC_DATE() 返回UTC日期 SELECT UTC_DATE() --2014-12-17 UTC_TIME() 返回UTC时间 SELECT UTC_TIME() --08:01:45 (慢了8小时) MONTH(d) 返回日期d中的月份值1-12 SELECT MONTH(2011-11-11 11:11:11) --11 MONTHNAME(d) 返回日期当中的月份名称如Janyary SELECT MONTHNAME(2011-11-11 11:11:11) --November DAYNAME(d) 返回日期d是星期几如Monday,Tuesday SELECT DAYNAME(2011-11-11 11:11:11) --Friday DAYOFWEEK(d) 日期d今天是星期几1星期日2星期一 SELECT DAYOFWEEK(2011-11-11 11:11:11) --6 WEEKDAY(d) 日期d今天是星期几 0表示星期一1表示星期二 WEEK(d)WEEKOFYEAR(d) 计算日期d是本年的第几个星期范围是0-53 SELECT WEEK(2011-11-11 11:11:11) --45 DAYOFYEAR(d) 计算日期d是本年的第几天 SELECT DAYOFYEAR(2011-11-11 11:11:11) --315 DAYOFMONTH(d) 计算日期d是本月的第几天 SELECT DAYOFMONTH(2011-11-11 11:11:11) --11 QUARTER(d) 返回日期d是第几季节返回1-4 SELECT QUARTER(2011-11-11 11:11:11) --4 HOUR(t) 返回t中的小时值 SELECT HOUR(1:2:3) --1 MINUTE(t) 返回t中的分钟值 SELECT MINUTE(1:2:3) --2 SECOND(t) 返回t中的秒钟值 SELECT SECOND(1:2:3) --3 EXTRACT(type FROM d) 从日期d中获取指定的值type指定返回的值 SELECT EXTRACT(MINUTE FROM 2011-11-11 11:11:11) --11 type可取值为 MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH TIME_TO_SEC(t) 将时间t转换为秒 SELECT TIME_TO_SEC(1:12:00) --4320 SEC_TO_TIME(s) 将以秒为单位的时间s转换为时分秒的格式 SELECT SEC_TO_TIME(4320) --01:12:00 TO_DAYS(d) 计算日期d距离0000年1月1日的天数 SELECT TO_DAYS(0001-01-01 01:01:01) --366 FROM_DAYS(n) 计算从0000年1月1日开始n天后的日期 SELECT FROM_DAYS(1111) --0003-01-16 DATEDIFF(d1,d2) 计算日期d1-d2之间相隔的天数 SELECT DATEDIFF(2001-01-01,2001-02-02) ---32 ADDDATE(d,n) 计算其实日期d加上n天的日期 ADDDATE(dINTERVAL expr type) 计算起始日期d加上一个时间段后的日期 SELECT ADDDATE(2011-11-11 11:11:11,1) --2011-11-12 11:11:11 (默认是天) SELECT ADDDATE(2011-11-11 11:11:11, INTERVAL 5 MINUTE) --2011-11-11 11:16:11 (TYPE的取值与上面那个列出来的函数类似) DATE_ADD(d,INTERVAL expr type)同上SUBDATE(d,n) 日期d减去n天后的日期 SELECT SUBDATE(2011-11-11 11:11:11, 1) --2011-11-10 11:11:11 (默认是天) SUBDATE(d,INTERVAL expr type) 日期d减去一个时间段后的日期 SELECT SUBDATE(2011-11-11 11:11:11, INTERVAL 5 MINUTE) --2011-11-11 11:06:11 (TYPE的取值与上面那个列出来的函数类似) ADDTIME(t,n) 时间t加上n秒的时间 SELECT ADDTIME(2011-11-11 11:11:11, 5) --2011-11-11 11:11:16 (秒) SUBTIME(t,n) 时间t减去n秒的时间 SELECT SUBTIME(2011-11-11 11:11:11, 5) --2011-11-11 11:11:06 (秒) DATE_FORMAT(d,f) 按表达式f的要求显示日期d SELECT DATE_FORMAT(2011-11-11 11:11:11,%Y-%m-%d %r) --2011-11-11 11:11:11 AM TIME_FORMAT(t,f) 按表达式f的要求显示时间t SELECT TIME_FORMAT(11:11:11,%r) --11:11:11 AM GET_FORMAT(type,s) 获得国家地区时间格式函数 select get_format(date,usa) --%m.%d.%Y (注意返回的就是这个奇怪的字符串(format字符串))
四、聚合函数(常用于GROUP BY从句的SELECT查询中)
AVG(col)返回指定列的平均值COUNT(col)返回指定列中非NULL值的个数MIN(col) 返回指定列的最小值 MAX(col)返回指定列的最大值SUM(col)返回指定列的所有值之和GROUP_CONCAT(col)返回由属于一组的列值连接组合而成的结果
五、条件判断函数
1、IF(expr,v1,v2)函数。如果表达式expr成立返回结果v1否则返回结果v2。
SELECT IF(1 0,正确,错误) -正确
2、IFNULL(v1,v2)函数。如果v1的值不为NULL则返回v1否则返回v2。
SELECT IFNULL(null,Hello Word)-Hello Word
3、NULLIF()函数。将会检验提供的两个参数是否相等如果相等则返回NULL如果不相等就返回第一个参数。
SELECT NULLIF(1,1),NULLIF(A,B),NULLIF(23,41);--NULL,A,NULL
4、CASE 语法1CASE表示函数开始END表示函数结束。如果e1成立则返回v1,如果e2成立则返回v2当全部不成立则返回vn而当有一个成立之后后面的就不执行了。
CASEWHEN e1THEN v1WHEN e2THEN e2...ELSE vn
END 示例
SELECT CASEWHEN 1 0THEN 1 0WHEN 2 0THEN 2 0ELSE 3 0END
-1 0 语法2如果表达式expr的值等于e1返回v1如果等于e2,则返回e2。否则返回vn。
CASE exprWHEN e1 THEN v1WHEN e1 THEN v1...ELSE vn
END 示例
SELECT CASE 1WHEN 1 THEN 我是1WHEN 2 THEN 我是2
ELSE 你是谁
六、系统信息函数
系统信息函数用来查询MySQL数据库的系统信息。
函数作用VERSION() 返回数据库的版本号 SELECT VERSION() -5.0.67-community-nt CONNECTION_ID() 返回服务器的连接数DATABASE()、SCHEMA返回当前数据库名 USER()、SYSTEM_USER()、SESSION_USER()、 CURRENT_USER()、CURRENT_USER 返回当前用户CHARSET(str)返回字符串str的字符集COLLATION(str)返回字符串str的字符排列方式LAST_INSERT_ID()返回最近生成的AUTO_INCREMENT值
七、加密函数
加密函数是MySQL用来对数据进行加密的函数。
AES_ENCRYPT(str,key) 返回用密钥key对字符串str利用高级加密标准算法加密后的结果调用AES_ENCRYPT的结果是一个二进制字符串以BLOB类型存储AES_DECRYPT(str,key)返回用密钥key对字符串str利用高级加密标准算法解密后的结果vDECODE(str,key)使用key作为密钥解密加密字符串str。该函数与ENCODE是一对需要同样的密码才能够解密。ENCRYPT(str,salt)使用UNIXcrypt()函数用关键词salt(一个可以惟一确定口令的字符串就像钥匙一样)加密字符串strENCODE(str,key) 使用key作为密钥加密字符串str调用ENCODE()的结果是一个二进制字符串它以BLOB类型存储。该函数与DECODE是一对需要同样的密码才能够解密。 MD5()计算字符串str的MD5校验和PASSWORD(str) 返回字符串str的加密版本这个加密过程是不可逆转的和UNIX密码加密过程使用不同的算法。 SELECT PASSWORD(123) --*23AE809DDACAF96AF0FD78ED04B6A265E05AA257 SHA() 计算字符串str的安全散列算法(SHA)校验和 SELECT md5(123) --202cb962ac59075b964b07152d234b70 八格式化函数
DATE_FORMAT(date,fmt)依照字符串fmt格式化日期date值FORMAT(x,y) 把x格式化为以逗号隔开的数字序列y是结果的小数位数 SELECT FORMAT(3.1415926,3) --3.142 INET_ATON(ip) 返回IP地址的数字表示INET_NTOA(num)返回数字所代表的IP地址TIME_FORMAT(time,fmt) 依照字符串fmt格式化时间time值
九、不同进制的数字进行转换
ASCII(s)返回字符串s的第一个字符的ASCII码BINx返回x的二进制编码HEX(x)返回x的十六进制编码OCT(x)返回x的八进制编码CONV(x,f1,f2)返回f1进制数变成f2进制数
十、其他函数
1、IP地址与数字相互转换的函数
INET_ATON(IP)函数可以将IP地址转换为数字表示IP值需要加上引号
INET_NTOA(n)函数可以将数字n转换成IP形式。
SELECT INET_ATON(192.168.0.1)-3232235521SELECT INET_NTOA(3232235521)-192.168.0.1
2、加锁函数和解锁函数
GET_LOCK(name,time)函数定义一个名称为nam、持续时间长度为time秒的锁。如果锁定成功则返回1如果尝试超时则返回0如果遇到错误返回NULL。
RELEASE_LOCK(name)函数解除名称为name的锁。如果解锁成功则返回1如果尝试超时返回0了如果解锁失败返回NULL
IS_FREE_LOCK(name)函数判断是否已使用名为name的锁定。如果使用返回0否则返回1
SELECT GET_LOCK(MySQL,10)-1 (持续10秒)SELECT IS_FREE_LOCK(MySQL)-1 SELECT RELEASE_LOCK(MySQL)-1
3、重复执行指定操作的函数 BENCHMARK(count.expr)函数将表达式expr重复执行count此然后返回执行时间。该函数可以用来判断MySQL处理表达式的速度。
SELECT BENCHMARK(10000,NOW())-0 返回系统时间1万
4、改变字符集的函数 CONVERT(s USING cs)函数将字符串s的字符集变成cs。
SELECT CHARSET(ABC)-utf-8 SELECT CHARSET(CONVERT(ABC USING gbk))-gbk
4、转换数据类型
CAST(x AS type) 和 CONVERT(x,type)
这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。
SELECT CAST(123 AS UNSIGNED INTEGER) 1-124SELECT 123 1-124 其实MySQL能默认转换SELECT CAST(NOW() AS DATE)-2014-12-18