欢迎来到桔子雨工作室官方网站!桔子雨工作室是一个软件和信息技术服务提供商,为中小微企业提供数字化价值。
SQL 常用关键字详解笔记

SQL 常用关键字详解笔记
1. 数据查询基础关键字
SELECT
- 作用:指定要检索的列
- 示例:
SELECT student_id, student_name FROM students;
- 特点:
- 可以使用
*
选择所有列 - 可以使用表达式和函数
- 可以使用
FROM
- 作用:指定查询的数据源表
- 示例:
SELECT * FROM students;
- 特点:
- 必须与SELECT一起使用
- 可以指定表别名
WHERE
- 作用:过滤行数据
- 示例:
SELECT * FROM students WHERE age > 18;
- 常用运算符:
=
,<>
,>
,<
,>=
,<=
BETWEEN
,LIKE
,IN
,IS NULL
2. 表连接关键字
INNER JOIN
- 作用:返回两表中匹配的行
- 示例:
SELECT s.name, c.class_name FROM students s INNER JOIN classes c ON s.class_id = c.id;
- 特点:
- 只返回满足连接条件的记录
- 是最常用的连接类型
LEFT JOIN
- 作用:返回左表所有记录,右表无匹配则为NULL
- 示例:
SELECT s.name, t.teacher_name FROM students s LEFT JOIN teachers t ON s.teacher_id = t.id;
- 特点:
- 保留左表所有记录
- 右表不匹配的显示为NULL
RIGHT JOIN
- 作用:返回右表所有记录,左表无匹配则为NULL
- 示例:
SELECT t.teacher_name, s.name FROM teachers t RIGHT JOIN students s ON t.id = s.teacher_id;
- 特点:
- 保留右表所有记录
- 使用频率低于LEFT JOIN
3. 数据分组与聚合
GROUP BY
- 作用:按指定列分组
- 示例:
SELECT class_id, AVG(score) FROM scores GROUP BY class_id;
- 特点:
- 通常与聚合函数一起使用
- SELECT中的非聚合列必须在GROUP BY中
HAVING
- 作用:过滤分组结果
- 示例:
SELECT class_id, AVG(score) as avg_score FROM scores GROUP BY class_id HAVING AVG(score) > 80;
- 与WHERE区别:
- WHERE在分组前过滤行
- HAVING在分组后过滤组
常用聚合函数
函数 | 说明 | 示例 |
---|---|---|
COUNT() | 计数 | COUNT(student_id) |
SUM() | 求和 | SUM(score) |
AVG() | 平均值 | AVG(score) |
MAX() | 最大值 | MAX(score) |
MIN() | 最小值 | MIN(score) |
4. 数据排序与限制
ORDER BY
- 作用:对结果排序
- 示例:
SELECT * FROM students ORDER BY score DESC, name ASC;
- 排序方式:
- ASC:升序(默认)
- DESC:降序
LIMIT
- 作用:限制返回记录数
- 示例:
SELECT * FROM students LIMIT 10; -- 前10条 SELECT * FROM students LIMIT 5, 10; -- 从第5条开始取10条
- 分页应用:
-- 第3页,每页20条 SELECT * FROM products LIMIT 40, 20;
5. 数据操作关键字
INSERT
- 作用:插入新记录
- 示例:
INSERT INTO students (name, age) VALUES ('张三', 18);
UPDATE
- 作用:修改记录
- 示例:
UPDATE students SET score = 90 WHERE id = 1001;
DELETE
- 作用:删除记录
- 示例:
DELETE FROM students WHERE id = 1001;
6. 高级查询关键字
DISTINCT
- 作用:去重
- 示例:
SELECT DISTINCT class_id FROM students;
CASE WHEN
- 作用:条件判断
- 示例:
SELECT name, CASE WHEN score >= 90 THEN '优秀' WHEN score >= 60 THEN '及格' ELSE '不及格' END AS level FROM students;
UNION
- 作用:合并查询结果
- 示例:
SELECT name FROM teachers UNION SELECT name FROM students;
- 特点:
- 默认去重
- UNION ALL保留重复记录
7. 子查询相关
EXISTS
- 作用:检查子查询是否返回结果
- 示例:
SELECT name FROM students s WHERE EXISTS ( SELECT 1 FROM scores WHERE student_id = s.id );
IN
- 作用:判断值是否在子查询结果中
- 示例:
SELECT name FROM students WHERE id IN (SELECT student_id FROM scores WHERE score > 90);
8. 事务控制关键字
BEGIN / START TRANSACTION
- 作用:开始事务
- 示例:
BEGIN; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT;
COMMIT
- 作用:提交事务
ROLLBACK
- 作用:回滚事务
学习建议
- 按功能分类记忆关键字
- 多练习组合使用不同关键字
- 注意各关键字在SQL语句中的执行顺序
- 重点关注WHERE、GROUP BY、HAVING的区别
- 掌握JOIN的几种类型和使用场景
执行顺序总结
SQL关键字的逻辑执行顺序:
FROM → 2. JOIN → 3. WHERE → 4. GROUP BY →5. HAVING → 6. SELECT → 7. DISTINCT →8. ORDER BY → 9. LIMIT/OFFSET
记住这个顺序有助于理解复杂SQL的执行逻辑!
微信扫描下方的二维码阅读本文