SQL指令大全
以下是 SQL 中常用指令的汇总,每个指令都附有简要介绍和示例案例。
查询
1. SELECT 查询所有
介绍: 用于从数据库中查询数据。
示例:
SELECT 学号, 姓名 FROM 学生表;
说明: 从 学生表
中查询 学号
和 姓名
。
2. WHERE 条件查询
介绍: 用于筛选满足条件的记录。
示例:
SELECT 姓名 FROM 学生表 WHERE 年龄 > 20;
说明: 查询年龄大于 20 的学生姓名。
3. ORDER BY 排序
介绍: 用于对查询结果进行排序。
示例:
SELECT 姓名, 成绩 FROM 成绩表 ORDER BY 成绩 DESC;
说明: 按成绩降序排列学生姓名和成绩。
4. GROUP BY 分组
介绍: 用于将数据按某一列进行分组。
示例:
SELECT 班级, AVG(成绩) FROM 成绩表 GROUP BY 班级;
说明: 按班级分组,计算每个班级的平均成绩。
5. HAVING 分组筛选
介绍: 用于筛选满足条件的组。
示例:
SELECT 班级, AVG(成绩) FROM 成绩表 GROUP BY 班级 HAVING AVG(成绩) > 80;
说明: 查询平均成绩大于 80 的班级。
6. JOIN 多表查询
介绍: 用于连接多个表。
示例:
SELECT 学生表.学号, 学生表.姓名, 成绩表.成绩
FROM 学生表
JOIN 成绩表 ON 学生表.学号 = 成绩表.学号;
说明: 连接 学生表
和 成绩表
,查询学生的学号、姓名和成绩。
数据管理
7. INSERT INTO 添加数据
介绍: 用于向表中插入新记录。
示例:
INSERT INTO 学生表 (学号, 姓名, 年龄) VALUES (1001, '张三', 20);
说明: 向 学生表
插入一条新记录。
8. UPDATE 更新数据
介绍: 用于更新表中的记录。
示例:
UPDATE 学生表 SET 年龄 = 21 WHERE 学号 = 1001;
说明: 将学号为 1001 的学生年龄更新为 21。
9. DELETE 删除数据
介绍: 用于删除表中的记录。
示例:
DELETE FROM 学生表 WHERE 学号 = 1001;
说明: 删除学号为 1001 的学生记录。
表管理
10. CREATE TABLE 创建表
介绍: 用于创建新表。
示例:
CREATE TABLE 成绩表 (
学号 INT,
课程名 VARCHAR(50),
成绩 INT
);
说明: 创建一个名为 成绩表
的新表。
11. ALTER TABLE 修改表
介绍: 用于修改表的结构。
示例:
ALTER TABLE 学生表 ADD COLUMN 性别 VARCHAR(10);
说明: 在 学生表
中添加一个 性别
列。
12. DROP TABLE 删除表
介绍: 用于删除表。
示例:
DROP TABLE 成绩表;
说明: 删除 成绩表
。
13. CREATE INDEX 创建索引
介绍: 用于创建索引,提高查询效率。
示例:
CREATE INDEX idx_学号 ON 学生表 (学号);
说明: 在 学生表
的 学号
列上创建索引。
权限
14. GRANT 授权用户
介绍: 用于授予用户权限。
示例:
GRANT SELECT ON 学生表 TO 'user1';
说明: 授予用户 user1
查询 学生表
的权限。
15. REVOKE 回收授权
介绍: 用于收回用户权限。
示例:
REVOKE SELECT ON 学生表 FROM 'user1';
说明: 收回用户 user1
查询 学生表
的权限。
事务
16. BEGIN TRANSACTION 开始事务
介绍: 用于开始一个事务。
示例:
BEGIN TRANSACTION;
说明: 开始一个数据库事务。
17. COMMIT 提交事务
介绍: 用于提交事务。
示例:
COMMIT;
说明: 提交当前事务,使所有更改永久生效。
18. ROLLBACK 回滚事务
介绍: 用于回滚事务。
示例:
ROLLBACK;
说明: 回滚事务,撤销所有未提交的更改。
其他
19. COUNT 统计数量
介绍: 用于统计记录数量。
示例:
SELECT COUNT(*) FROM 学生表;
说明: 统计 学生表
中的记录总数。
20. SUM 总和
介绍: 用于计算某一列的总和。
示例:
SELECT SUM(成绩) FROM 成绩表 WHERE 课程名 = '数学';
说明: 计算数学课程的总成绩。
21. AVG 平均值
介绍: 用于计算某一列的平均值。
示例:
SELECT AVG(成绩) FROM 成绩表 WHERE 课程名 = '数学';
说明: 计算数学课程的平均成绩。
22. MAX 最大
介绍: 用于查找某一列的最大值。
示例:
SELECT MAX(成绩) FROM 成绩表 WHERE 课程名 = '数学';
说明: 查找数学课程的最高成绩。
23. MIN 最小
介绍: 用于查找某一列的最小值。
示例:
SELECT MIN(成绩) FROM 成绩表 WHERE 课程名 = '数学';
说明: 查找数学课程的最低成绩。
24. LIKE 模糊查询
介绍: 用于模糊查询。
示例:
SELECT 姓名 FROM 学生表 WHERE 姓名 LIKE '张%';
说明: 查询姓名以“张”开头的学生。
25. UNION 合并查询
介绍: 用于合并两个查询结果。
示例:
SELECT 姓名 FROM 学生表 WHERE 年龄 > 20
UNION
SELECT 姓名 FROM 学生表 WHERE 性别 = '女';
说明: 查询年龄大于 20 或性别为女的学生姓名。
资查询
26.子查询 嵌套查询
介绍: 用于在查询中嵌套查询。
示例:
SELECT 姓名 FROM 学生表 WHERE 学号 IN (SELECT 学号 FROM 成绩表 WHERE 课程名 = '数学');
说明: 查询选修过数学课程的学生姓名。
27. EXISTS 检查返回
介绍: 用于检查子查询是否返回记录。
示例:
SELECT 姓名 FROM 学生表 WHERE EXISTS (SELECT 1 FROM 成绩表 WHERE 学生表.学号 = 成绩表.学号 AND 课程名 = '数学');
说明: 查询选修过数学课程的学生姓名。
这些指令涵盖了 SQL 的基本操作,通过这些指令可以实现对数据库的增删改查以及数据定义和数据控制等功能。