大型网站建设基本流程,文学网站开发,个人网站策划书范文,阿里巴巴的网站怎么做mysql内置函数列表可以从mysql官方文档查询#xff0c;这里仅分类简单介绍一些可能会用到的函数。 1 数学函数 abs(x) pi() mod(x,y) sqrt(x) ceil(x)或者ceiling(x) rand(),rand(N):返回0-1间的浮点数#xff0c;使用不同的seed N可以获得不同的随机数 round(x, D)#xff… mysql内置函数列表可以从mysql官方文档查询这里仅分类简单介绍一些可能会用到的函数。 1 数学函数 abs(x) pi() mod(x,y) sqrt(x) ceil(x)或者ceiling(x) rand(),rand(N):返回0-1间的浮点数使用不同的seed N可以获得不同的随机数 round(x, D)四舍五入保留D位小数D默认为0 可以为负数 如round(19, -1)返回20 truncate(x, D):截断至保留D位小数D可以为负数 如trancate(19,-1)返回10 sign(x): 返回x的符号正负零分别返回1 -1 0 pow(x,y)或者power(x,y) exp(x)e^x log(x)自然对数 log10(x)以10为底的对数 radians(x):角度换弧度 degrees(x):弧度换角度 sin(x)和asin(x): cos(x)和acos(x): tan(x)和atan(x): cot(x): 2 字符串函数 char_length(str):返回str所包含的字符数一个多字节字符算一个字符 length(str): 返回字符串的字节长度如utf8中一个汉字3字节数字和字母算一个字节 concat(s1, s1, ...): 返回连接参数产生的字符串 concat_ws(x, s1, s2, ...): 使用连接符x连接其他参数产生的字符串 INSERT(str,pos,len,newstr):返回str,其起始于pos长度为len的子串被newstr取代。 1. 若pos不在str范围内则返回原字符串str 2. 若str中从pos开始的子串不足len,则将从pos开始的剩余字符用newstr取代 3. 计算pos时从1开始若pos3,则从第3个字符开始替换 lowerstr)或者lcase(str): upper(str)或者ucase(str): left(s,n):返回字符串s最左边n个字符 right(s,n): 返回字符串最右边n个字符 lpad(s1, len, s2): 用s2在s1左边填充至长度为len, 若s1的长度大于len,则截断字符串s1至长度len返回 rpad(s1, len, s2): ltrim(s):删除s左侧空格字符 rtrim(s): TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)或TRIM([remstr FROM] str)从str中删除remstr, remstr默认为空白字符 REPEAT(str,count)返回str重复count次得到的新字符串 REPLACE(str,from_str,to_str) 将str中的from_str全部替换成to_str SPACE(N):返回长度为N的空白字符串 STRCMP(str1,str2):若str1和str2相同返回0 若str1小于str2, 返回-1 否则返回1. SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len),MID(str,pos,len): 获取特定位置特定长度的子字符串 LOCATE(substr,str), LOCATE(substr,str,pos),INSTR(str,substr),POSITION(substr IN str): 返回字符串中特定子串的位置注意这里INSTR与其他函数的参数位置是相反的 REVERSE(str) ELT(N,str1,str2,str3,...)返回参数strN, 若N大于str参数个数则返回NULL FIELD(str,str1,str2,str3,...): 返回str在后面的str列表中第一次出现的位置若找不到str或者str为NULL, 则返回0 FIND_IN_SET(str,strlist)strlist是由,分隔的字符串若str不在strlist或者strlist为空字符串则返回0若任意一个参数为NULL则返回 MAKE_SET(bits,str1,str2,...): 由bits的作为位图来选取strN参数选中的参数用,连接后返回 3 日期和时间函数 CURDATE(), CURRENT_DATE, CURRENT_DATE():用于获取当前日期格式为YYYY-MM-DD; 若0则返回YYYYMMDD UTC_DATE, UTC_DATE():返回当前世界标准时间 CURTIME([fsp]), CURRENT_TIME, CURRENT_TIME([fsp]): 用于获取当前时间 格式为HH:MM:SS 若0则返回 HHMMSS UTC_TIME, UTC_TIME([fsp]) CURRENT_TIMESTAMP, CURRENT_TIMESTAMP([fsp]), LOCALTIME, LOCALTIME([fsp]), SYSDATE([fsp]), NOW([fsp]): 用于获取当前的时间日期格式为YYYY-MM-DD HH:MM:SS若0则返回YYYYMMDDHHMMSS UTC_TIMESTAMP, UTC_TIMESTAMP([fsp]) UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)返回一个unix时间戳1970-01-01 00:00:00 UTC至今或者date的秒数这实际上是从字符串到整数的一个转化过程 FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)从时间戳返回YYYY-MM-DD HH:MM:SS 或者YYYYMMDDHHMMSS加入format后根据所需的format显示。 MONTH(date) MONTHNAME(date) DAYNAME(date) DAY(date)DAYOFMONTH(date)1-31或者0 DAYOFWEEK(date)1-7星期天-星期六 DAYOFYEAR(date) 1-365366 WEEK(date[,mode])判断是一年的第几周如果1-1所在周在新的一年多于4天则将其定为第一周否则将其定为上一年的最后一周。mode是用来人为定义一周从星期几开始。 WEEKOFYEAR(date)类似week(date,3)从周一开始计算一周。 QUARTER(date)返回1-4 HOUR(time)返回时间中的小时数可以大于24 MINUTE(time) SECOND(time) EXTRACT(unit FROM date)提取日期时间中的要素 SELECT EXTRACT(YEAR FROM 2009-07-02); ##2009SELECT EXTRACT(YEAR_MONTH FROM 2009-07-02 01:02:03);##200907SELECT EXTRACT(DAY_MINUTE FROM 2009-07-02 01:02:03);##20102SELECT EXTRACT(MICROSECOND FROM 2003-01-02 10:30:00.000123);##123 TIME_TO_SEC(time) SEC_TO_TIME(seconds) TO_DAYS(date): 从第0年开始的天数 TO_SECNDS(expr)从第0年开始的秒数 ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days),DATE_ADD(date,INTERVAL expr unit) DATE_SUB(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit) ADDTIME(expr1,expr2) SUBTIME(expr1,expr2) SELECT ADDTIME(2007-12-31 23:59:59.999999, 1 1:1:1.000002);##2008-01-02 01:01:01.000001SELECT ADDTIME(01:00:00.999999, 02:00:00.999998);##03:00:01.999997 注意时间日期的加减也可以直接用/-来进行 date INTERVAL expr unitdate - INTERVAL expr unit如SELECT 2008-12-31 23:59:59 INTERVAL 1 SECOND;##2009-01-01 00:00:00SELECT INTERVAL 1 DAY 2008-12-31;##2009-01-01SELECT 2005-01-01 - INTERVAL 1 SECOND;##2004-12-31 23:59:59 DATE_FORMAT(date,format): DATEDIFF(expr1,expr2):返回相差的天数 TIMEDIFF(expr1,expr2)返回相隔的时间 4 条件判断函数 IF(expr1,expr2,expr3)如果expr1不为0或者NULL,则返回expr2的值否则返回expr3的值 IFNULL(expr1,expr2)如果expr1不为NULL,返回expr1,否则返回expr2 NULLIF(expr1,expr2): 如果expr1expr2则返回NULL, 否则返回expr2 CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END 当compare_valuevalue时返回result CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 当condition为TRUE时返回result SELECT CASE 1 WHEN 1 THEN oneWHEN 2 THEN two ELSE more END;##oneSELECT CASE WHEN 10 THEN true ELSE false END;##trueSELECT CASE BINARY BWHEN a THEN 1 WHEN b THEN 2 END;##NULL 5 系统信息函数 VERSION():返回mysql服务器的版本是utf8编码的字符串 CONNECTION_ID()显示连接号连接的线程号 DATABASE()SCHEMA()显示当前使用的数据库 SESSION_USER(), SYSTEM_USER(), USER(), CURRENT_USER, CURRENT_USER():返回当前的用户名主机utf8编码字符串 CHARSET(str) COLLATION(str) LAST_INSERT_ID()自动返回最后一个insert或者update查询 为auto_increment列设置的第一个发生的值 6 加密和压缩函数 PASSWORD(str):这个函数的输出与变量old_password有关。old_password 在mysql5.6中默认为0。 不同取值的效果如下表 old_password1时 password(str)的效果与old_password(str)相同由于其不够安全已经弃用5.6.5以后。 old_password2时在生成哈希密码时会随机加盐。 MD5(str):计算MD5 128位校验和返回32位16进制数构成的字符串当str为NULL时返回NULL。可以用作哈希密码 SHA1(str), SHA(str)计算160位校验和返回40位16进制数构成的字符串当str为NULL时返回NULL。 SHA2(str, hash_length)计算SHA-2系列的哈希方法(SHA-224, SHA-256, SHA-384, and SHA-512). 第一个参数为待校验字符串第二个参数为结果的位数224 256 384 512 ENCRYPT(str[,salt]): 用unix crypt()来加密str. salt至少要有两位字符否则会返回NULL。若未指定salt参数则会随机添加salt。 ECODE(crypt_str,pass_str):解密crypt_str, pass_str用作密码 ENCODE(str,pass_str)用pass_str作为密码加密str DES_ENCRYPT(str[,{key_num|key_str}])用Triple-DES算法编码str 这个函数只有在mysql配置成支持ssl时才可用。 DES_DECRYPT(crypt_str[,key_str]) AES_ENCRYPT(str,key_str[,init_vector]) AES_DECRYPT(crypt_str,key_str[,init_vector]) COMPRESS(string_to_compress)返回二进制码 UNCOMPRESS(string_to_uncompress) 7 聚合函数 若在没使用group by时使用聚合函数相当于把所有的行都归于一组来进行处理。除非特殊说明一般聚合函数会忽略掉NULL. AVG([DISTINCT] expr): 返回expr的平均值distinct选项用于忽略重复值 COUNT([DISTINCT] expr)返回select中expr的非0值个数返回值为bigint类型 group_concat:连接组内的非空值若无非空值则返回NULL GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr}[ASC | DESC] [,col_name ...]][SEPARATOR str_val]) MAX([DISTINCT] expr) MIN([DISTINCT] expr) SUM([DISTINCT] expr) VAR_POP(expr) VARIANCE(expr)同VAR_POP(expr)但是这是标准sql的一个扩展函数 VAR_SAMP(expr) STD(expr): 这是标准sql的一个扩展函数 STDDEV(expr)这个函数是为了跟oracle兼容而设置的 STDDEV_POP(expr)这个是sql标准函数 STDDEV_SAMP(expr)样本标准差 8 格式或类型转化函数 FORMAT(X,D[,locale])将数字X转化成#,###,###.##格式D为保留的小数位数 CONV(N,from_base,to_base)改变数字N的进制返回值为该进制下的数字构成的字符串 INET_ATON(expr)ip字符串转数字 INET_NTOA(expr)数字转ip字符串 CAST(expr AS type)转换数据类型 CONVERT(expr,type), CONVERT(expr USING transcoding_name) type可以为BINARY[(N)]CHAR[(N)]DATEDATETIME DECIMAL[(M[,D])]DECIMAL[(M[,D])]TIMEUNSIGNED [INTEGER]等等。transcoding_name如utf8等等