一、转换题
建立E-R模型并转换为关系模型
为“学生成绩管理系统”的E-R图如下:
学生信息表和课程信息表的关系为xk,比例为m:n
课程信息表和教师信息表的关系为sk,比例为m:n
其E-R图如下:
将E-R模型中的关系sk,xk转换为关系模型,用在Word中写出后截图,命名为“图1”
答:
- 课程信息表(课程号,课程名,教师号,学分,学时)
- 教师信息表(教师号,教师名,教师性别,教师系别)
- 学生信息表(学号,姓名,年龄,性别,专业,系别)
- 教课(课程号,教师号)
- 选课(课程号,学号,成绩)
二、程序题
①建表
1、课程信息表(class),用“desc”命令显示表信息,并截图,命名“图2”
代码:
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;
2、学生信息表(student),用“desc”命令显示表信息,并截图,命名“图3”
代码:
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;
3.教师表(teacher),用“desc”命令显示表信息,并截图,命名“图4”
代码:
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;
4.成绩表,用“desc”命令显示表信息,并截图,命名“图5”
代码:
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;
②每个表插入内容
学生信息相关表格,用“select *”命令显示表信息,并截图,命名“图6”
代码:
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”
代码:
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”
代码:
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”
代码:
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;
将"成绩"按照从大到小排序,将查询命令和结果截图
创建一个视图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之间的学生"学号""姓名",将查询结果和命令截图
查询在student表的学生姓名列上创建一个普通索引升序索引I_student,将查询命令和结果截图,命名“图15”。
CREATE INDEX I_student ON student(sname ASC);