首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
9.1 基本查询语句
9.2 单表查询
9.2.1 查询所有字段
9.2.2 查询指定字段
9.2.3 查询指定数据
9.2.4 带关键字IN的查询
9.2.5 带关键字BETWEEN AND的范围查询
9.2.6 带LIKE的字符匹配查询
9.2.7 用IS NULL关键字查询空值
9.2.8 带AND的多条件查询
9.2.9 带OR的多条件查询
9.2.10 用DISTINCT关键字去除结果中的重复行
9.2.11 用ORDER BY关键字对查询结果进行排序
9.2.12 用GROUP BY关键字分组查询
9.2.13 用LIMIT限制查询结果的数量
9.3 聚合函数查询
9.3.1 COUNT()统计函数
9.3.2 SUM()求和函数
9.3.3 AVG()平均数函数
9.3.4 MAX()最大值函数
9.3.5 MIN()最小值函数
9.4 连接查询
9.4.1 内连接查询
9.4.2 外连接查询
9.4.3 复合条件连接查询
9.5 子查询
9.5.1 带IN关键字的子查询
9.5.2 带比较运算符的子查询
9.5.3 带EXISTS关键字的子查询
9.5.4 带ANY关键字的子查询
9.5.5 带ALL关键字的子查询
9.6 合并查询结果
9.7 定义表和字段的别名
9.7.1 为表取别名
9.7.2 为字段取别名
9.8 使用正则表达式查询
9.8.1 匹配指定字符中的任意一个
9.8.2 使用“*”和“ ”来匹配多个字符
9.8.3 匹配以指定的字符开头和结束的记录
10.1 MySQL函数
10.2 数学函数
10.2.1 ABS(x)绝对值函数
10.2.2 FLOOR(x)向下取整函数
10.2.3 RAND()随机数函数
10.2.4 PI()圆周率函数
10.2.5 TRUNCATE(x,y)截断函数
10.2.6 ROUND(x)近似值函数和ROUND(x,y)四舍五入函数
10.2.7 SQRT(x)平方函数
10.3 字符串函数
10.3.1 INSERT(s1,x,len,s2)替换函数
10.3.2 UPPER(s)函数和UCASE(s)字母大写函数
10.3.3 LEFT(s,n)取左函数
10.3.4 RTRIM(s)去空格函数
10.3.5 SUBSTRING(s,n,len)截取函数
10.3.6 REVERSE(s)反转函数
10.3.7 FIELD(s,s1,s2,…,sn)位置函数
10.3.8 LOCATE(s1,s)、POSITION(s1 IN s)和INSTR(s,s1)3个位置函数
10.4 日期和时间函数
10.4.1 CURDATE()和CURRENT_DATE()当前日期函数
10.4.2 CURTIME()和CURRENT_TIME()当前时间函数
10.4.3 NOW()当前日期和时间函数
10.4.4 DATEDIFF(d1,d2)间隔天数函数
10.4.5 ADDDATE(d,n)日期计算函数
10.4.6 ADDDATE(d,INTERVAL expr type)日期时间计算函数
10.4.7 SUBDATE(d,n)日期计算函数
10.5 条件判断函数
10.6 系统信息函数
10.6.1 获取MySQL版本号、连接数和数据库名的函数
10.6.2 获取用户名的函数
10.6.3 获取字符串的字符集和排序方式的函数
10.7.1 格式化函数FORMAT(x,n)
10.7.2 改变字符集的函数
10.7.3 改变字段数据类型的函数
当前位置:
首页>>
技术小册>>
MySQL从入门到精通(三)
小册名称:MySQL从入门到精通(三)
### 10.1 MySQL函数 在MySQL中,函数(Functions)是执行特定操作并返回结果值的预定义SQL代码块。这些函数极大地丰富了SQL语言的能力,使得数据处理、查询优化、数据验证等方面的工作变得更加高效和便捷。MySQL支持多种类型的函数,包括数学函数、字符串函数、日期和时间函数、条件函数、聚合函数等。本章将详细介绍MySQL中几类常用函数的用法和示例,帮助读者从入门到精通MySQL函数的使用。 #### 10.1.1 数学函数 数学函数用于执行各种数学计算,如四则运算、幂运算、三角函数等。常见的数学函数包括: - `ABS(x)`: 返回x的绝对值。 - `CEIL(x)` 或 `CEILING(x)`: 返回不小于x的最小整数。 - `FLOOR(x)`: 返回不大于x的最大整数。 - `RAND()`: 返回一个0到1之间的随机浮点数。 - `ROUND(x, d)`: 对x进行四舍五入,保留d位小数。如果省略d,则默认保留到整数。 - `POW(x, y)` 或 `POWER(x, y)`: 返回x的y次幂。 **示例**: ```sql SELECT ABS(-10), CEIL(10.2), FLOOR(10.7), RAND(), ROUND(123.4567, 2), POW(2, 3) AS Result; ``` #### 10.1.2 字符串函数 字符串函数用于处理文本数据,如拼接、截取、查找、替换等。常用的字符串函数有: - `CONCAT(str1, str2, ...)`: 将多个字符串值连接成一个字符串。 - `LENGTH(str)`: 返回字符串的长度(字节数),对于多字节字符集(如UTF-8),可能不等于字符数。 - `CHAR_LENGTH(str)` 或 `CHARACTER_LENGTH(str)`: 返回字符串的字符数。 - `LOWER(str)`: 将字符串转换为小写。 - `UPPER(str)`: 将字符串转换为大写。 - `SUBSTRING(str, pos, len)`: 从字符串str的pos位置开始,截取长度为len的子字符串。 - `REPLACE(str, from_str, to_str)`: 在字符串str中查找所有from_str并替换为to_str。 **示例**: ```sql SELECT CONCAT('Hello', ' ', 'World'), LENGTH('你好'), CHAR_LENGTH('你好'), LOWER('MySQL'), UPPER('mysql'), SUBSTRING('Hello World', 7, 5), REPLACE('apple pie', 'pie', 'cake') AS Result; ``` #### 10.1.3 日期和时间函数 日期和时间函数用于处理日期和时间的值,如获取当前日期、时间,格式化日期时间,计算日期之间的差异等。 - `NOW()`: 返回当前的日期和时间。 - `CURDATE()`: 返回当前的日期(不包含时间)。 - `CURTIME()`: 返回当前的时间(不包含日期)。 - `DATE_FORMAT(date, format)`: 根据指定的格式显示日期。 - `DATEDIFF(end_date, start_date)`: 返回两个日期之间的天数差。 - `TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)`: 返回两个时间戳之间的差异,unit可以是SECOND、MINUTE、HOUR等。 **示例**: ```sql SELECT NOW(), CURDATE(), CURTIME(), DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'), DATEDIFF('2023-04-01', '2023-03-31'), TIMESTAMPDIFF(DAY, '2023-03-31 23:59:59', '2023-04-01 00:00:01'); ``` #### 10.1.4 条件函数 条件函数根据给定的条件返回不同的值,常见的条件函数有: - `IF(condition, value_if_true, value_if_false)`: 如果condition为真,则返回value_if_true,否则返回value_if_false。 - `CASE` 语句:更复杂的条件逻辑,可以匹配多个条件。 **CASE 语句示例**: ```sql SELECT name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' ELSE 'D' END AS grade FROM students; ``` #### 10.1.5 聚合函数 聚合函数用于对一组值执行计算并返回单个值,常用于统计信息的提取。 - `COUNT(expr)`: 返回expr中非NULL值的数量。 - `SUM(column)`: 返回column中值的总和。 - `AVG(column)`: 返回column中值的平均值。 - `MAX(column)`: 返回column中的最大值。 - `MIN(column)`: 返回column中的最小值。 **示例**: ```sql SELECT COUNT(*) AS total_students, SUM(score) AS total_score, AVG(score) AS average_score, MAX(score) AS highest_score, MIN(score) AS lowest_score FROM students; ``` #### 10.1.6 自定义函数 除了上述内置函数外,MySQL还支持用户自定义函数(UDF, User-Defined Functions)。通过自定义函数,用户可以扩展MySQL的功能,实现复杂的业务逻辑。自定义函数可以使用SQL语句、过程式语言(如C/C++)编写,并在MySQL中注册后使用。 创建自定义函数的基本语法如下: ```sql CREATE FUNCTION function_name (parameters) RETURNS return_type [characteristic ...] BEGIN -- 函数体,包含SQL语句 END; ``` 由于自定义函数的编写和实现涉及较深的MySQL编程知识,这里不再展开具体示例,但了解这一特性对于高级MySQL开发者来说是必要的。 ### 总结 MySQL函数是SQL查询中不可或缺的一部分,它们提供了丰富的数据处理能力,使得数据库操作更加灵活和强大。通过掌握数学函数、字符串函数、日期和时间函数、条件函数、聚合函数等常用函数,以及了解自定义函数的基本概念,读者可以更加高效地编写SQL查询,提升数据库应用的性能和可维护性。希望本章内容能够帮助读者从入门到精通MySQL函数的使用,为数据库开发和应用打下坚实的基础。
上一篇:
9.8.3 匹配以指定的字符开头和结束的记录
下一篇:
10.2 数学函数
该分类下的相关小册推荐:
MySQL从入门到精通(二)
MySQL8.0入门与实践
MySQL 实战 45 讲
MySQL从入门到精通(四)
MySQL从入门到精通(五)
细说MySQL(零基础到高级应用)
MySQL从入门到精通(一)
SQL零基础到熟练应用(增删改查)
MySQL必会核心问题