MYSQL内置函数大全
mysql 小时加减
mysql 小时加减MySQL是一个广泛使用的开源关系型数据库管理系统,其具备强大的功能,可以进行各种数据库操作,包括时间的加减操作。
在MySQL 中,我们可以通过使用内置的日期和时间函数以及运算符来实现对时间的增加和减少操作。
在MySQL中,时间类型主要有三种:DATE、TIME和DATETIME。
其中,DATE用于存储日期,格式为'YYYY-MM-DD';TIME用于存储时间,格式为'HH:MM:SS';DATETIME用于存储日期和时间,格式为'YYYY-MM-DD HH:MM:SS'。
MySQL提供了几个内置函数可以对时间进行加减操作:1. DATE_ADD(date, INTERVAL expr unit)函数:用于给指定的日期或时间增加一定的时间间隔。
2. DATE_SUB(date, INTERVAL expr unit)函数:用于从指定的日期或时间减去一定的时间间隔。
3. ADDDATE(date, INTERVAL expr unit)函数:与DATE_ADD相同,用于给指定的日期或时间增加一定的时间间隔。
4. SUBDATE(date, INTERVAL expr unit)函数:与DATE_SUB相同,用于从指定的日期或时间减去一定的时间间隔。
在上述函数中,date参数表示要进行加减操作的日期或时间,expr参数表示要增加或减少的时间数量,unit参数表示要增加或减少的时间单位。
expr参数可以是一个数字,表示具体的时间数量,也可以是一个表达式,例如:(5 + 2) * 3。
unit参数可以是以下单位之一:MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR。
以下是一些使用示例:1.增加时间:-增加一小时:SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR);-增加一天:SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);-增加一个月:SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);2.减少时间:-减少一小时:SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);-减少一天:SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);-减少一个月:SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);3.使用表达式进行加减操作:-增加(5 + 2) * 3小时:SELECT DATE_ADD(NOW(), INTERVAL (5 + 2) * 3 HOUR);-减少(5 + 2) * 3天:SELECT DATE_SUB(NOW(), INTERVAL (5 + 2) * 3 DAY);除了内置函数外,MySQL还提供了一些运算符可以进行时间的加减操作:1.加法运算符:- SELECT NOW() + INTERVAL 1 HOUR;- SELECT NOW() + INTERVAL 1 DAY;2.减法运算符:- SELECT NOW() - INTERVAL 1 HOUR;- SELECT NOW() - INTERVAL 1 DAY;通过使用上述的日期和时间函数以及运算符,我们可以在MySQL 中方便地对时间进行加减操作,以满足各种业务需求。
mysql内置函数中用于截取字符串的函数
mysql内置函数中用于截取字符串的函数MySQL内置函数中有多种用于截取字符串的函数,这些函数常用于处理字符串数据,从中提取有用信息。
本文将介绍MySQL内置函数中用于截取字符串的函数,以便读者更好地理解它们的用法和作用。
SUBSTRINGSUBSTRING函数用于截取指定字符串中的一部分。
其语法如下:SUBSTRING(str, start, length)参数说明:str:需要截取的字符串。
start:开始截取的位置。
length:截取的长度。
例如,以下查询可以截取字符串“MySQL is a relational database management system”中的“relational database management system”:SELECT SUBSTRING("MySQL is a relational database management system", 13, 35);结果为:relational database management systemLEFTLEFT函数用于截取指定字符串的左侧部分。
其语法如下:LEFT(str, length)参数说明:str:需要截取的字符串。
length:截取的长度。
例如,以下查询可以截取字符串“MySQL is a relational database management system”中的“MySQL”:SELECT LEFT("MySQL is a relational database management system", 5);结果为:MySQLRIGHTRIGHT函数用于截取指定字符串的右侧部分。
其语法如下:RIGHT(str, length)参数说明:str:需要截取的字符串。
length:截取的长度。
例如,以下查询可以截取字符串“MySQL is a relational database management system”中的“system”:SELECT RIGHT("MySQL is a relational database management system", 6);结果为:systemTRIMTRIM函数用于删除指定字符串的前导空格或后置空格。
数据库MySQL常用函数大全
数据库MySQL常用函数大全一、数学函数ABS(x) 返回x的绝对值BIN(x)返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x)返回值e(自然对数的底)的x次方FLOOR(x)返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值LEAST(x1,x2,...,xn) 返回集合中最小的值LN(x) 返回x的自然对数LOG(x,y)返回x的以y为底的对数MOD(x,y) 返回x/y的模(余数)PI()返回pi的值(圆周率)RAND()返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
ROUND(x,y)返回参数x的四舍五入的有y位小数的值SIGN(x) 返回代表数字x的符号的值SQRT(x) 返回一个数的平方根TRUNCATE(x,y) 返回数字x截短为y位小数的结果二、聚合函数(常用于GROUP BY从句的SELECT查询中)AVG(col)返回指定列的平均值COUNT(col)返回指定列中非NULL值的个数MIN(col)返回指定列的最小值MAX(col)返回指定列的最大值SUM(col)返回指定列的所有值之和GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果三、字符串函数ASCII(char)返回字符的ASCII码值BIT_LENGTH(str)返回字符串的比特长度CONCAT(s1,s2...,sn)将s1,s2...,sn连接成字符串CONCAT_WS(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并用sep字符间隔INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回str在list中的位置LCASE(str)或LOWER(str) 返回将字符串str中所有字符改变为小写后的结果LEFT(str,x)返回字符串str中最左边的x个字符LENGTH(s)返回字符串str中的字符数LTRIM(str) 从字符串str中切掉开头的空格POSITION(substr,str) 返回子串substr在字符串str中第一次出现的位置QUOTE(str) 用反斜杠转义str中的单引号REPEAT(str,srchstr,rplcstr)返回字符串str重复x次的结果REVERSE(str) 返回颠倒字符串str的结果RIGHT(str,x) 返回字符串str中最右边的x个字符RTRIM(str) 返回字符串str尾部的空格STRCMP(s1,s2)比较字符串s1和s2TRIM(str)去除字符串首部和尾部的所有空格UCASE(str)或UPPER(str) 返回将字符串str中所有字符转变为大写后的结果四、日期和时间函数CURDATE()或CURRENT_DATE() 返回当前的日期CURTIME()或CURRENT_TIME() 返回当前的时间DATE_ADD(date,INTERVAL int keyword) 返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECT DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH); DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值DATE_SUB(date,INTERVAL int keyword) 返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECT DATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH); DAYOFWEEK(date) 返回date所代表的一星期中的第几天(1~7)DAYOFMONTH(date) 返回date是一个月的第几天(1~31)DAYOFYEAR(date) 返回date是一年的第几天(1~366)DAYNAME(date) 返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE); FROM_UNIXTIME(ts,fmt) 根据指定的fmt格式,格式化UNIX时间戳tsHOUR(time) 返回time的小时值(0~23)MINUTE(time) 返回time的分钟值(0~59)MONTH(date) 返回date的月份值(1~12)MONTHNAME(date) 返回date的月份名,如:SELECTMONTHNAME(CURRENT_DATE);NOW() 返回当前的日期和时间QUARTER(date) 返回date在一年中的季度(1~4),如SELECTQUARTER(CURRENT_DATE);WEEK(date) 返回日期date为一年中第几周(0~53)YEAR(date) 返回日期date的年份(1000~9999)一些示例:获取当前系统时间:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);返回两个日期值之间的差值(月数):SELECT PERIOD_DIFF(200302,199802);在Mysql中计算年龄:SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age FROM employee;这样,如果Brithday是未来的年月日的话,计算结果为0。
MySQL函数大全
ASCII(str)返回字符串str的第一个字符的ASCII值(str是空串时返回0)mysql> select ASCII('2');-> 50mysql> select ASCII(2);-> 50mysql> select ASCII('dete');-> 100ORD(str)如果字符串str句首是单字节返回与ASCII()函数返回的相同值。
如果是一个多字节字符,以格式返回((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]mysql> select ORD('2');-> 50CONV(N,from_base,to_base)对数字N进制转换,并转换为字串返回(任何参数为NULL时返回NULL,进制范围为2-36进制,当to_base是负数时N作为有符号数否则作无符号数,CONV以64位点精度工作) mysql> select CONV("a",16,2);-> '1010'mysql> select CONV("6E",18,8);-> '172'mysql> select CONV(-17,10,-18);-> '-H'mysql> select CONV(10+"10"+'10'+0xa,10,10);-> '40'BIN(N)把N转为二进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,2))mysql> select BIN(12);-> '1100'OCT(N)把N转为八进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,8))mysql> select OCT(12);-> '14'HEX(N)把N转为十六进制并以字串返回(N是BIGINT数字,等价于CONV(N,10,16))mysql> select HEX(255);-> 'FF'返回由参数N,...对应的ASCII代码字符组成的一个字串(参数是N,...是数字序列,NULL值被跳过)mysql> select CHAR(77,121,83,81,'76');-> 'MySQL'mysql> select CHAR(77,77.3,'77.3');-> 'MMM'CONCA T(str1,str2,...)把参数连成一个长字符串并返回(任何参数是NULL时返回NULL)mysql> select CONCAT('My', 'S', 'QL');-> 'MySQL'mysql> select CONCAT('My', NULL, 'QL');-> NULLmysql> select CONCAT(14.3);-> '14.3'LENGTH(str)OCTET_LENGTH(str)CHAR_LENGTH(str)CHARACTER_LENGTH(str)返回字符串str的长度(对于多字节字符CHAR_LENGTH仅计算一次)mysql> select LENGTH('text');-> 4mysql> select OCTET_LENGTH('text');-> 4LOCATE(substr,str)POSITION(substr IN str)返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)mysql> select LOCATE('bar', 'foobarbar');-> 4mysql> select LOCATE('xbar', 'foobar');-> 0LOCATE(substr,str,pos)返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)mysql> select LOCATE('bar', 'foobarbar',5);-> 7INSTR(str,substr)返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)mysql> select INSTR('foobarbar', 'bar');-> 4mysql> select INSTR('xbar', 'foobar');-> 0LPAD(str,len,padstr)用字符串padstr填补str左端直到字串长度为len并返回mysql> select LPAD('hi',4,'??');-> '??hi'RPAD(str,len,padstr)用字符串padstr填补str右端直到字串长度为len并返回mysql> select RPAD('hi',5,'?');-> 'hi???'LEFT(str,len)返回字符串str的左端len个字符mysql> select LEFT('foobarbar', 5);-> 'fooba'RIGHT(str,len)返回字符串str的右端len个字符mysql> select RIGHT('foobarbar', 4);-> 'rbar'SUBSTRING(str,pos,len)SUBSTRING(str FROM pos FOR len)MID(str,pos,len)返回字符串str的位置pos起len个字符(使用FROM的丑陋语法是ANSI SQL92标准) mysql> select SUBSTRING('Quadratically',5,6);-> 'ratica'SUBSTRING(str,pos)SUBSTRING(str FROM pos)返回字符串str的位置pos起的一个子串mysql> select SUBSTRING('Quadratically',5);-> 'ratically'mysql> select SUBSTRING('foobarbar' FROM 4);-> 'barbar'SUBSTRING_INDEX(str,delim,count)返回从字符串str的第count个出现的分隔符delim之后的子串(count为正数时返回左端,否则返回右端子串)mysql> select SUBSTRING_INDEX('', '.', 2);-> 'www.mysql'mysql> select SUBSTRING_INDEX('', '.', -2);-> ''LTRIM(str)返回删除了左空格的字符串strmysql> select LTRIM(' barbar');-> 'barbar'RTRIM(str)返回删除了右空格的字符串strmysql> select RTRIM('barbar ');-> 'barbar'TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)返回前缀或后缀remstr被删除了的字符串str(位置参数默认BOTH,remstr默认值为空格) mysql> select TRIM(' bar ');-> 'bar'mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');-> 'barxxx'mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');-> 'bar'mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');-> 'barx'SOUNDEX(str)返回str的一个同音字符串(听起来“大致相同”字符串有相同的同音字符串,非数字字母字符被忽略,在A-Z外的字母被当作元音)mysql> select SOUNDEX('Hello');-> 'H400'mysql> select SOUNDEX('Quadratically');-> 'Q36324'SPACE(N)返回由N个空格字符组成的一个字符串mysql> select SPACE(6);-> ' 'REPLACE(str,from_str,to_str)用字符串to_str替换字符串str中的子串from_str并返回mysql> select REPLACE('', 'w', 'Ww');-> ''REPEAT(str,count)返回由count个字符串str连成的一个字符串(任何参数为NULL时返回NULL,count<=0时返回一个空字符串)mysql> select REPEA T('MySQL', 3);-> 'MySQLMySQLMySQL'REVERSE(str)颠倒字符串str的字符顺序并返回mysql> select REVERSE('abc');-> 'cba'INSERT(str,pos,len,newstr)把字符串str由位置pos起len个字符长的子串替换为字符串newstr并返回mysql> select INSERT('Quadratic', 3, 4, 'What');-> 'QuWhattic'ELT(N,str1,str2,str3,...)返回第N个字符串(N小于1或大于参数个数返回NULL)mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');-> 'ej'mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');-> 'foo'FIELD(str,str1,str2,str3,...)返回str等于其后的第N个字符串的序号(如果str没找到返回0)mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 2mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 0FIND_IN_SET(str,strlist)返回str在字符串集strlist中的序号(任何参数是NULL则返回NULL,如果str没找到返回0,参数1包含","时工作异常)mysql> SELECT FIND_IN_SET('b','a,b,c,d');-> 2MAKE_SET(bits,str1,str2,...)把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应位置的字串选入字串集并返回(NULL串不添加到结果中)mysql> SELECT MAKE_SET(1,'a','b','c');-> 'a'mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');-> 'hello,world'mysql> SELECT MAKE_SET(0,'a','b','c');-> ''EXPORT_SET(bits,on,off,[separator,[number_of_bits]])按bits排列字符串集,只有当位等于1时插入字串on,否则插入off(separator默认值",",number_of_bits参数使用时长度不足补0而过长截断)mysql> select EXPORT_SET(5,'Y','N',',',4)-> Y,N,Y,NLCASE(str)LOWER(str)返回小写的字符串strmysql> select LCASE('QUADRATICALL Y');-> 'quadratically'UCASE(str)UPPER(str)返回大写的字符串strmysql> select UCASE('quadratically');-> 'QUADRATICALL Y'LOAD_FILE(file_name)读入文件并且作为一个字符串返回文件内容(文件无法找到,路径不完整,没有权限,长度大于max_allowed_packet会返回NULL)mysql> UPDATE table_name SET blob_column=LOAD_FILE("/tmp/picture") WHERE id=1;[color=red]数学函数[/color]ABS(N)返回N的绝对值mysql> select ABS(2);-> 2mysql> select ABS(-32);-> 32SIGN(N)返回参数的符号(为-1、0或1)mysql> select SIGN(-32);-> -1mysql> select SIGN(0);-> 0mysql> select SIGN(234);-> 1MOD(N,M)取模运算,返回N被M除的余数(同%操作符)mysql> select MOD(234, 10);-> 4mysql> select 234 % 10;-> 4mysql> select MOD(29,9);-> 2FLOOR(N)返回不大于N的最大整数值mysql> select FLOOR(1.23);-> 1mysql> select FLOOR(-1.23);-> -2CEILING(N)返回不小于N的最小整数值mysql> select CEILING(1.23);-> 2mysql> select CEILING(-1.23);-> -1ROUND(N,D)返回N的四舍五入值,保留D位小数(D的默认值为0) mysql> select ROUND(-1.23);-> -1mysql> select ROUND(-1.58);-> -2mysql> select ROUND(1.58);-> 2mysql> select ROUND(1.298, 1);-> 1.3mysql> select ROUND(1.298, 0);-> 1EXP(N)返回值e的N次方(自然对数的底)mysql> select EXP(2);-> 7.389056mysql> select EXP(-2);-> 0.135335LOG(N)返回N的自然对数mysql> select LOG(2);-> 0.693147mysql> select LOG(-2);LOG10(N)返回N以10为底的对数mysql> select LOG10(2);-> 0.301030mysql> select LOG10(100);-> 2.000000mysql> select LOG10(-100);-> NULLPOW(X,Y)POWER(X,Y)返回值X的Y次幂mysql> select POW(2,2);-> 4.000000mysql> select POW(2,-2);-> 0.250000SQRT(N)返回非负数N的平方根mysql> select SQRT(4);-> 2.000000mysql> select SQRT(20);-> 4.472136PI()返回圆周率mysql> select PI();-> 3.141593COS(N)返回N的余弦值mysql> select COS(PI());-> -1.000000SIN(N)返回N的正弦值mysql> select SIN(PI());-> 0.000000TAN(N)返回N的正切值mysql> select TAN(PI()+1);ACOS(N)返回N反余弦(N是余弦值,在-1到1的范围,否则返回NULL) mysql> select ACOS(1);-> 0.000000mysql> select ACOS(1.0001);-> NULLmysql> select ACOS(0);-> 1.570796ASIN(N)返回N反正弦值mysql> select ASIN(0.2);-> 0.201358mysql> select ASIN('foo');-> 0.000000ATAN(N)返回N的反正切值mysql> select ATAN(2);-> 1.107149mysql> select ATAN(-2);-> -1.107149ATAN2(X,Y)返回2个变量X和Y的反正切(类似Y/X的反正切,符号决定象限) mysql> select ATAN(-2,2);-> -0.785398mysql> select ATAN(PI(),0);-> 1.570796COT(N)返回X的余切mysql> select COT(12);-> -1.57267341mysql> select COT(0);-> NULLRAND()RAND(N)返回在范围0到1.0内的随机浮点值(可以使用数字N作为初始值) mysql> select RAND();-> 0.5925mysql> select RAND(20);mysql> select RAND(20);-> 0.1811mysql> select RAND();-> 0.2079mysql> select RAND();-> 0.7888DEGREES(N)把N从弧度变换为角度并返回mysql> select DEGREES(PI());-> 180.000000RADIANS(N)把N从角度变换为弧度并返回mysql> select RADIANS(90);-> 1.570796TRUNCATE(N,D)保留数字N的D位小数并返回mysql> select TRUNCA TE(1.223,1);-> 1.2mysql> select TRUNCA TE(1.999,1);-> 1.9mysql> select TRUNCA TE(1.999,0);-> 1LEAST(X,Y,...)返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)mysql> select LEAST(2,0);-> 0mysql> select LEAST(34.0,3.0,5.0,767.0);-> 3.0mysql> select LEAST("B","A","C");-> "A"GREATEST(X,Y,...)返回最大值(其余同LEAST())mysql> select GREATEST(2,0);-> 2mysql> select GREATEST(34.0,3.0,5.0,767.0);-> 767.0-> "C"[color=red]时期时间函数[/color]DAYOFWEEK(date)返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03');-> 3WEEKDAY(date)返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
mysql的包含函数
mysql的包含函数一、前言MySQL是一种开源的关系型数据库管理系统,它提供了很多强大的函数和操作符来处理数据。
本文将介绍MySQL中的包含函数,它可以用来查找一个字符串是否包含另一个字符串。
二、什么是包含函数包含函数是MySQL中的一个字符串函数,它用来查找一个字符串是否包含另一个字符串。
在MySQL中,有两种类型的包含函数:LOCATE()和INSTR()。
它们都可以用来查找一个子串在另一个字符串中出现的位置。
三、LOCATE()函数LOCATE()函数是MySQL中最常用的包含函数之一。
它可以用来查找一个子串在另一个字符串中出现的位置。
语法:LOCATE(substr,str,pos)参数说明:substr:要查找的子串。
str:要搜索的字符串。
pos:可选参数,指定从哪个位置开始搜索,默认为1。
返回值:如果substr在str中出现,则返回substr第一次出现的位置;否则返回0。
示例:SELECT LOCATE('world','hello world'); -- 返回7SELECT LOCATE('world','hello world',8); -- 返回0四、INSTR()函数INSTR()函数与LOCATE()函数类似,也可以用来查找一个子串在另一个字符串中出现的位置。
但是INSTR()函数不支持pos参数,并且其参数顺序与LOCATE()不同。
语法:INSTR(str,substr)参数说明:str:要搜索的字符串。
substr:要查找的子串。
返回值:如果substr在str中出现,则返回substr第一次出现的位置;否则返回0。
示例:SELECT INSTR('hello world','world'); -- 返回7SELECT INSTR('hello world','foo'); -- 返回0五、区别与联系LOCATE()函数和INSTR()函数都可以用来查找一个子串在另一个字符串中出现的位置,它们的参数也很相似。
mysql查找函数
mysql查找函数MySQL是一种开源的关系型数据库管理系统,提供了丰富的内置函数来帮助开发者进行数据查询。
这些函数可以用于各种场景,从简单的字符串处理到复杂的数学计算。
下面是一些常用的MySQL查找函数。
1.字符串查找函数:- `LOCATE(substr, str)`:返回子字符串在字符串中第一次出现的位置。
如果找不到子字符串,则返回0。
- `SUBSTRING_INDEX(str, delim, count)`:返回从字符串的起始位置或结束位置到指定分隔符的子字符串。
- `INSTR(str, substr)`:返回子字符串在字符串中第一次出现的位置。
2.字符串截取函数:- `LEFT(str, length)`:返回字符串左边指定长度的子字符串。
- `RIGHT(str, length)`:返回字符串右边指定长度的子字符串。
- `SUBSTRING(str, start, length)`:返回字符串从指定位置开始的指定长度的子字符串。
3.字符串替换函数:- `REPLACE(str, old, new)`:用新字符串替换字符串中的旧字符串。
4.字符串转换函数:- `UPPER(str)`:将字符串转换为大写。
- `LOWER(str)`:将字符串转换为小写。
- `CONCAT(str1, str2, ...)`:将多个字符串连接为一个字符串。
5.数学函数:- `ROUND(num, decimals)`:返回按指定小数位数四舍五入的结果。
- `CEIL(num)`:向上取整。
- `FLOOR(num)`:向下取整。
- `ABS(num)`:返回数字的绝对值。
- `POWER(num, exponent)`:返回一个数的指定次幂。
6.聚合函数:- `COUNT(column)`:计算给定列中的行数。
- `SUM(column)`:计算给定列的总和。
- `AVG(column)`:计算给定列的平均值。
MySQL内置函数uuid和uuid_short
MySQL内置函数uuid和uuid_shortMySQL的uuid这个函数。
简要介绍⼀下。
⽤法简单看到,这个值,每次执⾏都是不同的。
⽣成规则第1 2 3 段是与时间有关的。
time_low、time_mid、time_high_and_version转成16进制后分别对应第1 2 3段。
这个时间是从1582-10-15 00:00:00.00到当前时间的100ns 值。
(实际上系统只能取到精确us,再乘以10)。
所以你短时间连续执⾏的话,⽐较可能只有第⼀个值在改,实际上1 2 3都可能会改变。
第4段是你启动这个MySQL后第⼀次执⾏select uuid()时的随机数,每次重启会改变。
第5段是mac值转过来的,同⼀个机器多实例的⼀般相同。
如果mac值获取不到,则是⼀个随机值。
所以这个值可以认为是每次执⾏都不相同。
并且不同实例之间也只有极微⼩概率重复。
Uuid_short与uuid返回固定长度字符串不同, uuid_short的返回值是⼀个unsigned long long类型。
MySQL启动后第⼀次执⾏的值是通过server_id << 56 + server_start_time << 24来初始化。
server_start_time单位是秒。
之后每次执⾏都加1。
由于每次加1都会加全局mutex锁,因此多线程安全,可以当作sequence来⽤,只是初始值有点⼤。
作为SequenceMySQL没有Oracle那样的sequence,在不是很精确的情况下,可以考虑上⾯提到的uuid_short。
有⼀些不⾜:1、初始值太⼤,⽆法重设2、存在⼀个问题是每次重启后第⼀次执⾏的值不是重启前的那个值+13、⽽且如果重启在1s内完成,可能出现不单调递增(虽然这个可能性微乎其微)。
MySQL常用函数大全讲解
MySQL常⽤函数⼤全讲解MySQL数据库中提供了很丰富的函数。
MySQL函数包括数学函数、字符串函数、⽇期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。
通过这些函数,可以简化⽤户的操作。
例如,字符串连接函数可以很⽅便的将多个字符串连接在⼀起。
在这⼀讲中将讲解的内容包括:数学函数字符串函数⽇期和时间函数条件判断函数系统信息函数加密函数格式化函数MySQL函数是MySQL数据库提供的内部函数。
这些内部函数可以帮助⽤户更加⽅便的处理表中的数据。
本⼩节中将简单介绍MySQL中包含哪⼏类函数,以及这⼏类函数的的使⽤范围和作⽤。
MySQL函数包括数学函数、字符串函数、⽇期和时间函数、条件判断函数、系统信息函数、加密函数等。
SELECT语句及其条件表达式都可以使⽤这些函数。
同时,INSERT 、UPDATE、DELECT语句及其条件表达式也可以使⽤这些函数。
例如,表中的某个数据是负数,现在需要将这个数据显⽰为正数。
这就可以使⽤绝对值函数。
从上⾯可以知道,MySQL函数可以对表中数据进⾏相应的处理,以便得到⽤户希望得到的数据。
这些函数可以使MySQL数据库的功能更加强⼤。
⼀、数学函数数学函数是MySQL中常⽤的⼀类函数。
主要⽤于处理数字,包括整型、浮点数等。
数学函数包括绝对值函数、正弦函数、余弦函数、获取随机数的函数等。
ABS(X):返回X的绝对值select ABS(-32);MOD(N,M)或%:返回N被M除的余数。
select MOD(15,7);select 15 % 7;FLOOR(X):返回不⼤于X的最⼤整数值。
select FLOOR(1.23);select FLOOR(-1.23);CEILING(X):返回不⼩于X的最⼩整数值。
select CEILING(1.23);select CEILING(-1.23);ROUND(X) :返回参数X的四舍五⼊的⼀个整数。
select ROUND(1.58);select ROUND(-1.58);⼆、字符串函数ASCII(str):返回字符串str的最左⾯字符的ASCII代码值。
mysql 数学函数
mysql 数学函数MySQL是一款功能强大的关系型数据库管理系统,内置的数据处理能力可以满足大多数需求,其中包括大量的数学函数,从简单的加减乘除到复杂的三角函数以及其他多元函数,MySQL数学函数能够在数据库查询中发挥很大的作用,本文将分析MySQL中内置的一些数学函数的特性及用法,以期能为读者提供参考。
MySQL数学函数分为三类,第一类为数学计算类,其中包括四则运算,如加法(+)、减法(-)、乘法(*)和除法(/)等,此外还有pow函数(取幂),sqrt函数(取平方根),abs函数(取绝对值)等等,可以用来进行简单的数学计算;第二类为三角函数类,其中包括sin(正弦函数)、cos(余弦函数)、tan(正切函数)、cot(余切函数)以及asin(反正弦函数)、acos(反余弦函数)、atan(反正切函数)、acot(反余切函数)等,它们可以用来对输入的值进行三角函数转换;第三类为多元函数类,其中包括avg(求平均值)、count (求总数)、sum(求总和)、min(求最小值)、max(求最大值)、mod (求余数)、log(求对数)等,这些函数可以让我们对表中的数据进行统计和求值等操作。
MySQL中的数学函数非常实用,我们可以将它们用于我们自己的查询语句,例如若要计算日期A和日期B之间的天数,我们可以使用DATEDIFF函数,其用法为:DATEDIFF(date1,date2),其中date1表示日期A,date2表示日期B,运行该函数将返回date1和date2之间的天数。
MySQL数学函数还可以用来计算特殊类型的表格,例如必须要按照从最高到最低顺序排列的表格,此时可以使用ORDER BY子句,将结果按照指定的字段排列,其用法为:ORDER BY field DESC,其中field为要排序的字段,DESC表示从高到低排序。
此外,MySQL中还有一些其他的函数,如date_add函数,可以用来增加日期,这可以用来计算某个日期之后几天或几周的日期,date_sub函数则可以用来减少日期,这可以用来计算两个日期之间的差值;此外,MySQL还内置了一些常用的字符串函数,如length函数,可以用来计算字符串的长度;like函数,可以用来模糊查询字符串;instr函数,可以用来查找子字符串;lower函数,可以用来将字符串转换成小写;upper函数,可以用来将字符串转换成大写,这些函数可以用来对字符串进行一些处理,使得查询变得更加强大。
mysql function语法
mysql function语法MySQL 提供了许多内置函数,这些函数可以在 SQL 查询中使用,以执行各种操作,如字符串处理、数值计算、日期和时间处理等。
以下是一些常见的 MySQL 函数及其语法示例:1. 字符串函数:`CONCAT(str1, str2, ...)`: 连接两个或多个字符串。
```sql`SELECT CONCAT('Hello', ' ', 'World'); -- 输出: Hello World`````LENGTH(str)`: 返回字符串的长度。
```sql`SELECT LENGTH('Hello'); -- 输出: 5``UPPER(str)`: 将字符串转换为大写。
```sql`SELECT UPPER('hello'); -- 输出: HELLO`````LOWER(str)`: 将字符串转换为小写。
```sql`SELECT LOWER('HELLO'); -- 输出: hello````2. 数值函数:`ABS(x)`: 返回数的绝对值。
```sql`SELECT ABS(-10); -- 输出: 10``ROUND(x, d)`: 将数字四舍五入到指定的小数位。
```sql`SELECT ROUND(, 2); -- 输出: ````3. 日期和时间函数:`NOW()`: 返回当前日期和时间。
```sql`SELECT NOW();`````DATE_FORMAT(date, format)`: 按照指定格式显示日期/时间。
例如: `%Y-%m-%d` 表示年-月-日。
```sql`SELECT DATE_FORMAT('', '%d/%m/%Y'); -- 输出:30/07/2023`4. 聚合函数:这类函数通常用于对一组值执行计算,并返回单个值。
MySQL中的字符串操作函数
MySQL中的字符串操作函数在数据库管理系统中,字符串操作是非常常见和重要的内容之一。
MySQL是最流行的开源关系型数据库管理系统之一,为了方便开发者对字符串进行处理,MySQL提供了各种各样的字符串操作函数。
本文将介绍MySQL中常用的字符串操作函数,并且通过实际例子展示它们的用法和作用。
1. CONCAT函数CONCAT函数用于连接两个或多个字符串。
它可以接受两个或多个字符串作为参数,并返回连接后的结果。
例如:SELECT CONCAT('Hello', ' ', 'World') AS Result;执行以上SQL语句,将返回"Hello World"。
CONCAT函数可以接受任意数量的参数,并将它们连接成一个字符串。
2. SUBSTRING函数SUBSTRING函数用于提取指定位置开始的子字符串。
它可以接受三个参数:原字符串、起始位置和子字符串的长度。
例如:SELECT SUBSTRING('MySQL', 2, 3) AS Result;执行以上SQL语句,将返回"ySQ"。
SUBSTRING函数从第2个字符开始提取3个字符。
3. REPLACE函数REPLACE函数用于替换字符串中的指定字符或子字符串。
它接受三个参数:原字符串、需要替换的子字符串和替换后的字符串。
例如:SELECT REPLACE('Hello World', 'World', 'MySQL') AS Result;执行以上SQL语句,将返回"Hello MySQL"。
REPLACE函数将原字符串中的"World"替换为"MySQL"。
4. UPPER和LOWER函数UPPER函数用于将字符串中的所有字符转换为大写,LOWER函数用于将字符串中的所有字符转换为小写。
MySQL中的内置函数使用方法汇总
MySQL中的内置函数使用方法汇总MySQL是一种常用的关系型数据库管理系统,在数据处理和查询方面提供了许多功能强大的内置函数。
这些内置函数可以帮助用户更方便地操作和分析数据库中的数据。
本文将总结一些常用的MySQL内置函数的使用方法,希望对读者在数据库开发和查询中有所帮助。
一、字符串函数1. CONCAT函数CONCAT函数可以将多个字符串拼接在一起。
例如,SELECTCONCAT('Hello', ' World')将返回Hello World。
2. SUBSTRING函数SUBSTRING函数可以截取字符串的一部分。
例如,SELECTSUBSTRING('MySQL', 1, 3)将返回My。
3. REPLACE函数REPLACE函数可以替换字符串中的指定内容。
例如,SELECTREPLACE('Hello World', 'World', 'MySQL')将返回Hello MySQL。
4. LOWER和UPPER函数LOWER函数可以将字符串转换为小写,UPPER函数可以将字符串转换为大写。
例如,SELECT LOWER('MySQL')将返回mysql。
5. LENGTH函数LENGTH函数可以获取字符串的长度。
例如,SELECT LENGTH('MySQL')将返回5。
6. TRIM函数TRIM函数可以去除字符串两端的空格。
例如,SELECT TRIM(' MySQL ')将返回MySQL。
二、数值函数1. SUM函数SUM函数可以计算某列数据的总和。
例如,SELECT SUM(score) FROM students将返回students表中score列的总和。
2. AVG函数AVG函数可以计算某列数据的平均值。
例如,SELECT AVG(score) FROM students将返回students表中score列的平均值。
如何在MySQL中进行数据的比较和合并
如何在MySQL中进行数据的比较和合并概述在日常的数据处理过程中,经常需要对MySQL数据库中的数据进行比较和合并。
比较和合并数据可以帮助我们发现重复数据、更新数据,以及实现数据的整合和清洗。
本文将介绍如何在MySQL中进行数据的比较和合并,包括使用内置函数和自定义方法。
一、数据比较1. 使用内置函数MySQL提供了多个内置函数用于数据比较,常见的有以下几种:- `=`: 等于运算符,用于比较两个值是否相等。
- `<>`或`!=`: 不等于运算符,用于比较两个值是否不相等。
- `>`: 大于运算符,用于比较左侧的值是否大于右侧的值。
- `<`: 小于运算符,用于比较左侧的值是否小于右侧的值。
- `>=`: 大于等于运算符,用于比较左侧的值是否大于等于右侧的值。
- `<=`: 小于等于运算符,用于比较左侧的值是否小于等于右侧的值。
通过使用这些内置函数,我们可以在MySQL中进行简单的数据比较。
2. 使用自定义方法除了内置函数之外,我们还可以使用自定义的方法来进行数据比较。
例如,我们可以创建一个存储过程或函数来实现复杂的比较逻辑。
以下是一个示例:```sqlDELIMITER //CREATE FUNCTION compare_data(data1 INT, data2 INT)RETURNS INTBEGINDECLARE result INT;IF data1 = data2 THENSET result = 0;ELSEIF data1 > data2 THENSET result = 1;ELSESET result = -1;END IF;RETURN result;END //DELIMITER ;```在上述示例中,我们创建了一个名为`compare_data`的函数,用于比较两个整数型数据。
如果`data1`等于`data2`,则返回0;如果`data1`大于`data2`,则返回1;如果`data1`小于`data2`,则返回-1。
MySQL内置函数获取几天前的日期
MySQL内置函数获取⼏天前的⽇期如何采⽤mysql内置函数获取指定时间之前的⽇期呢?SELECT something FROM table_name WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col; 获取30天前的⽇期。
select date_sub(now(),interval 1 year); 获取⼀年前的今天的⽇期select date_sub(now(),interval 1 week); 获取⼀周前的⽇期select date_sub(now(),interval 1 month); 获取⼀个⽉前的⽇期mysql与⽇期相关的函数:SELECT DATE(createTime) date型SELECT DATE_FORMAT(createTime, '%Y-%m-%d') varchar类型下⾯的⼀⼤堆相关介绍,在⽹上复制过来的:mySQL中常⽤⽇期时间函数:下⾯的查询选择了所有记录,其date_col的值是在最后30天以内:mysql> SELECT something FROM tableWHERE TO_DAYS(NOW()) - TO_DAYS(date_col)<= 30;DAYOFWEEK(date)返回⽇期date的星期索引(1=星期天,2=星期⼀, ……7=星期六)。
这些索引值对应于ODBC标准。
mysql> select DAYOFWEEK('1998-02-03');-> 3WEEKDAY(date)返回date的星期索引(0=星期⼀,1=星期⼆, ……6= 星期天)。
mysql> select WEEKDAY('1997-10-04 22:23:00');-> 5mysql> select WEEKDAY('1997-11-05');-> 2DAYOFMONTH(date)返回date的⽉份中⽇期,在1到31范围内。
MySQL数据库常用函数大全
MySQL数据库常用函数大全字符串函数字符串函数是最常用的一种函数,MySQL支持很多种字符串函数。
下列是MySQL支持的字符串函数表。
1、LOWER(str) 和UPPER(str)函数:用于转换大小写。
2、CONCAT(s1,s2…sn): 把传入的参数拼接成一个字符串。
任何和NULL进行字符串拼接的结果都是NULL。
3、LEFT(str,x) 和RIGHT(str,x) 函数:分别返回字符串最左边的x个字符和最右边的x个字符。
如果第二个参数是NULL,那么将不会返回任何字符串。
4、INSERT(str,x,y,instr): 将字符串str 从指定x的位置开始,取y个长度的字串替换为instr。
5、LTRIM(str)和RTRIM(str)分别表示去掉字符串str左侧和右侧的空格。
6、REPEAT(str,x)函数:返回str 重复x次的结果。
7、TRIM(str)函数,用于去掉目标字符串的空格。
8、SUBSTRING(str,x,y)函数,返回从字符串str中第x位置起y个字符长度的字符串。
9、LPAD(str,n,pad)和RPAD(str,n,pad)函数,用字符串pad对str左边和右边进行填充,直到长度为n个字符长度。
10、STRCMP(s1,s2)用于比较字符串s1和s2的ASCII值大小。
如果s1<s2,则返回-1,如果s1=s2,则返回0,如果s1>s2,则返回1。
11、REPLACE(str,a,b),用字符串b替换字符串str中所有出现的字符串a。
数值函数MySQL支持数值函数,这些函数能够处理很多数值运算。
1、A B S ( x )函数,返回x 的绝对值2、C E I L ( x )函数,返回大于x 的整数。
、M O D ( x , y ),对x 和y 进行取模操作。
、R O U N D ( x , y )返回x 四舍五入后保留位小数的值,如果是整数,那么y 为就是0,如不指定,那么y 默认也是0。
mysql函数输出语句
mysql函数输出语句
MySQL是一个强大的开源数据库管理系统,它支持多种数据存储类型和复杂查询语句。
除了常规的查询语句和数据操作,MySQL还支持多种内置函数,可以方便地对数据进行各
种运算和转换。
在本文中,我们将介绍MySQL函数的输出语句。
MySQL函数可以通过SELECT查询语句输出结果。
SELECT查询语句用于从一个表中选择一组数据,并将结果返回给用户。
在SELECT查询语句中,可以使用多种函数来处理数据并返回计算结果。
MySQL中的函数主要分为两类:
1. 聚合函数:用于从一个表中选择一组数据,并返回这组数据的聚合值。
这些函数
通常用于统计查询和分组查询。
如SUM、COUNT、MAX、MIN、AVG等。
下面是一些常用的MySQL函数及其输出语句:
1. SUM函数:用于计算一组数据的总和。
SELECT SUM(salary) FROM employees
输出结果:总工资
6. ROUND函数:用于将一个数值四舍五入到特定精度。
7. TRIM函数:用于去除一个字符串的空格。
输出结果:hello world
8. UPPER函数:用于将一个字符串转换为大写。
输出结果:HELLO WORLD
以上就是MySQL函数的输出语句,总体而言,这些函数可以在查询语句中方便地进行
数据处理和转换,帮助用户快速有效地完成数据处理任务。
MySQL数据库内置加密函数总结
MySQL数据库内置加密函数总结
⾸先,我认识的加密函数有以下⼏个:
password(plainText):旧版(OLD_PASSWORD())加密后长度16位,新版41位select length(password("123456"))可以⽤来查看加密后的字符串的长度。
这种加密⽅法依赖数据库,需要保持连接状态,即有⼀定的⽹络开销。
md5(plainText):加密后长度32位,该加密算法不可逆,使⽤的是信息摘要算法,如果拿来做压缩亦为有损压缩。
理论上即使有反向算法也⽆法恢复信息原样。
常被⽤来检验下载数据的完整性。
sha(plainText):
sha1(plainText):
encode(plainText,key)和decode(cipherText):
AES_ENCRYPT(plainText,key):返回⽤密钥key对明⽂利⽤⾼级加密算法加密后的结果,结果是⼀个⼆进制字符串,以BLOB类型存储。
AES_DECRYPT(cipherText,key):针对上⼀个函数的解密算法
ENCRYPT(plainText,key):使⽤UNIXcrypt()函数,⽤关键词salt(⼀个可以唯⼀确定⼝令的字符串,类似密钥)加密明⽂。
Mysql函数手册(PDF版)
M ysql函数手册日期函数:一、MySQL获得当前日期时间函数1.1获得当前日期+时间(date+time)函数:now()mysql>select now();+---------------------+|now()|+---------------------+|2008-08-0822:20:46|+---------------------+除了now()函数能获得当前的日期时间外,MySQL中还有下面的函数:current_timestamp(),current_timestamp,localtime(),localtime,localtimestamp--(v4.0.6),localtimestamp()--(v4.0.6)这些日期时间函数,都等同于now()。
鉴于now()函数简短易记,建议总是使用now()来替代上面列出的函数。
1.2获得当前日期+时间(date+time)函数:sysdate()sysdate()日期时间函数跟now()类似,不同之处在于:now()在执行开始时值就得到了,sysdate()在函数执行时动态得到值。
看下面的例子就明白了:mysql>select now(),sleep(3),now();+---------------------+----------+---------------------+|now()|sleep(3)|now()|+---------------------+----------+---------------------+|2008-08-0822:28:21|0|2008-08-0822:28:21|+---------------------+----------+---------------------+mysql>select sysdate(),sleep(3),sysdate();+---------------------+----------+---------------------+|sysdate()|sleep(3)|sysdate()|+---------------------+----------+---------------------+|2008-08-0822:28:41|0|2008-08-0822:28:44|+---------------------+----------+---------------------+可以看到,虽然中途sleep3秒,但now()函数两次的时间值是相同的;sysdate()函数两次得到的时间值相差3秒。
mysql 包含的函数公式
mysql 包含的函数公式
以下是 MySQL 中常用的一些函数和公式:
1. 字符串函数:
- CONCAT:连接两个或多个字符串;
- SUBSTRING:返回字符串的一个子串;
- LENGTH:返回一个字符串的长度;
- REPLACE:在字符串中替换子串;
- TRIM:去除字符串中的空格;
- UPPER/LOWER:将字符串转换为大写/小写。
2. 数字函数:
- ABS:返回一个数字的绝对值;
- ROUND:返回一个数字四舍五入后的值;
- CEIL/FLOOR:返回一个数字的向上/向下取整值;
- POW:返回一个数的指定次方值;
- RAND:返回一个随机数。
3. 日期和时间函数:
- NOW:返回当前日期和时间;
- DATE:提取日期部分;
- TIME:提取时间部分;
- YEAR/MONTH/DAY/HOUR/MINUTE/SECOND:分别提取年/月/日/时/分/秒;
- DATE_FORMAT:按指定的格式返回日期和时间。
4. 聚合函数:
- COUNT:用于统计记录数;
- SUM/AVG:分别返回一个数列的总和和平均数;
- MAX/MIN:分别返回一个数列的最大值和最小值。
上述列出的函数和公式只是 MySQL 中的一部分,MySQL 还有很多其他的函数可供使用。
MySQL常用函数(了解)
Mysql中常用的函数函数表示对输入参数值返回一个具有特定关系的值。
mysql函数主要分为以下几类:数学函数字符串函数日期和时间函数条件判断函数系统信息函数和加密函数等其他函数数学函数:绝对值函数,三角函数,对数函数,随机函数,在有错误时返回null【例6.1】求2,-3.3和-33的绝对值,SQL语句如下:SELECT ABS(2), ABS(-3.3), ABS(-33);PI()返回圆周率的值默认显示小数位数是六位【例6.2】返回圆周率值,SQL语句如下:SELECT pi();平方根函数sqrt(x)和求余函数mod(x,y)【例6.3】求9,40和-49的二次平方根,SQL语句如下:SELECT SQRT(9), SQRT(40), SQRT(-49);【例6.4】对MOD(31,8),MOD(234, 10),MOD(45.5,6)进行求余运算,SQL语句如下:SELECT MOD(31,8),MOD(234, 10),MOD(45.5,6);获取整数的函数ceil(x) ceiling(x) 和floor(x)ceil(x)和ceiling(x)意义相同,返回x邻近的最大整数数值,返回值转化为一个bigint 【例6.5】使用CEILING函数返回最大整数,SQL语句如下:SELECT CEIL(-3.35),CEILING(3.35);FLOOR函数返回最小整数【例6.6】使用FLOOR函数返回最小整数,SQL语句如下:SELECT FLOOR(-3.35), FLOOR(3.35);获取随机数的函数rand() 和rand(x)rand()返回一个随机浮点v,范围在0~1之间(即0<=v<=1.0)例6.7】使用RAND()函数产生随机数,SQL语句如下:SELECT RAND(),RAND(),RAND();若是指定一个x则他被作为种子值,用来产生重复序列【例6.8】使用RAND(x)函数产生随机数,SQL语句如下:SELECT RAND(10),RAND(10),RAND(11);备注:所谓重复序列即产生的值相等,即rand(10) 和rand(10)产生的随机值相等四舍五入的函数round(x)返回最接近x的整数,对x进行四舍五入【例6.9】使用ROUND(x)函数对操作数进行四舍五入操作,SQL语句如下:SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);ROUND(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y位y为负数时,保留的小数点左边相应的位数直接保存为0【例6.10】使用ROUND(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y 位,SQL语句如下:SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1), round(232.38,-2);TRUNCATE(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y位,y位之后均化为0y为负数则 x小数点左起第y位开始后面所有值都化为0【例6.11】使用TRUNCATE(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y位,SQL语句如下:SELECT TRUNCATE(1.31,1), TRUNCATE(1.99,1), TRUNCATE(1.99,0), TRUNCATE(19.99,-1);字符串函数CHAR_LENGTH函数计算字符串字符个数【例6.26】使用CHAR_LENGTH函数计算字符串字符个数,SQL语句如下:SELECT CHAR_LENGTH('date'), CHAR_LENGTH('egg');LENGTH函数计算字符串长度【例6.27】使用LENGTH函数计算字符串长度,SQL语句如下:SELECT LENGTH('date'), LENGTH('egg');CONCAT函数连接字符串【例6.28】使用CONCAT函数连接字符串,SQL语句如下:SELECT CONCAT('My SQL', '5.5'),CONCAT('My',NULL, 'SQL');备注:一个参数为null返回结果为nullCONCAT_WS函数连接带分隔符的字符串concat_ws(x,s1,s2) x代表分割符,分割符为null 返回null【例6.29】使用CONCAT_WS函数连接带分隔符的字符串,SQL语句如下:SELECT CONCAT_WS('-', '1st','2nd', '3rd'), CONCAT_WS('*', '1st', NULL, '3rd');LOWER函数或者LCASE函数将字符串中所有字母字符转换为小写【例6.31】使用LOWER函数或者LCASE函数将字符串中所有字母字符转换为小写,SQL语句如下:SELECT LOWER('BEAUTIFUL'), LCASE('Well');UPPER函数或者UCASE函数将字符串中所有字母字符转换为大写【例6.32】使用UPPER函数或者UCASE函数将字符串中所有字母字符转换为大写,SQL语句如下:SELECT UPPER('black'), UCASE('BLacK');LEFT函数返回字符串中左边的字符left(s,n)返回字符串s最左边的n个字符【例6.33】使用LEFT函数返回字符串中左边的字符,SQL语句如下:SELECT LEFT('football', 5); 注意若超过字符串长度,系统以空格返回超过部分,以第一个字母为起点,若n为负,则返回空格。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mysql内置函数大全ASCII(str)返回字符串str的第一个字符的ASCII值(str是空串时返回0) mysql>select ASCII('2');->50mysql>select ASCII(2);->50mysql>select ASCII('dete');->100ORD(str)如果字符串str句首是单字节返回与ASCII()函数返回的相同值。
如果是一个多字节字符,以格式返回((first byte ASCIIcode)*256+(second byte ASCII code))[*256+thirdbyte ASCII code...]mysql>select ORD('2');->50CONV(N,from_base,to_base)对数字N进制转换,并转换为字串返回(任何参数为NULL时返回NULL,进制范围为2-36进制,当to_base是负数时N作为有符号数否则作无符号数,CONV以64位点精度工作) mysql>select CONV("a",16,2);->'1010'mysql>select CONV("6E",18,8);->'172'mysql>select CONV(-17,10,-18);->'-H'mysql>select CONV(10+"10"+'10'+0xa,10,10);->'40'BIN(N)把N转为二进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,2))mysql>select BIN(12);->'1100'OCT(N)把N转为八进制值并以字串返回(N是BIGINT数字,等价于CONV(N,10,8))mysql>select OCT(12);->'14'HEX(N)把N转为十六进制并以字串返回(N是BIGINT数字,等价于CONV(N,10,16))mysql>select HEX(255);->'FF'CHAR(N,...)返回由参数N,...对应的ASCII代码字符组成的一个字串(参数是N,...是数字序列,NULL值被跳过)mysql>select CHAR(77,121,83,81,'76');->'MySQL'mysql>select CHAR(77,77.3,'77.3');->'MMM'CONCAT(str1,str2,...)把参数连成一个长字符串并返回(任何参数是NULL时返回NULL) mysql>select CONCAT('My','S','QL');->'MySQL'mysql>select CONCAT('My',NULL,'QL');->NULLmysql>select CONCAT(14.3);->'14.3'LENGTH(str)OCTET_LENGTH(str)CHAR_LENGTH(str)CHARACTER_LENGTH(str)返回字符串str的长度(对于多字节字符CHAR_LENGTH仅计算一次) mysql>select LENGTH('text');->4mysql>select OCTET_LENGTH('text');->4LOCATE(substr,str)POSITION(substr IN str)返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)mysql>select LOCATE('bar','foobarbar');->4mysql>select LOCATE('xbar','foobar');->0LOCATE(substr,str,pos)返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)mysql>select LOCATE('bar','foobarbar',5);->7INSTR(str,substr)返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)mysql>select INSTR('foobarbar','bar');->4mysql>select INSTR('xbar','foobar');->0LPAD(str,len,padstr)用字符串padstr填补str左端直到字串长度为len并返回mysql>select LPAD('hi',4,'??');->'??hi'RPAD(str,len,padstr)用字符串padstr填补str右端直到字串长度为len并返回mysql>select RPAD('hi',5,'?');->'hi???'LEFT(str,len)返回字符串str的左端len个字符mysql>select LEFT('foobarbar',5);->'fooba'RIGHT(str,len)返回字符串str的右端len个字符mysql>select RIGHT('foobarbar',4);->'rbar'SUBSTRING(str,pos,len)SUBSTRING(str FROM pos FOR len)MID(str,pos,len)返回字符串str的位置pos起len个字符(使用FROM的丑陋语法是ANSI SQL92标准)mysql>select SUBSTRING('Quadratically',5,6);->'ratica'SUBSTRING(str,pos)SUBSTRING(str FROM pos)返回字符串str的位置pos起的一个子串mysql>select SUBSTRING('Quadratically',5);->'ratically'mysql>select SUBSTRING('foobarbar'FROM4);->'barbar'SUBSTRING_INDEX(str,delim,count)返回从字符串str的第count个出现的分隔符delim之后的子串(count为正数时返回左端,否则返回右端子串)mysql>select SUBSTRING_INDEX('','.',2);->'www.mysql'mysql>select SUBSTRING_INDEX('','.',-2);->''LTRIM(str)返回删除了左空格的字符串strmysql>select LTRIM('barbar');->'barbar'RTRIM(str)返回删除了右空格的字符串strmysql>select RTRIM('barbar');->'barbar'TRIM([[BOTH|LEADING|TRAILING][remstr]FROM]str)返回前缀或后缀remstr被删除了的字符串str(位置参数默认BOTH,remstr默认值为空格)mysql>select TRIM('bar');->'bar'mysql>select TRIM(LEADING'x'FROM'xxxbarxxx');->'barxxx'mysql>select TRIM(BOTH'x'FROM'xxxbarxxx');->'bar'mysql>select TRIM(TRAILING'xyz'FROM'barxxyz');->'barx'SOUNDEX(str)返回str的一个同音字符串(听起来“大致相同”字符串有相同的同音字符串,非数字字母字符被忽略,在A-Z外的字母被当作元音)mysql>select SOUNDEX('Hello');->'H400'mysql>select SOUNDEX('Quadratically');->'Q36324'SPACE(N)返回由N个空格字符组成的一个字符串mysql>select SPACE(6);->''REPLACE(str,from_str,to_str)用字符串to_str替换字符串str中的子串from_str并返回mysql>select REPLACE('','w','Ww');->''REPEAT(str,count)返回由count个字符串str连成的一个字符串(任何参数为NULL时返回NULL,count<=0时返回一个空字符串)mysql>select REPEAT('MySQL',3);->'MySQLMySQLMySQL'REVERSE(str)颠倒字符串str的字符顺序并返回mysql>select REVERSE('abc');->'cba'INSERT(str,pos,len,newstr)把字符串str由位置pos起len个字符长的子串替换为字符串newstr 并返回mysql>select INSERT('Quadratic',3,4,'What');->'QuWhattic'ELT(N,str1,str2,str3,...)返回第N个字符串(N小于1或大于参数个数返回NULL)mysql>select ELT(1,'ej','Heja','hej','foo');->'ej'mysql>select ELT(4,'ej','Heja','hej','foo');->'foo'FIELD(str,str1,str2,str3,...)返回str等于其后的第N个字符串的序号(如果str没找到返回0) mysql>select FIELD('ej','Hej','ej','Heja','hej','foo');->2mysql>select FIELD('fo','Hej','ej','Heja','hej','foo');->0FIND_IN_SET(str,strlist)返回str在字符串集strlist中的序号(任何参数是NULL则返回NULL,如果str没找到返回0,参数1包含","时工作异常)mysql>SELECT FIND_IN_SET('b','a,b,c,d');->2MAKE_SET(bits,str1,str2,...)把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应位置的字串选入字串集并返回(NULL串不添加到结果中)mysql>SELECT MAKE_SET(1,'a','b','c');->'a'mysql>SELECT MAKE_SET(1|4,'hello','nice','world');->'hello,world'mysql>SELECT MAKE_SET(0,'a','b','c');->''EXPORT_SET(bits,on,off,[separator,[number_of_bits]])按bits排列字符串集,只有当位等于1时插入字串on,否则插入off(separator默认值",",number_of_bits参数使用时长度不足补0而过长截断)mysql>select EXPORT_SET(5,'Y','N',',',4)->Y,N,Y,NLCASE(str)LOWER(str)返回小写的字符串strmysql>select LCASE('QUADRATICALLY');->'quadratically'UCASE(str)UPPER(str)返回大写的字符串strmysql>select UCASE('quadratically');->'QUADRATICALLY'LOAD_FILE(file_name)读入文件并且作为一个字符串返回文件内容(文件无法找到,路径不完整,没有权限,长度大于max_allowed_packet会返回NULL)mysql>UPDATE table_name SETblob_column=LOAD_FILE("/tmp/picture")WHERE id=1;ABS(N)返回N的绝对值mysql>select ABS(2);->2mysql>select ABS(-32);->32SIGN(N)返回参数的符号(为-1、0或1)mysql>select SIGN(-32);->-1mysql>select SIGN(0);->0mysql>select SIGN(234);->1MOD(N,M)取模运算,返回N被M除的余数(同%操作符) mysql>select MOD(234,10);->4mysql>select234%10;->4mysql>select MOD(29,9);->2FLOOR(N)返回不大于N的最大整数值mysql>select FLOOR(1.23);->1mysql>select FLOOR(-1.23);->-2CEILING(N)返回不小于N的最小整数值mysql>select CEILING(1.23);->2mysql>select CEILING(-1.23);->-1ROUND(N,D)返回N的四舍五入值,保留D位小数(D的默认值为0) mysql>select ROUND(-1.23);->-1mysql>select ROUND(-1.58);->-2mysql>select ROUND(1.58);->2mysql>select ROUND(1.298,1);-> 1.3mysql>select ROUND(1.298,0);->1EXP(N)返回值e的N次方(自然对数的底)mysql>select EXP(2);->7.389056mysql>select EXP(-2);->0.135335返回N的自然对数mysql>select LOG(2);->0.693147mysql>select LOG(-2);->NULLLOG10(N)返回N以10为底的对数mysql>select LOG10(2);->0.301030mysql>select LOG10(100);-> 2.000000mysql>select LOG10(-100);->NULLPOW(X,Y)POWER(X,Y)返回值X的Y次幂mysql>select POW(2,2);-> 4.000000mysql>select POW(2,-2);->0.250000返回非负数N的平方根mysql>select SQRT(4);-> 2.000000mysql>select SQRT(20);-> 4.472136PI()返回圆周率mysql>select PI();-> 3.141593COS(N)返回N的余弦值mysql>select COS(PI());->-1.000000SIN(N)返回N的正弦值mysql>select SIN(PI());->0.000000TAN(N)返回N的正切值mysql>select TAN(PI()+1);-> 1.557408ACOS(N)返回N反余弦(N是余弦值,在-1到1的范围,否则返回NULL) mysql>select ACOS(1);->0.000000mysql>select ACOS(1.0001);->NULLmysql>select ACOS(0);-> 1.570796ASIN(N)返回N反正弦值mysql>select ASIN(0.2);->0.201358mysql>select ASIN('foo');->0.000000ATAN(N)返回N的反正切值mysql>select ATAN(2);-> 1.107149mysql>select ATAN(-2);->-1.107149ATAN2(X,Y)返回2个变量X和Y的反正切(类似Y/X的反正切,符号决定象限) mysql>select ATAN(-2,2);->-0.785398mysql>select ATAN(PI(),0);-> 1.570796COT(N)返回X的余切mysql>select COT(12);->-1.57267341mysql>select COT(0);->NULLRAND()RAND(N)返回在范围0到1.0内的随机浮点值(可以使用数字N作为初始值) mysql>select RAND();->0.5925mysql>select RAND(20);->0.1811mysql>select RAND(20);->0.1811mysql>select RAND();->0.2079mysql>select RAND();->0.7888DEGREES(N)把N从弧度变换为角度并返回mysql>select DEGREES(PI());->180.000000RADIANS(N)把N从角度变换为弧度并返回mysql>select RADIANS(90);-> 1.570796TRUNCATE(N,D)保留数字N的D位小数并返回mysql>select TRUNCATE(1.223,1);-> 1.2mysql>select TRUNCATE(1.999,1);-> 1.9mysql>select TRUNCATE(1.999,0);->1LEAST(X,Y,...)返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)mysql>select LEAST(2,0);->0mysql>select LEAST(34.0,3.0,5.0,767.0);-> 3.0mysql>select LEAST("B","A","C");->"A"GREATEST(X,Y,...)返回最大值(其余同LEAST())mysql>select GREATEST(2,0);->2mysql>select GREATEST(34.0,3.0,5.0,767.0);->767.0mysql>select GREATEST("B","A","C");->"C"时期时间函数DAYOFWEEK(date)返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql>select DAYOFWEEK('1998-02-03');->3WEEKDAY(date)返回日期date是星期几(0=星期一,1=星期二,……6=星期天)。