MySQL期末模拟考试-mysql期末模拟考试.md

焦虑烧麦 159 2022-05-02

一、转换题

建立E-R模型并转换为关系模型

为“学生成绩管理系统”的E-R图如下:
学生信息表和课程信息表的关系为xk,比例为m:n
课程信息表和教师信息表的关系为sk,比例为m:n
其E-R图如下:
a.png

将E-R模型中的关系sk,xk转换为关系模型,用在Word中写出后截图,命名为“图1”

答:

  • 课程信息表(课程号,课程名,教师号,学分,学时)
  • 教师信息表(教师号,教师名,教师性别,教师系别)
  • 学生信息表(学号,姓名,年龄,性别,专业,系别)
  • 教课(课程号,教师号)
  • 选课(课程号,学号,成绩)

二、程序题

①建表

1、课程信息表(class),用“desc”命令显示表信息,并截图,命名“图2”
1.jpg

代码:

CREATE TABLE `class` (
`cno` char(10) NOT NULL COMMENT '课程号',
`cname` char(10) NOT NULL COMMENT '课程名',
`teano` char(10) NOT NULL COMMENT '教师号',
`credit` int(4) NOT NULL COMMENT '学分',
`ctime` float(8,1) NOT NULL COMMENT '学时',
FOREIGN KEY (teano) references teacher(teano)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

desc_class.jpg

2、学生信息表(student),用“desc”命令显示表信息,并截图,命名“图3”
2.jpg

代码:

CREATE TABLE `student` (
`sno` char(10) NOT NULL COMMENT '学号',
`sname` char(10) NOT NULL COMMENT '姓名',
`ssex` char(2) NOT NULL COMMENT '性别',
`sage` char(2) NOT NULL COMMENT '年龄',
`major` char(10) NOT NULL COMMENT '专业',
`depart` char(10) NOT NULL COMMENT '系别',
PRIMARY KEY  (`sno`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

desc_student.jpg

3.教师表(teacher),用“desc”命令显示表信息,并截图,命名“图4”
3.jpg

代码:

CREATE TABLE `teacher` (
`teano` char(10) NOT NULL COMMENT '教师号',
`tname` char(10) NOT NULL COMMENT '教师名',
`Tsex` char(2) NOT NULL COMMENT '教师性别',
`Tdepart` char(10) NOT NULL COMMENT '教室系别',
PRIMARY KEY  (`teano`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

desc_teacher.jpg

4.成绩表,用“desc”命令显示表信息,并截图,命名“图5”
4.jpg

代码:

CREATE TABLE `score` (
`sno` char(10) NOT NULL COMMENT '学号',
`cno` char(10) NOT NULL COMMENT '教师名',
`degree` char(10) NOT NULL COMMENT '成绩',
PRIMARY KEY  (`sno`,`cno`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

desc_score.jpg

②每个表插入内容

学生信息相关表格,用“select *”命令显示表信息,并截图,命名“图6”
11.jpg
代码:

INSERT INTO student VALUES ('0811080101', '陈琦', '男', '22', '信息','工商');
INSERT INTO student VALUES ('0811080102', '崔雪娇', '女', '23', '信息','工商');
INSERT INTO student VALUES ('0811080103', '董朝阳', '男', '22', '数学教育','数学系');
INSERT INTO student VALUES ('0811080104', '杜鹃', '女', '22', '计算机应用','计算机系');
INSERT INTO student VALUES ('0811080105', '方卉', '女', '20', '汉','文法系');

课程信息相关表格,用“select *”命令显示表信息,并截图,命名“图7”
22.jpg
代码:

INSERT INTO `class` VALUES ('0301', '财务管理', '001', '2', '24');
INSERT INTO `class` VALUES ('0302', '供应链管理', '002', '2.2', '18');
INSERT INTO `class` VALUES ('0303', '生产与运用管理', '003', '2.4', '36');
INSERT INTO `class` VALUES ('0304', '统计学', '004', '2.6', '32');
INSERT INTO `class` VALUES ('0305', '网页制作', '005', '2.8', '30');

成绩信息表,用“select *”命令显示表信息,并截图,命名“图8”

33.jpg
代码:

INSERT INTO `score` VALUES ('0811080101', '0303', '90');
INSERT INTO `score` VALUES ('0811080101', '0305', '86');
INSERT INTO `score` VALUES ('0811080102', '0304', '84');
INSERT INTO `score` VALUES ('0811080102', '0301', '81');
INSERT INTO `score` VALUES ('0811080103', '0302', '79');
INSERT INTO `score` VALUES ('0811080103', '0304', '85');

教师信息表,用“select *”命令显示表信息,并截图,命名“图9”
44.jpg
代码:

INSERT INTO `teacher` VALUES ('001', '录亚君', '女', '财经');
INSERT INTO `teacher` VALUES ('002', '李昌明', '男', '财经');
INSERT INTO `teacher` VALUES ('003', '张富强', '男', '财经');
INSERT INTO `teacher` VALUES ('004', '刘翠杰', '女', '数信');
INSERT INTO `teacher` VALUES ('005', '王庆石', '男', '数信');

三、查询表格

查询所有学生的“sno”和“sage”,并将销售额设置别名为“学号",“年龄”,将查询命令和结果截图,命名“图10”

SELECT
	sno AS '学号',
	sage AS '年龄' 
FROM
	student;

查询选了“供应链”和“统计学”两门课程的学生”sname”和“major”,将查询命令和结果截图,命名“图11”。

SELECT DISTINCT
	sname,
	major 
FROM
	student
	JOIN score ON student.sno = score.sno 
WHERE
	score.cno IN ( '0302', '0304' );

查找课程名称的最后两个字符为“管理”,且学生考试成绩在80分以上的学生学号和分数,将查询命令和结果截图,命名“图12”。

SELECT
	score.sno,
	degree 
FROM
	student
	JOIN score ON student.sno = score.sno
	JOIN class ON score.cno = class.cno 
WHERE
	cname LIKE '%管理' 
	AND degree >= 80;

将"成绩"按照从大到小排序,将查询命令和结果截图
图13.PNG

创建一个视图score_view查询成绩在70-80之间的学生"学号""姓名""课程号""成绩",将查询结果和命令截图

CREATE VIEW score_view AS SELECT
sno,sname,
cno,
degree 
FROM
	student
	JOIN score USING ( sno ) 
WHERE
	degree BETWEEN 70 
	AND 80;

查询成绩在50-80之间的学生"学号""姓名",将查询结果和命令截图
图14.PNG

查询在student表的学生姓名列上创建一个普通索引升序索引I_student,将查询命令和结果截图,命名“图15”。

CREATE INDEX I_student ON student(sname ASC);