mysql数据库入门测试题2

🧩 编程题目:学生信息管理系统

一、题目背景

某学校希望开发一个简单的“学生信息管理系统”,用于记录学生的学号、姓名、性别、年龄、所在班级和成绩。请你使用SQL完成数据库的设计和相关查询功能的实现。


二、具体要求

1. 创建数据库(5分)

  • 创建一个名为 school_db 的数据库,字符集为 utf8mb4。
  • 如果该数据库已存在,则不重复创建。

2. 创建数据表(10分)

在 school_db 数据库中创建一张名为 students 的数据表,包含以下字段:

字段名 类型 约束条件
id INT 主键、自增
student_id VARCHAR(20) 唯一、非空
name VARCHAR(30) 非空
gender VARCHAR(10)
age INT
class_name VARCHAR(50)
score DECIMAL(5,2) 默认值为 0.00

3. 插入数据(10分)

向 students 表中插入如下学生数据(共6条):

student_id name gender age class_name score
S001 张三 男 18 高一1班 89.5
S002 李四 女 17 高一1班 92.0
S003 王五 男 18 高一2班 78.0
S004 赵六 女 19 高二1班 85.5
S005 小明 男 17 高二1班 95.0
S006 小红 女 18 高一2班 88.0

4. 查询操作(每小题5分,共30分)

编写 SQL 语句完成以下查询:

a. 查询所有女生的信息。

b. 查询年龄大于17岁的学生,并按年龄升序排列。

c. 查询每个班级的平均分数,并显示为 avg_score。

d. 查询高一1班中成绩高于90分的学生人数。

e. 查询所有姓“张”的学生。

f. 修改 student_id 为 S003 的学生的成绩为 80 分。

g. 删除 student_id 为 S006 的学生记录。

5. 表结构修改(10分)

a. 向 students 表中添加一个新字段 email,类型为 VARCHAR(100),允许为空。

b. 将 class_name 字段的最大长度改为 100。


三、提交内容

请将以下内容打包提交:

  1. 创建数据库和表的完整 SQL 脚本;
  2. 插入数据的 SQL 脚本;
  3. 所有查询和更新操作的 SQL 语句;
  4. 每个查询结果的截图或输出说明(可选);

四、评分标准

项目 分数
数据库创建 5
表结构定义正确 10
插入数据正确 10
查询语句正确性 30
表结构修改正确 10
代码格式规范性 5
总分 70

五、提示

  • 使用 IF NOT EXISTS 和 IF EXISTS 来增强脚本健壮性;
  • 注意字段约束是否符合要求;
  • 排序使用 ORDER BY,分组使用 GROUP BY;
  • 修改字段使用 ALTER TABLE ... MODIFY COLUMN;
  • 添加字段使用 ALTER TABLE ... ADD COLUMN。

做完上面的题目,不要删除数据库和表,我们要把一个csv文件 导入数据库中。csv文件内容如下,需要把下面的内容复制到csv文件中,如果不会复制,我放到群中。怎么导入,需要学习load data命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
student_id,name,gender,age,class_name,score,email
S001,张三,男,18,高一1班,89.5,zhangsan@example.com
S002,李四,女,17,高一1班,92.0,lisi@example.com
S003,王五,男,18,高一2班,78.0,wangwu@example.com
S004,赵六,女,19,高二1班,85.5,zhaoliu@example.com
S005,小明,男,17,高二1班,95.0,xiaoming@example.com
S006,小红,女,18,高一2班,88.0,xiaohong@example.com
S007,陈刚,男,18,高三1班,82.5,chengang@example.com
S008,林雨,女,19,高三2班,91.0,linyu@example.com
S009,周杰,男,17,高一3班,75.0,zhoujie@example.com
S010,吴芳,女,18,高一3班,89.0,wufang@example.com
S011,郑浩,男,18,高二3班,83.5,zhenghao@example.com
S012,黄丽,女,17,高二3班,93.0,huangli@example.com
S013,徐强,男,19,高三3班,79.0,xuqiang@example.com
S014,刘婷,女,18,高三3班,87.5,liuting@example.com
S015,王磊,男,17,高一4班,90.0,wanglei@example.com
S016,杨雪,女,18,高一4班,86.0,yangxue@example.com
S017,朱勇,男,18,高二4班,81.0,zhuyong@example.com
S018,秦月,女,19,高二4班,94.0,qinyue@example.com
S019,胡军,男,17,高三4班,80.5,hujun@example.com
S020,许静,女,18,高三4班,88.5,xujing@example.com
S021,邓超,男,18,高一5班,84.0,dengchao@example.com
S022,沈琳,女,17,高一5班,92.5,shenlin@example.com
S023,韩梅,女,18,高二5班,89.0,hanmei@example.com
S024,陆涛,男,19,高二5班,83.0,lutao@example.com
S025,马飞,男,17,高三5班,77.5,mafei@example.com
S026,白洁,女,18,高三5班,90.5,baijie@example.com
S027,程浩,男,18,高一6班,86.0,chenghao@example.com
S028,金婷,女,17,高一6班,91.0,jinting@example.com
S029,潘伟,男,18,高二6班,85.0,panwei@example.com
S030,吕娜,女,19,高二6班,87.0,lvna@example.com
S031,罗强,男,17,高三6班,79.0,luoqiang@example.com
S032,贺敏,女,18,高三6班,93.0,hemin@example.com
S033,方俊,男,18,高一7班,82.5,fangjun@example.com
S034,丁雪,女,17,高一7班,94.0,dingxue@example.com
S035,石磊,男,18,高二7班,81.0,shilei@example.com
S036,汤丽,女,19,高二7班,88.5,tangli@example.com
S037,余浩,男,17,高三7班,80.0,yuhao@example.com
S038,汪婷,女,18,高三7班,89.5,wangting@example.com
S039,严军,男,18,高一8班,87.0,yanjun@example.com
S040,江燕,女,17,高一8班,90.0,jiangyan@example.com
S041,陶涛,男,18,高二8班,84.5,taotao@example.com
S042,赖红,女,19,高二8班,92.0,laihong@example.com
S043,钟凯,男,17,高三8班,78.5,zhongkai@example.com
S044,龚娟,女,18,高三8班,86.0,gongjuan@example.com
S045,熊伟,男,18,高一9班,83.0,xiongwei@example.com
S046,孟雪,女,17,高一9班,93.5,mengxue@example.com
S047,侯勇,男,18,高二9班,82.0,houyong@example.com
S048,龙婷,女,19,高二9班,89.0,longting@example.com
S049,史强,男,17,高三9班,76.5,shiqiang@example.com
S050,焦娜,女,18,高三9班,91.0,jaona@example.com
[up主专用,视频内嵌代码贴在这]