首页
技术小册
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从入门到精通(三)
### 第9章 MySQL高级应用 #### 9.1 基本查询语句 在MySQL数据库中,查询是用户与数据交互的最基本也是最频繁的操作之一。通过SQL(Structured Query Language,结构化查询语言)的SELECT语句,我们可以从数据库中检索出所需的数据。本章节将详细介绍MySQL中的基本查询语句,包括SELECT语句的基本结构、条件查询、聚合函数、排序与分组查询等核心内容,帮助读者从入门到精通MySQL的查询技能。 ##### 9.1.1 SELECT语句基础 SELECT语句是MySQL中最常用的查询语句,其基本结构如下: ```sql SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column ASC|DESC; ``` - **SELECT** 后面跟着需要查询的列名,可以用逗号分隔选择多列,也可以使用星号(*)表示选择所有列。 - **FROM** 指定了查询将要使用的表名。 - **WHERE** 子句是可选的,用于指定查询条件,只有满足条件的记录才会被返回。 - **ORDER BY** 子句用于对结果集进行排序,默认为升序(ASC),可以指定为降序(DESC)。 ##### 9.1.2 条件查询 在SELECT语句中使用WHERE子句可以实现条件查询,使得查询结果更加精确。WHERE子句中可以使用的条件表达式包括比较运算符(=、<>、>、<、>=、<=)、逻辑运算符(AND、OR、NOT)以及IN、LIKE等特殊运算符。 - **比较运算符**:用于比较列值与指定值的大小或相等性。 - **逻辑运算符**:用于组合多个条件,实现更复杂的逻辑判断。 - **IN**:用于指定某个字段的值在多个值之中。 - **LIKE**:用于在WHERE子句中搜索列中的指定模式,常与通配符(%表示任意字符序列,_表示任意单个字符)一起使用。 示例查询: ```sql -- 查询年龄大于30岁的员工信息 SELECT * FROM employees WHERE age > 30; -- 查询姓名以'张'开头的员工信息 SELECT * FROM employees WHERE name LIKE '张%'; -- 查询薪资在5000到8000之间的员工信息 SELECT * FROM employees WHERE salary BETWEEN 5000 AND 8000; ``` ##### 9.1.3 聚合函数 聚合函数用于对一组值执行计算,并返回单个值。MySQL提供了多种聚合函数,如COUNT()、SUM()、AVG()、MAX()、MIN()等。 - **COUNT()**:计算行数。 - **SUM()**:计算数值列的和。 - **AVG()**:计算数值列的平均值。 - **MAX()**:找出列中的最大值。 - **MIN()**:找出列中的最小值。 示例查询: ```sql -- 计算员工总数 SELECT COUNT(*) FROM employees; -- 计算所有员工的总薪资 SELECT SUM(salary) FROM employees; -- 计算平均工资 SELECT AVG(salary) FROM employees; -- 找出最高薪资 SELECT MAX(salary) FROM employees; -- 找出最低薪资 SELECT MIN(salary) FROM employees; ``` ##### 9.1.4 排序与分组查询 排序和分组是查询操作中常用的技术,用于对结果集进行进一步的处理。 - **排序(ORDER BY)**:如上所述,ORDER BY子句用于对查询结果进行排序。 - **分组(GROUP BY)**:GROUP BY子句用于将结果集按照一个或多个列进行分组,常与聚合函数一起使用,对每个分组执行聚合计算。 示例查询: ```sql -- 按部门分组,计算每个部门的员工数量 SELECT department, COUNT(*) AS employee_count FROM employees GROUP BY department; -- 按部门分组,计算每个部门的平均薪资,并按平均薪资降序排序 SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department ORDER BY avg_salary DESC; ``` ##### 9.1.5 子查询与连接查询 - **子查询**:在SELECT、INSERT、UPDATE、DELETE语句中嵌套的SELECT语句称为子查询。子查询可以出现在WHERE、HAVING、FROM等子句中,用于提供临时性的数据集合,作为外部查询的条件或数据源。 - **连接查询**:当查询涉及多个表时,需要使用连接查询。MySQL支持多种连接类型,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)等,用于根据两个或多个表中的列之间的关系,合并这些表中的数据。 示例查询: ```sql -- 使用子查询找出薪资高于公司平均薪资的员工 SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees); -- 使用内连接查询员工及其所在部门的信息 SELECT employees.name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id; ``` #### 总结 本章节详细介绍了MySQL中的基本查询语句,包括SELECT语句的基础用法、条件查询、聚合函数、排序与分组查询、子查询与连接查询等核心内容。通过掌握这些基础知识,读者可以构建出灵活多样的查询语句,高效地检索和处理数据库中的数据。随着实践的深入,读者还将学习到更多高级查询技巧和优化策略,进一步提升在MySQL数据库操作方面的能力。
下一篇:
9.2 单表查询
该分类下的相关小册推荐:
MySQL从入门到精通(四)
MySQL从入门到精通(一)
SQL零基础到熟练应用(增删改查)
MySQL从入门到精通(五)
MySQL 实战 45 讲
细说MySQL(零基础到高级应用)
MySQL必会核心问题
MySQL从入门到精通(二)
MySQL8.0入门与实践