MySQL函数大全 及用法示例
- 格式:doc
- 大小:87.00 KB
- 文档页数:19
mysql 函数的使用MySQL函数是在MySQL数据库中用来执行特定任务的一种特殊功能。
它们可以接受输入参数,并返回一个结果值。
MySQL函数可以用于查询、数据处理和数据转换等方面,能够帮助开发人员更高效地操作数据库。
一、常用的MySQL函数1.字符串函数:MySQL提供了一系列用于处理字符串的函数,例如,CONCAT用于连接两个或多个字符串;SUBSTRING用于提取字符串的子串;LENGTH用于获取字符串的长度等等。
2.数学函数:MySQL的数学函数可以用于对数字进行各种计算。
例如,ABS用于计算绝对值;ROUND用于四舍五入;POWER用于计算幂等运算等等。
3.日期和时间函数:MySQL提供了许多用于处理日期和时间的函数。
例如,NOW用于获取当前日期和时间;DATE_FORMAT用于格式化日期和时间;DATEDIFF用于计算两个日期之间的天数差等等。
4.条件函数:MySQL的条件函数用于根据特定条件返回不同的结果值。
例如,IF函数用于根据条件返回不同的结果;CASE函数用于根据不同的条件返回不同的结果值等等。
5.聚合函数:MySQL的聚合函数用于对数据进行统计分析。
例如,COUNT用于计算某列的非空值数量;SUM用于计算某列的总和;AVG 用于计算某列的平均值等等。
二、使用MySQL函数的示例下面以一些常见的例子来展示如何使用MySQL函数。
1.字符串函数示例:```SELECT CONCAT('Hello', ' ', 'World') AS result;```输出结果为:Hello World2.数学函数示例:```SELECT ROUND(4.567) AS result;```输出结果为:53.日期和时间函数示例:```SELECT NOW() AS result;```输出结果为:当前日期和时间4.条件函数示例:```SELECT IF(10 > 5, 'True', 'False') AS result;```输出结果为:True5.聚合函数示例:```SELECT COUNT(*) AS result FROM table_name;```输出结果为:表中的记录数三、注意事项在使用MySQL函数时,需要注意以下几点:1.函数的参数必须按照函数的定义进行传递,参数类型和数量必须匹配,否则会导致错误。
MySQL常用函数和操作符介绍MySQL是一种广泛使用的关系型数据库管理系统,具有强大的功能和灵活的操作方式。
在实际应用中,我们经常需要使用MySQL的函数和操作符来处理和操作数据库中的数据。
本文将介绍一些常用的MySQL函数和操作符,帮助读者更好地理解和使用MySQL。
一、函数介绍1. 字符串函数MySQL提供了丰富的字符串函数,用于处理和操作字符串数据。
以下是一些常用的字符串函数:- CONCAT:用于将多个字符串连接在一起。
- LENGTH:返回字符串的长度。
- SUBSTR:截取字符串的一部分。
- REPLACE:替换字符串中的指定字符。
- UPPER和LOWER:将字符串转换为大写或小写。
- TRIM:去除字符串两边的空格。
2. 数学函数MySQL提供了各种数学函数,供我们在数据库中进行数值计算和处理。
以下是一些常用的数学函数:- ABS:返回一个数的绝对值。
- ROUND:对一个数进行四舍五入。
- FLOOR和CEILING:向下或向上取整。
- SQRT:返回一个数的平方根。
- POWER:计算一个数的指定次方。
3. 日期和时间函数MySQL提供了丰富的日期和时间函数,用于处理和操作日期时间类型的数据。
以下是一些常用的日期和时间函数:- NOW:返回当前日期和时间。
- DATE:从一个日期时间值中提取日期部分。
- TIME:从一个日期时间值中提取时间部分。
- YEAR、MONTH和DAY:分别返回给定日期的年、月和日。
- DATE_ADD和DATE_SUB:在给定日期上增加或减少指定的时间间隔。
4. 聚合函数聚合函数是对一组值进行操作并返回一个单一值的函数。
在MySQL中,常用的聚合函数有:- COUNT:统计指定列或表中的行数。
- SUM、AVG和MAX:分别计算指定列或表中数值列的总和、平均值和最大值。
- MIN:找出指定列或表中数值列的最小值。
二、操作符介绍除了函数外,操作符也是MySQL中非常重要的一部分。
mysql运算函数MySQL是一个常用的关系型数据库管理系统,它提供了多种运算函数来执行各种数学运算。
下面是MySQL中常用的一些运算函数:1.ABS函数:用于返回一个数的绝对值。
例如,ABS(-5)返回52.CEIL函数:用于返回大于等于给定数的最小整数。
例如,CEIL(4.3)返回53.FLOOR函数:用于返回小于等于给定数的最大整数。
例如,FLOOR(4.8)返回44.ROUND函数:用于将给定数四舍五入到指定的小数位数。
例如,ROUND(4.567,2)返回4.575.DIV函数:用于返回两个数相除的整数部分。
例如,DIV(10,3)返回36.MOD函数:用于返回两个数相除的余数。
例如,MOD(10,3)返回17.POW函数:用于返回一个数的指定次幂。
例如,POW(2,3)返回88.SQRT函数:用于返回一个数的平方根。
例如,SQRT(9)返回39.RAND函数:用于返回一个介于0和1之间的随机数。
例如,RAND(返回0.546710.ASCII函数:用于返回一个字符的ASCII码值。
例如,ASCII('A')返回6511.CHAR函数:用于返回一个指定ASCII码值的字符。
例如,CHAR(65)返回'A'。
12. LENGTH函数:用于返回一个字符串的字符个数。
例如,LENGTH('Hello')返回513. CONCAT函数:用于将多个字符串连接成一个字符串。
例如,CONCAT('Hello', 'World')返回'HelloWorld'。
14. UPPER函数:用于将一个字符串转换为大写。
例如,UPPER('hello')返回'HELLO'。
15. LOWER函数:用于将一个字符串转换为小写。
例如,LOWER('WORLD')返回'world'。
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的问题,问题如下good_id cat_id12654 665,56912655 601,4722goods_id是商品idcat_id是分类id当我,怎么根据这种分类ID查数据(一个商品有多个分类,而且用逗号隔开了)我现在用的是like 这样的话,输入一个分类id是688,或者4722都能出来这个商品,但输入一个722也出来这个商品了。
如果用like做的话,肯定会有问题的,我的开始的想法是,把cat_id里面的字符串换成数组,这样可以利用mysql里面的in操作,这样就不会出现查找722,而4722类别下的产品都跑出来了。
我从网上找了半天,这方面的字符串操作函数,没找到,不过我发现了find_in_set这个函数虽然不能,将字符串转换成数组,但是也不会出现上面的情况。
我发现自己有好多函数不知道,所以我从手册中,以及网上收集了半天,做了一些例子。
一,测试准备查看复制打印?1.测试表2.CREATE TABLE `string_test` (3. `id` int(11) NOT NULL auto_increment COMMENT '用户ID',4. `name` varchar(50) NOT NULL default '' COMMENT '名称',5. `job` varchar(23) NOT NULL COMMENT '工作',6. `sex` tinyint(1) NOT NULL default '1' COMMENT '性别',7. `hobby` varchar(100) character set utf8 collate utf8_unicode_ci default NULL COMMENT '爱好',8. PRIMARY KEY (`id`)9.) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;10.11.测试数据12.INSERT INTO `string_test` (`id`, `name`, `job`, `sex`, `hobby`) VALUES13.(1, 'tank', '农民工', 1, '军棋,游戏,fishing'),14.(2, 'zhang', 'DUCK', 0, 'fly,make firend'),15.(3, 'ying', 'no job', 1, 'flying,driving,testing'),16.(4, 'tankzhang', 'love your love', 1, 'i love you');测试表CREATE TABLE `string_test` (`id` int(11) NOT NULL auto_increment COMMENT '用户ID',`name` varchar(50) NOT NULL default '' COMMENT '名称',`job` varchar(23) NOT NULL COMMENT '工作',`sex` tinyint(1) NOT NULL default '1' COMMENT '性别',`hobby` varchar(100) character set utf8 collate utf8_unicode_ci default NULL COMMENT '爱好',PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;测试数据INSERT INTO `string_test` (`id`, `name`, `job`, `sex`, `hobby`) VALUES (1, 'tank', '农民工', 1, '军棋,游戏,fishing'),(2, 'zhang', 'DUCK', 0, 'fly,make firend'),二,mysql字符串操作函数1,UPPER和UCASE返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写。
mysql中常用函数函数是MySQL中非常重要的一部分,它们可以帮助我们更方便、更高效地操作数据库。
下面是MySQL中常用函数的详细介绍:1.字符串函数:1.1 CONCAT:将两个或多个字符串连接起来。
语法:CONCAT(string1,string2,...)示例:SELECT CONCAT('Hello',' ','World'); //输出结果为'Hello World'1.2 SUBSTRING:返回一个字符串的子串。
语法:SUBSTRING(string,start,length)示例:SELECT SUBSTRING('Hello World',7,5); //输出结果为'World'1.3 REPLACE:替换一个字符串中的所有匹配项。
语法:REPLACE(string,old,new)示例:SELECT REPLACE('Hello World','World','MySQL'); //输出结果为'Hello MySQL'2.数值函数:2.1 ABS:返回一个数的绝对值。
语法:ABS(number)示例:SELECT ABS(-10); //输出结果为102.2 CEILING/FLOOR:向上/向下取整。
语法:CEILING(number) / FLOOR(number)示例:SELECT CEILING(3.14); //输出结果为42.3 RAND:返回一个随机数。
语法:RAND()示例:SELECT RAND(); //输出结果为0-1之间的随机数3.日期和时间函数:3.1 NOW/CURDATE/CURTIME: 返回当前日期/时间信息。
语法: NOW() / CURDATE() / CURTIME()示例: SELECT NOW(); // 输出结果为当前日期和时间3.2 DATE_FORMAT: 格式化日期和时间信息。
mysql指数函数MySQL提供了几个常用的指数函数,用于计算一个数的指数值。
这些函数包括EXP、POW和POWER。
1.EXP函数:EXP函数返回一个指定数字的指数值。
其语法如下:EXP(x)其中,x是一个浮点数,表示要计算指数的数字。
该函数返回e(自然对数的底数)的x次幂。
例如,EXP(2)的结果为e^2,约等于7.3892.POW函数:POW函数返回一个数字的指定次数的幂值。
其语法如下:POW(x,y)其中,x是要计算幂值的数字,y是幂的次数。
该函数返回x的y次幂的值。
例如,POW(2,3)的结果为2^3=83.POWER函数:POWER函数与POW函数的功能相同,也是计算一个数字的指定次方。
其语法如下:POWER(x,y)其中,x是要计算幂值的数字,y是幂的次数。
该函数返回x的y次幂的值。
例如,POWER(2,3)的结果为2^3=8这些指数函数在数据库中的应用非常广泛。
下面是一些使用指数函数的实际示例:例子1:计算指数的值SELECTEXP(2);--返回e^2的值,约等于7.389例子2:计算幂值SELECTPOW(2,3);--返回2^3的值,即8例子3:计算幂值SELECTPOWER(2,3);--返回2^3的值,即8除了基本的指数函数,MySQL还提供了一些其他的指数函数,如LOG、LOG10和LN函数。
这些函数用于计算对数值。
对数值是指在一些底数下,一个数的幂值。
例如LOG10(100)的结果为以10为底数的对数值,约为2总结:在MySQL中,EXP、POW和POWER函数是用于进行指数计算的基本函数。
通过使用这些函数,可以方便地计算一个数的指定次幂值。
这些函数对于计算复杂的数学问题,以及在数据分析和科学计算中非常有用。
mysql函数用法MySQL是应用广泛的关系型数据库管理系统,为了方便数据库开发人员和用户的数据处理,提供了丰富的函数支持。
本文将介绍MySQL函数的用法,方便读者更好的掌握和运用。
一、MySQL函数简介MySQL函数是用来完成一些数据库操作的工具,可以进行数据处理、数据转换等一系列操作。
MySQL函数按其功能可以分为以下几种:1.数学函数(Math Functions):如ABS()、CEILING()、FLOOR()、ROUND()等,用来处理数学计算。
2.字符串函数(String Functions):如CONCAT()、UPPER()、LENGTH()、SUBSTRING()等,用来处理字符串的操作。
3.日期和时间函数(Date and Time Functions):如YEAR()、MONTH()、WEEK()、NOW()等,用来处理日期和时间。
4.条件函数(Conditional Functions):如IF()、CASE()等,用来完成数据库表中的数据筛选和限制。
5.聚合函数(Aggregate Functions):如COUNT()、MAX()、MIN()等,用来完成对数据的统计和计算。
6.窗口函数(Window Functions):如ROW_NUMBER()、RANK()等,用来完成数据分组和排序。
二、MySQL函数用法详解1.数学函数a.ABS()函数该函数用来求绝对值。
语法:ABS(number)示例:SELECT ABS(-13.34);结果:13.34b.CEILING()函数该函数用来将小数的值向上取整。
语法:CEILING(number)示例:SELECT CEILING(12.34);结果:13c.FLOOR()函数该函数用来将小数的值向下取整。
语法:FLOOR(number)示例:SELECT FLOOR(12.34);结果:12d.ROUND()函数该函数用来四舍五入一个小数的值。
MySQL函数⼤全及⽤法⽰例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 ASCIIcode...]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' 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 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 SET blob_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> 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); -> 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.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); -> 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= 星期天)。
MySQL自定义函数允许您根据特定需求创建自己的函数。
这些函数可以接受输入参数,并返回一个值。
下面是MySQL自定义函数的用法实例:1. 创建自定义函数:```sqlDELIMITER //CREATE FUNCTION func_name(param1 data_type, param2 data_type)RETURNS return_typeBEGIN-- 函数逻辑RETURN result;END //DELIMITER ;```其中,`func_name`是函数名称,`param1`和`param2`是输入参数,`return_type`是返回值类型,`result`是函数的计算结果。
2. 示例一:计算两个数的和```sqlDELIMITER //CREATE FUNCTION add_numbers(x INT, y INT)RETURNS INTBEGINDECLARE result INT;SET result = x + y;RETURN result;END //DELIMITER ;```使用方法:```sqlSELECT add_numbers(3, 5); -- 输出:8```3. 示例二:计算字符串长度```sqlDELIMITER //CREATE FUNCTION string_length(str VARCHAR(255)) RETURNS INTBEGINDECLARE len INT;SET len = LENGTH(str);RETURN len;END //DELIMITER ;使用方法:```sqlSELECT string_length('Hello, World!'); -- 输出:13```4. 示例三:查找最大值```sqlDELIMITER //CREATE FUNCTION find_max(a INT, b INT, c INT)RETURNS INTBEGINDECLARE max_val INT;SET max_val = IF(a >= b AND a >= c, a, IF(b >= a AND b >= c, b, c)); RETURN max_val;END //DELIMITER ;```使用方法:```sqlSELECT find_max(7, 3, 9); -- 输出:9```这些示例演示了如何创建和使用MySQL自定义函数。