MySQL单表查询进阶总结
MySQL单表查询进阶总结
在进行数据库操作时,查询操作无疑是非常重要且常用的操作之一。数据的查询操作可以帮助我们根据具体的需求,设计高效的查询操作,以展示所需的数据给用户。在实际开发中,根据不同的需求并考虑查询效率,决定如何进行查询,本文将围绕MySQL单表查询展开,介绍基础查询、条件查询、排序查询、分组查询以及分页查询等相关知识点。
基础查询
基础查询语法包含3个部分:SELECT、FROM和字段列表。SELECT用于查询需要的字段,FROM用于指定查询的表名,字段列表则表示需要查询的字段。以下是基础查询的语法示例:
SELECT 字段列表 FROM 表名;
当需要查询全部字段时可以使用以下语法:
SELECT * FROM 表名;
去除重复记录可使用以下语法:
SELECT DISTINCT 字段列表 FROM 表名;
起别名操作可使用以下语法:
SELECT 字段名 别名 FROM 表名;
条件查询
条件查询语法包含4个部分:SELECT、FROM、WHERE和条件列表。其中,WHERE用于添加任何需要的条件。以下是条件查询的语法示例:
SELECT 字段列表 FROM 表名 WHERE 条件列表;
在条件查询中,我们通常需要使用以下运算符:大于(>)、小于(=)、小于等于( 20;
查询年龄等于18岁或20岁或21岁的学生信息:
SELECT * FROM stu WHERE age IN (18, 20, 21);
模糊查询通常使用like关键字,可以使用通配符进行占位,其中_代表单个任意字符,%代表任意个数字符。以下是模糊查询的示例:
查询姓名中含有张的学生信息:
SELECT * FROM stu WHERE name LIKE '%张%';
排序查询
排序查询常用语法包含3个部分:SELECT、FROM和ORDER BY。其中ORDER BY用于指定排序方式,包括排序字段名和排序方式。默认情况下是升序ASC。以下是排序查询的示例:
查询数学成绩并按照成绩从高到低排序:
SELECT * FROM stu ORDER BY math DESC;
聚合函数
聚合函数通常用于对一整列进行运算,如计算一整列成绩数据的平均值,以下是常用的聚合函数:count(列名)统计数量、max(列名)最大值、min(列名)最小值、sum(列名)求和、avg(列名)平均值。以下是聚合函数的通用语法:
SELECT 聚合函数 FROM 表名;
对于NULL值,不参与聚合函数运算。通常使用*进行运算,因为一行中不可能所有的字段都是NULL。以下是聚合函数的示例:
查询数学成绩的平均分:
SELECT AVG(math) FROM stu;
分组查询
分组查询通过GROUP BY实现,通常包含3个部分:SELECT,FROM,GROUP BY和HAVING。其中,GROUP BY用于指定分组字段,HAVING用于过滤分组后的结果。以下是分组查询的通用语法:
SELECT 字段列表 FROM 表名 WHERE 分组前的条件限定 GROUP BY 分组字段名 HAVING 分组后的条件过滤;
在分组查询中,WHERE和HAVING的执行时机不同。WHERE用于分组之前进行限定,不满足WHERE条件,则不会参与分组,HAVING则是分组之后对结果进行过滤。以下是分组查询的示例:
查询男同学和女同学各自的数学平均分以及各自人数,要求:分数低于70分的不参与分组:
SELECT gender, AVG(math), COUNT(*) FROM stu WHERE math > 70 GROUP BY gender;
查询男同学和女同学各自的数学平均分以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个:
SELECT gender, AVG(math), COUNT(*) FROM stu WHERE math > 70 GROUP BY gender HAVING COUNT(*) > 2;
分页查询
分页查询用于查询大量数据时,每次只查询一页的数据。分页查询语法包含3个部分:SELECT,FROM和LIMIT,其中LIMIT用于指定查询起始索引和查询条目数。以下是分页查询的通用语法:
SELECT 字段列表 FROM 表名 LIMIT 查询起始索引, 查询条目数;
在LIMIT关键字中,查询起始索引这个参数是从0开始的。以下是分页查询的示例:
从第0条记录开始查询3条数据:
SELECT * FROM stu LIMIT 0, 3;
推荐学习
上述是MySQL单表查询的相关知识点,希望能够对读者有所帮助。如果想要深入学习MySQL操作,PHP中文网推荐学习MySQL视频教程。

-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
mysql查询怎么区分大小写 2023-05-14 07:00:02
-
delete和drop的区别是什么 2023-05-14 07:00:02
-
步骤分明地教你在MAC上安装MYSQL 2023-05-14 07:00:02