为了便于数据查询,首先构建两个数据库表:student 表与 score 表。

**student 表结构说明:**
该表用于存储学生的基本信息,包含字段如学号、姓名、性别、出生年份、所属院系及住址。建表语句如下:
```sql
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
`sex` char(20) DEFAULT NULL,
`birth` year(4) DEFAULT NULL,
`department` char(10) DEFAULT NULL,
`address` char(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
```
向 student 表中插入以下六条记录:
```sql
insert into `student`(`id`,`name`,`sex`,`birth`,`department`,`address`) values (1,'张老大','男',1985,'计算机系','北京市海淀区');
insert into `student`(`id`,`name`,`sex`,`birth`,`department`,`address`) values (2,'张老二','男',1986,'中文系','北京市昌平区');
insert into `student`(`id`,`name`,`sex`,`birth`,`department`,`address`) values (3,'张三','女',1990,'中文系','湖南省永州市');
insert into `student`(`id`,`name`,`sex`,`birth`,`department`,`address`) values (4,'李四','男',1990,'英语系','辽宁省阜新市');
insert into `student`(`id`,`name`,`sex`,`birth`,`department`,`address`) values (5,'王五','女',1991,'英语系','福建省厦门市');
insert into `student`(`id`,`name`,`sex`,`birth`,`department`,`address`) values (6,'王六','男',1988,'计算机系','湖南省衡阳市');
```
**score 表结构说明:**
此表用于记录学生的课程成绩,包含主键 id、学生编号(stu_id)、课程名称(c_name)和分数(grade)。其中 stu_id 作为外键关联 student 表的 id 字段,并设置了级联删除与更新。建表语句如下:
```sql
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`stu_id` int(10) NOT NULL,
`c_name` char(20) DEFAULT NULL,
`grade` int(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `score_ibfk_1` (`stu_id`),
CONSTRAINT `score_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `student` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
```
向 score 表中插入以下七条成绩数据:
```sql
insert into `score`(`id`,`stu_id`,`c_name`,`grade`) values (1,1,'计算机',98);
insert into `score`(`id`,`stu_id`,`c_name`,`grade`) values (2,1,'英语',80);
insert into `score`(`id`,`stu_id`,`c_name`,`grade`) values (3,2,'计算机',65);
insert into `score`(`id`,`stu_id`,`c_name`,`grade`) values (4,2,'中文',88);
insert into `score`(`id`,`stu_id`,`c_name`,`grade`) values (5,3,'中文',95);
insert into `score`(`id`,`stu_id`,`c_name`,`grade`) values (6,3,'计算机',70);
insert into `score`(`id`,`stu_id`,`c_name`,`grade`) values (7,4,'计算机',70);
```
以上完成了 student 和 score 两张表的创建与初始化数据导入,可用于后续的多表联合查询、成绩统计等操作。
将计算机科目的考试成绩按照从高到低的顺序进行排列展示。
统计各个考试科目学生的平均得分情况,了解每门课程的整体表现水平。
获取每位学生的总分汇总,通过对其各科成绩求和来计算其总成绩。
查询同时参加了计算机和英语两门课程考试的学生相关信息。
查找所有在每门课程中得分均超过80分的学生姓名,类似要求为找出所有科目都达到及格线以上的学生。
列出姓氏为“张”或“王”的学生,显示其姓名、所属院系、所考科目及其对应成绩。
从student表中提取所有学生的记录信息,完整展现当前学生数据。
取出student表中第2条至第4条的学生记录,用于局部数据查看。
从student表检索出所有学生的学号(id)、姓名(name)以及所在院系(department)的基本资料。
筛选出student表中属于计算机系与英语系的学生全部信息。
查询年龄介于18到35岁之间的学生详细信息。
获取每个考试科目的最高分数,识别各科中的最优表现。
查询李四所参加的考试科目(c_name)及其对应的考试成绩(grade)。
整合展示所有学生的基本信息与其相关的考试成绩记录。
分别计算每个学生各科成绩的平均分,评估个体学业整体水平。
找出平均分最高的考试科目名称,确定整体表现最佳的课程。
查询语文成绩高于张三的学生相关信息。
查找计算机科目成绩低于95分的学生完整信息。
统计每一门学科的平均成绩,分析不同课程的学生掌握程度。
获取湖南籍贯的学生名单,并展示其姓名、年龄、院系、考试科目及相应成绩。
