【数据库原理】SQL 语句速成指南
要速成 SQL 并能解决大多数问题,我们需要快速掌握 SQL 的核心知识点 和 解题套路。以下是专为应试或快速上手 SQL 操作设计的速成指南,涵盖最常用的 SQL 技能和思路。
一、SQL 必备知识速览
1. 表的基本组成
• 表 = 行 + 列
• 行(row):一条记录。
• 列(column):属性字段。
2. SQL 语句类型
• 查询数据:SELECT(最常用)
• 修改数据:INSERT、UPDATE、DELETE
• 修改表结构:CREATE、ALTER、DROP
3. 关键语法速记
功能 语法 示例
查询 SELECT columns FROM table;
SELECT name, age FROM students;
筛选 WHERE condition
SELECT * FROM students WHERE age > 18;
排序 ORDER BY column ASC/DESC
SELECT * FROM students ORDER BY age DESC;
分组 GROUP BY column
SELECT age, COUNT(*) FROM students GROUP BY age;
聚合 SUM, AVG, MAX, MIN, COUNT
SELECT AVG(age) FROM students;
连接表 JOIN
SELECT s.name, c.course
FROM students s
JOIN courses c
ON s.id = c.sid;
插入 INSERT INTO table VALUES (...);
INSERT INTO students
VALUES (1, 'Alice', 20);
更新 UPDATE table SET col=val ...;
UPDATE students
SET age = 21
WHERE id = 1;
删除
DELETE FROM table
WHERE ...;
DELETE FROM students
WHERE age < 18;
二、解题核心技巧
1. 查询题万能公式
SELECT [列名/函数/表达式]
FROM [表名]
[WHERE 筛选条件]
[GROUP BY 分组列]
[HAVING 分组后的筛选条件]
[ORDER BY 排序列 ASC/DESC];
例题:查询年龄大于 18 岁的学生姓名和年龄,并按年龄降序排序。
SELECT name, age
FROM students
WHERE age > 18
ORDER BY age DESC;
2. JOIN 连接套路
• 理解 JOIN 的类型:
• INNER JOIN:只选取匹配的行。
• LEFT JOIN:左表所有行 + 右表匹配行。
• RIGHT JOIN:右表所有行 + 左表匹配行。
例题:查询学生及其选修的课程名。
SELECT s.name, c.course_name
FROM students s
JOIN enrollments e ON s.id = e.student_id
JOIN courses c ON e.course_id = c.id;
3. 分组和聚合题万能套路
1. 先分组:GROUP BY
2. 再聚合:COUNT, SUM, AVG 等
3. 筛选分组后结果:HAVING
例题:统计每门课程的学生人数,显示人数超过 5 的课程。
SELECT course_id, COUNT(*) AS student_count
FROM enrollments
GROUP BY course_id
HAVING COUNT(*) > 5;
4. 子查询套路
• 子查询可以是独立查询,用于主查询的条件或结果。
例题:查询选修课程数量超过 2 门的学生姓名。
SELECT name
FROM students
WHERE id IN (
SELECT student_id
FROM enrollments
GROUP BY student_id
HAVING COUNT(*) > 2
);
5. 增删改操作的万能套路
插入数据
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
更新数据
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
删除数据
DELETE FROM table_name
WHERE condition;
例题:将所有 18 岁以下的学生记录删除。
DELETE FROM students
WHERE age < 18;
三、常见 SQL 题型分类与模板
1. 简单查询
• 要求:从表中查询数据。
• 模板:
SELECT columns
FROM table
[WHERE condition]
[ORDER BY column ASC/DESC];
2. 分组与聚合
• 要求:统计、分类数据。
• 模板:
SELECT columns, 聚合函数()
FROM table
GROUP BY columns
[HAVING condition]
[ORDER BY column ASC/DESC];
3. 多表连接
• 要求:从多个表中查询相关联数据。
• 模板:
SELECT columns
FROM table1
[INNER/LEFT/RIGHT] JOIN table2
ON table1.column = table2.column
[WHERE condition];
4. 嵌套查询
• 要求:使用子查询实现复杂查询。
• 模板:
SELECT columns
FROM table
WHERE column [=, IN, NOT IN] (
子查询语句
);
四、万能实战练习流程
1. 明确问题: 是查询、统计、更新,还是结构操作?
2. 提取关键字: 找到表名、字段、条件、操作类型。
3. 选择模板: 按题型套用相应的 SQL 模板。
4. 逐步构建:
• 先写简单查询,验证核心数据。
• 再加条件、分组、排序等,逐步完善。
五、速成练习重点
1. 熟记常用函数:COUNT, SUM, AVG, MAX, MIN, DISTINCT。
2. 熟悉 SQL 的逻辑执行顺序(重点):
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
3. 多写练习题,优先解决查询、连接、聚合问题,80% 的问题都是这三类。
掌握这些速成知识和解题套路,你会发现 90% 的 SQL 题目都能迎刃而解!
更多推荐
所有评论(0)