SQL & MySQL 基础课后习题

适用课程:《SQL与MySQL基础》 建议学时:4学时(2节课) 总分:100分


📝 习题说明

本习题集涵盖以下知识点:

💡 提示:配套讲义中也有对应的 课后练习


第一部分:选择题(每题 2 分,共 20 分)

1.1 数据库基础概念

1. 以下哪个不是数据库管理系统(DBMS)?

A) MySQL
B) Oracle
C) Python
D) PostgreSQL


2. MySQL 默认的存储引擎是?

A) MyISAM
B) InnoDB
C) MEMORY
D) CSV


1.2 SQL 基础

3. 下列哪个 SQL 语句用于查询数据?

A) INSERT
B) UPDATE
C) SELECT
D) DELETE


4. 下列哪个 SQL 语句用于插入数据?

A) INSERT INTO
B) SELECT INTO
C) UPDATE INTO
D) CREATE INTO


1.3 条件查询与排序

5. 在 SQL 中,哪个关键字用于过滤查询结果?

A) ORDER BY
B) GROUP BY
C) WHERE
D) LIMIT


6. 要对查询结果按年龄降序排序,应使用?

A) ORDER BY age ASC
B) ORDER BY age DESC
C) ORDER BY age UP
D) ORDER BY age DOWN


1.4 聚合与分组

7. 下列哪个不是聚合函数?

A) COUNT()
B) SUM()
C) MAX()
D) WHERE()


8. 要统计每个部门的员工数量,应该使用哪个关键字?

A) WHERE
B) ORDER BY
C) GROUP BY
D) LIMIT


1.5 多表查询

9. 要查询两个表中都存在的记录,应该使用?

A) LEFT JOIN
B) RIGHT JOIN
C) INNER JOIN
D) FULL OUTER JOIN


10. LEFT JOIN 会返回?

A) 只返回右表中存在的记录
B) 只返回左表中存在的记录
C) 返回左表所有记录 + 右表匹配的记录
D) 返回两表所有记录


第二部分:填空题(每题 3 分,共 15 分)

2.1 SQL 基础

1. SQL 的全称是 ___________(Structured Query Language)。

2. 用于创建数据库的 SQL 关键字是 ___________。

3. 用于删除表的 SQL 关键字是 ___________。

2.2 CRUD 操作

4. 向表中插入数据的 SQL 关键字是 ___________。

5. 更新表中数据的 SQL 关键字是 ___________。

2.3 聚合与分组

6. 用于分组的 SQL 关键字是 ___________。

7. 用于过滤分组结果的 SQL 关键字是 ___________。

2.4 事务特性

8. MySQL 事务的 ACID 特性中,A 代表 ___________(原子性)。


第三部分:简答题(每题 5 分,共 25 分)

3.1 数据库基础

1. 什么是关系型数据库?请举例说明。


2. 请解释 MySQL 中 InnoDB 和 MyISAM 存储引擎的主要区别。


3.2 SQL 查询

3. 请解释 SELECT 语句的执行顺序(从先到后)。


4. WHERE 和 HAVING 有什么区别?


3.3 索引与事务

5. 什么是索引?索引有什么优缺点?


第四部分:SQL 编程题(共 40 分)

4.1 表操作(10 分)

假设有一个学生表 students,包含以下字段:

要求:

  1. 创建学生表(4分)
  2. 添加一条学生记录(3分)
  3. 修改年龄大于 20 的学生性别为”男”(3分)
-- 请在此处编写 SQL 代码

4.2 查询操作(10 分)

基于上面的 students 表:

要求:

  1. 查询所有学生,按年龄升序排列(3分)
  2. 查询年龄在 18-22 岁之间的学生(3分)
  3. 查询每个班级的学生数量(4分)
-- 请在此处编写 SQL 代码

4.3 多表查询(10 分)

假设还有一个班级表 classes:

要求:

  1. 查询所有学生及其班级名称(使用 INNER JOIN)(4分)
  2. 查询所有班级,即使没有学生的班级也要显示(使用 LEFT JOIN)(6分)
-- 请在此处编写 SQL 代码

4.4 综合应用(10 分)

题目:某电商系统有如下表结构:

要求:

  1. 统计每个用户的订单总金额(4分)
  2. 查询订单总金额超过 1000 元的用户姓名和订单总金额(6分)
-- 请在此处编写 SQL 代码

第五部分:Python 编程题(共 20 分)

5.1 Python 操作 MySQL(10 分)

使用 Python 的 pymysql 库,实现以下功能:

  1. 连接 MySQL 数据库
  2. 查询 users 表中的所有用户
  3. 打印查询结果
# 请在此处编写 Python 代码
import pymysql

# 请补充代码

5.2 Python CRUD 操作(10 分)

使用 Python 实现用户的增删改查:

  1. 添加一个新用户
  2. 查询用户
  3. 更新用户
  4. 删除用户

参考答案

第一部分:选择题答案

题号 答案 知识点
1 C 数据库管理系统
2 B MySQL 存储引擎
3 C SELECT 查询
4 A INSERT 插入
5 C WHERE 条件
6 B ORDER BY 排序
7 D 聚合函数
8 C GROUP BY 分组
9 C INNER JOIN
10 C LEFT JOIN

第二部分:填空题答案

  1. Structured Query Language(结构化查询语言)
  2. CREATE DATABASE
  3. DROP TABLE
  4. INSERT INTO
  5. UPDATE
  6. GROUP BY
  7. HAVING
  8. 原子性(Atomicity)

第三部分:简答题参考答案

1. 关系型数据库
关系型数据库是基于关系模型(表结构)的数据库,使用行和列来存储数据,表中数据可以通过公共字段关联。常见的关系型数据库有 MySQL、Oracle、SQL Server 等。

2. InnoDB vs MyISAM

3. SELECT 语句执行顺序
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT

4. WHERE vs HAVING

5. 索引
索引是帮助 MySQL 高效获取数据的数据结构(如 B+Tree)。优点:加快查询速度;缺点:占用磁盘空间,增加写操作开销。


习题版本:v1.0 配套讲义:《SQL-MySQL基础讲义.md》 配套案例:《demo/》