### MySQL常用函数详解 MySQL作为一款广泛使用的开源关系型数据库管理系统,在数据管理方面提供了丰富的功能。其中,函数是实现各种复杂操作的重要工具之一。本文将详细介绍MySQL中的几类常用函数,包括数学函数、聚合函数、字符串函数以及日期和时间函数。 #### 一、数学函数 1. **ABS(x)**: 返回`x`的绝对值。 - 例如:`ABS(-10)` 返回 `10`。 2. **BIN(x)**: 返回`x`的二进制表示形式。同时,`OCT(x)` 和 `HEX(x)` 分别返回八进制和十六进制表示。 - 例如:`BIN(4)` 返回 `'100'`。 3. **CEILING(x)**: 返回大于`x`的最小整数值。 - 例如:`CEILING(3.14)` 返回 `4`。 4. **EXP(x)**: 返回`e`(自然对数的底)的`x`次方。 - 例如:`EXP(1)` 返回约 `2.71828`。 5. **FLOOR(x)**: 返回小于`x`的最大整数值。 - 例如:`FLOOR(3.14)` 返回 `3`。 6. **GREATEST(x1,x2,...,xn)**: 返回集合中最大的值。 - 例如:`GREATEST(1,2,3)` 返回 `3`。 7. **LEAST(x1,x2,...,xn)**: 返回集合中最小的值。 - 例如:`LEAST(1,2,3)` 返回 `1`。 8. **LN(x)**: 返回`x`的自然对数。 - 例如:`LN(2.71828)` 返回约 `1`。 9. **LOG(x,y)**: 返回`x`的以`y`为底的对数。 - 例如:`LOG(100,10)` 返回 `2`。 10. **MOD(x,y)**: 返回`x`除以`y`的余数。 - 例如:`MOD(10,3)` 返回 `1`。 11. **PI()**: 返回π(圆周率)的值。 - 例如:`PI()` 返回约 `3.14159`。 12. **RAND()**: 返回0到1之间的随机值,可以接受一个种子作为参数来固定随机序列。 - 例如:`RAND(1)` 可能返回 `0.834567`。 13. **ROUND(x,y)**: 返回参数`x`四舍五入后的小数位数为`y`的值。 - 例如:`ROUND(3.14159,2)` 返回 `3.14`。 14. **SIGN(x)**: 返回表示数字`x`符号的值。 - 例如:`SIGN(-10)` 返回 `-1`。 15. **SQRT(x)**: 返回`x`的平方根。 - 例如:`SQRT(16)` 返回 `4`。 16. **TRUNCATE(x,y)**: 返回数字`x`截断为`y`位小数的结果。 - 例如:`TRUNCATE(3.14159,2)` 返回 `3.14`。 #### 二、聚合函数 聚合函数通常与`GROUP BY`语句结合使用,用于对数据集进行汇总。 1. **AVG(col)**: 返回指定列的平均值。 - 例如:`SELECT AVG(salary) FROM employees;` 2. **COUNT(col)**: 返回指定列中非NULL值的个数。 - 例如:`SELECT COUNT(*) FROM employees;` 3. **MIN(col)**: 返回指定列的最小值。 - 例如:`SELECT MIN(salary) FROM employees;` 4. **MAX(col)**: 返回指定列的最大值。 - 例如:`SELECT MAX(salary) FROM employees;` 5. **SUM(col)**: 返回指定列的所有值之和。 - 例如:`SELECT SUM(salary) FROM employees;` 6. **GROUP_CONCAT(col)**: 返回由属于一组的列值连接组合而成的结果。 - 例如:`SELECT GROUP_CONCAT(email SEPARATOR ', ') FROM employees GROUP BY department;` #### 三、字符串函数 字符串函数用于处理字符串,包括转换、查找、替换等。 1. **ASCII(char)**: 返回字符的ASCII码值。 - 例如:`ASCII('A')` 返回 `65`。 2. **BIT_LENGTH(str)**: 返回字符串的比特长度。 - 例如:`BIT_LENGTH('test')` 返回 `32`。 3. **CONCAT(s1,s2,...,sn)**: 将多个字符串连接成一个新的字符串。 - 例如:`CONCAT('Hello', 'World')` 返回 `'HelloWorld'`。 4. **CONCAT_WS(sep,s1,s2,...,sn)**: 使用指定的分隔符连接多个字符串。 - 例如:`CONCAT_WS('-', 'Hello', 'World')` 返回 `'Hello-World'`。 5. **INSERT(str,x,y,instr)**: 将字符串`str`从第`x`位置开始,用`instr`替换长度为`y`的子串。 - 例如:`INSERT('Hello World', 7, 5, 'Universe')` 返回 `'Hello Universe'`。 6. **FIND_IN_SET(str,list)**: 在逗号分隔的列表中查找`str`的位置。 - 例如:`FIND_IN_SET('b', 'a,b,c')` 返回 `2`。 7. **LCASE(str)** 或 **LOWER(str)**: 将字符串全部转换为小写字母。 - 例如:`LCASE('HELLO')` 返回 `'hello'`。 8. **LEFT(str,x)**: 返回字符串最左侧的`x`个字符。 - 例如:`LEFT('Hello World', 5)` 返回 `'Hello'`。 9. **LENGTH(s)**: 返回字符串的长度。 - 例如:`LENGTH('test')` 返回 `4`。 10. **LTRIM(str)**: 去除字符串开头的空白字符。 - 例如:`LTRIM(' test ')` 返回 `'test '`。 11. **POSITION(substr,str)**: 返回子串`substr`在字符串`str`中首次出现的位置。 - 例如:`POSITION('lo' IN 'Hello')` 返回 `3`。 12. **QUOTE(str)**: 用反斜杠转义字符串中的单引号。 - 例如:`QUOTE('He\'s a nice guy')` 返回 `'He''s a nice guy'`。 13. **REPEAT(str,n)**: 返回字符串`str`重复`n`次的结果。 - 例如:`REPEAT('ab', 3)` 返回 `'ababab'`。 14. **REVERSE(str)**: 返回字符串的逆序。 - 例如:`REVERSE('hello')` 返回 `'olleh'`。 15. **RIGHT(str,x)**: 返回字符串最右侧的`x`个字符。 - 例如:`RIGHT('Hello World', 5)` 返回 `'World'`。 16. **RTRIM(str)**: 去除字符串末尾的空白字符。 - 例如:`RTRIM(' test ')` 返回 `' test'`。 17. **STRCMP(s1,s2)**: 比较两个字符串`s1`和`s2`。 - 例如:`STRCMP('test', 'test')` 返回 `0`。 18. **TRIM(str)**: 去除字符串两端的所有空白字符。 - 例如:`TRIM(' test ')` 返回 `'test'`。 19. **UCASE(str)** 或 **UPPER(str)**: 将字符串全部转换为大写字母。 - 例如:`UCASE('hello')` 返回 `'HELLO'`。 #### 四、日期和时间函数 日期和时间函数用于处理日期和时间数据,包括获取当前时间、日期计算等。 1. **CURDATE()** 或 **CURRENT_DATE()**: 返回当前的日期。 - 例如:`CURDATE()` 返回 `'2023-09-01'`。 2. **CURTIME()** 或 **CURRENT_TIME()**: 返回当前的时间。 - 例如:`CURTIME()` 返回 `'10:30:00'`。 3. **DATE_ADD(date, INTERVAL int keyword)**: 返回给定日期`date`加上相应的间隔时间。 - 例如:`DATE_ADD('2023-09-01', INTERVAL 6 MONTH)` 返回 `'2024-03-01'`。 4. **DATE_FORMAT(date, fmt)**: 根据指定格式`fmt`格式化日期`date`。 - 例如:`DATE_FORMAT('2023-09-01', '%Y-%m-%d')` 返回 `'2023-09-01'`。 5. **DATE_SUB(date, INTERVAL int keyword)**: 返回给定日期`date`减去相应的间隔时间。 - 例如:`DATE_SUB('2023-09-01', INTERVAL 6 MONTH)` 返回 `'2023-03-01'`。 6. **DAYOFWEEK(date)**: 返回`date`所在一周的第几天(1表示星期日,2表示星期一,以此类推)。 - 例如:`DAYOFWEEK('2023-09-01')` 返回 `5` 表示星期四。 7. **DAYOFMONTH(date)**: 返回`date`是一月中的第几天。 - 例如:`DAYOFMONTH('2023-09-01')` 返回 `1`。 8. **DAYOFYEAR(date)**: 返回`date`是一年中的第几天。 - 例如:`DAYOFYEAR('2023-09-01')` 返回 `245`。 9. **DAYNAME(date)**: 返回`date`所在的星期名称。 - 例如:`DAYNAME('2023-09-01')` 返回 `'Thursday'`。 10. **FROM_UNIXTIME(ts, fmt)**: 将UNIX时间戳`ts`转换为日期时间格式`fmt`。 - 例如:`FROM_UNIXTIME(1630456800, '%Y-%m-%d %H:%i:%s')` 返回 `'2021-09-01 00:00:00'`。 11. **HOUR(time)**: 返回`time`的小时值。 - 例如:`HOUR('10:30:00')` 返回 `10`。 12. **MINUTE(time)**: 返回`time`的分钟值。 - 例如:`MINUTE('10:30:00')` 返回 `30`。 13. **MONTH(date)**: 返回`date`的月份值。 - 例如:`MONTH('2023-09-01')` 返回 `9`。 14. **MONTHNAME(date)**: 返回`date`的月份名称。 - 例如:`MONTHNAME('2023-09-01')` 返回 `'September'`。 15. **NOW()**: 返回当前的日期和时间。 - 例如:`NOW()` 返回 `'2023-09-01 10:30:00'`。 16. **QUARTER(date)**: 返回`date`是一年中的第几个季度。 - 例如:`QUARTER('2023-09-01')` 返回 `3`。 通过以上这些函数的介绍,我们可以看出MySQL提供了非常全面的数据处理能力,无论是简单的数值运算还是复杂的字符串操作,甚至是时间日期的计算,都得心应手。这些函数在实际开发中是非常有用的工具,能够帮助开发者更高效地完成数据处理任务。















剩余9页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 《CC++程序设计》练习题.doc
- 软件外包商业计划书.doc
- 项目管理多选题样本.doc
- 服务器虚拟化技术方案.docx
- 计算机辅助设计复习思考题1.pdf
- 综合布线系统的施工方案.pptx
- 门锁软件使用说明书V.doc
- 南京工业大学 2023-2024 学年程序语言设计(Python 程序设计)部分作业及考试
- 2023年江苏成人计算机统考试题操作题成人大专计算机考试试题模拟试题.doc
- 技术xbee模块及其在楼宇自动化系统中.doc
- 医院网络咨询医生培训教程精华(非原创).pptx
- 基于51单片机的直流双闭环调速系统设计.doc
- 计算机科学与技术专业模拟试题(最终).doc
- 哈工程网络安全实验实验报告.doc
- 单片机项目结题报告之流水灯.docx
- 中央企业开展网络安全工作的策略与方法.pptx


