SQL语法解剖台与找茬小游戏

SQL语法解剖台

输入SQL查询语句,查看分步执行过程和结果:

1. FROM 子句执行
2. JOIN 子句执行
3. WHERE 子句执行
4. GROUP BY 子句执行
5. HAVING 子句执行
6. SELECT 子句执行
7. ORDER BY 子句执行
8. TOP子句执行

示例数据库表数据

SQL找茬小游戏

找出以下SQL语句中的错误或不良实践:

常见SQL错误类型

1. GROUP BY 误用

SELECT列表中的非聚合列必须出现在GROUP BY子句中。

错误示例: SELECT department, name, AVG(salary) FROM Employees GROUP BY department;

2. HAVING 误用

HAVING用于过滤分组后的结果,WHERE用于过滤行。

错误示例: SELECT department, AVG(salary) FROM Employees HAVING salary > 5000 GROUP BY department;

3. JOIN 条件缺失

多表连接时缺少ON条件会导致笛卡尔积。

错误示例: SELECT * FROM Students JOIN grade;

4. 歧义列名

多表查询时,相同列名需要指定表名前缀。

错误示例: SELECT id, name FROM Students JOIN grade ON Students.id = grade.sid;