2026-10-22 15:09:44
SQL数据查询语言(DQL)的核心操作语法及完整语段如下:
1. 基础查询结构SELECT 字段名 FROM 表名 [WHERE 条件语句] [GROUP BY 字段名] [HAVING 条件语句] [ORDER BY 字段名 [ASC|DESC]] [LIMIT 索引号, 行数];查询指定字段:SELECT id, name FROM emp;
查询所有字段:SELECT * FROM emp;
字段别名:SELECT id AS "ID号", name FROM emp;
去重查询:SELECT DISTINCT gender FROM emp;
通过逻辑运算符、比较运算符等筛选数据:
结合聚合函数(如COUNT, AVG, SUM, MAX, MIN)对数据分组:
SELECT gender, AVG(age) AS "平均年龄" FROM emp GROUP BY gender; -- 按性别分组求平均年龄SELECT workaddress, COUNT(*) FROM employee GROUP BY workaddress; -- 按地址分组统计人数4. 分组后筛选(HAVING)对分组结果进一步筛选(与WHERE区别:HAVING作用于分组后数据):
SELECT gender, AVG(age) AS "平均年龄" FROM emp GROUP BY gender HAVING AVG(age) > 20; -- 筛选平均年龄大于20的分组5. 排序(ORDER BY)按字段升序(ASC,默认)或降序(DESC)排列:
SELECT * FROM emp ORDER BY id ASC; -- 升序SELECT * FROM emp ORDER BY age DESC; -- 降序6. 限制结果行数(LIMIT)从指定索引开始返回指定行数(索引从0开始):
SELECT * FROM emp LIMIT 2, 2; -- 从第3行开始返回2行SELECT * FROM emp LIMIT 5; -- 返回前5行7. 综合示例场景:从employee表中查询年龄小于45的员工地址、数量,按地址分组后筛选数量≥3的记录。
SELECT workaddress, COUNT(*) AS "人数" FROM employee WHERE age < 45 GROUP BY workaddress HAVING COUNT(*) >= 3;执行逻辑:
WHERE在分组前过滤原始数据。
HAVING在分组后过滤聚合结果。
通过以上语法和示例,可覆盖SQL数据查询的核心场景,包括条件筛选、分组汇总、排序及分页等操作。