mysql的查询语句主要用于从数据库表中获取所需数据,最基础的是SELECT语句,不同的查询场景对应不同的语法组合,整体遵循固定的结构规则。

基础查询语法格式
最简单的mysql查询语句用于获取表中所有数据,语法格式如下:
SELECT * FROM 表名;
如果只需要查询指定的列,可以将星号替换为具体的列名,多个列名之间用英文逗号分隔:
SELECT 列名1,列名2 FROM 表名;
带条件筛选的查询语法
当需要获取符合特定条件的数据时,需要添加WHERE子句,语法格式如下:
SELECT 列名 FROM 表名 WHERE 筛选条件;
筛选条件可以使用比较运算符(=、>、<、>=、<=、!=)、逻辑运算符(AND、OR、NOT)以及IN、BETWEEN等关键字,示例如下:
-- 查询年龄大于18且小于30的用户 SELECT user_name,age FROM user WHERE age > 18 AND age < 30; -- 查询id为1、3、5的用户 SELECT * FROM user WHERE id IN (1,3,5);
排序与分页查询语法
如果需要对查询结果进行排序,需要添加ORDER BY子句,升序使用ASC(可省略),降序使用DESC:
-- 按年龄降序排序查询用户 SELECT * FROM user ORDER BY age DESC;
当查询结果数据量较大时,通常需要分页展示,此时需要添加LIMIT子句,语法格式为LIMIT 起始偏移量,每页数量,起始偏移量从0开始:
-- 查询第二页数据,每页显示10条 SELECT * FROM user LIMIT 10,10;
分组查询语法
如果需要对数据进行分组统计,需要添加GROUP BY子句,配合聚合函数(COUNT、SUM、AVG等)使用,若需要对分组后的结果筛选,添加HAVING子句:
-- 统计每个部门的员工数量,只显示人数大于5的部门 SELECT dept_id,COUNT(*) AS user_count FROM user GROUP BY dept_id HAVING user_count > 5;
完整查询语句顺序
mysql查询语句的各个子句有固定的书写顺序,完整的基础语法顺序如下:
- SELECT:指定要查询的列
- FROM:指定要查询的表
- WHERE:指定行筛选条件
- GROUP BY:指定分组列
- HAVING:指定分组后的筛选条件
- ORDER BY:指定排序规则
- LIMIT:指定分页参数
注意实际执行顺序和书写顺序不同,执行时先处理FROM,再处理WHERE,之后是GROUP BY、HAVING,然后是SELECT,最后是ORDER BY和LIMIT。