目录
10-1 80.理学院(CS)新开一门课程“数学建模”,课程编号20, 学分4,学时72,选修课程,最多选课人数为50
10-3 85.将学号为012005001的学生班级改为计算机科学与技术2班(GId=02),联系电话置为空值(NULL)
10-5 78.为洪玉飞老师(教师编号:03012)安排软件工程1班(班级编号:04)的数据库课程(课程编号:1),上课教师为NB201,
10-7 82.如果平时成绩大于90,则将总评成绩低于70的重置为70
10-1 80.理学院(CS)新开一门课程“数学建模”,课程编号20, 学分4,学时72,选修课程,最多选课人数为50
本题目要求编写SQL语句,理学院(CS)新开一门课程“数学建模”,无先行课,课程编号20, 学分4,学时72,选修课程,最多选课人数为50。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.课程表:course
表结构
表数据
insert into course
values('20',NULL,'CS','数学建模','4','72','选修','50');
10-2 86.删除所有期末成绩小于60分的选课记录
作者 宋光慧
单位 浙大宁波理工学院
本题目要求编写SQL语句,删除所有期末成绩小于60分的选课记录。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.选课表sc
表结构
表数据
DELETE FROM sc
WHERE SCScore3 < 60
10-3 85.将学号为012005001的学生班级改为计算机科学与技术2班(GId=02),联系电话置为空值(NULL)
分数 10
作者 宋光慧
单位 浙大宁波理工学院
本题目要求编写SQL语句,将学号为012005001的学生班级改为计算机科学与技术2班(GId=02),联系电话置为空值(NULL)。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.学生表student
1.学生表:student
表结构
表数据
update student
set GId='02', STele=NULL
where SId='012005001'
10-4 87.删除学号为012005001的所有选课记录
分数 10
作者 宋光慧
单位 浙大宁波理工学院
本题目要求编写SQL语句,删除学号为012005001的所有选课记录。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.选课表sc
表结构
表数据
delete from sc
where SId = '012005001'
10-5 78.为洪玉飞老师(教师编号:03012)安排软件工程1班(班级编号:04)的数据库课程(课程编号:1),上课教师为NB201,
分数 10
作者 宋光慧
单位 浙大宁波理工学院
本题目要求编写SQL语句,为洪玉飞老师(教师编号:03012)安排软件工程1班(班级编号:04)的数据库课程(课程编号:1),上课教师为NB201,上课学年学期为2021-2022-2,每周5的34节课,主键已设置自动递增,自动添加。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.课程信息表:information
表结构
表数据
insert into information
values(NULL,'1','03012','04','NB201','5','34','2021-2022-2');
10-6 81.将李飞同学的联系方式改为661010
分数 10
作者 宋光慧
单位 浙大宁波理工学院
本题目要求编写SQL语句,将李飞同学的联系方式改为661010。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.学生表:student
表结构
表数据
update student
set STele='661010'
where SName='李飞'
10-7 82.如果平时成绩大于90,则将总评成绩低于70的重置为70
分数 10
作者 宋光慧
单位 浙大宁波理工学院
本题目要求编写SQL语句,如果平时成绩大于90,则将总评成绩低于70的重置为70。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.选课表:sc
表结构
表数据
update sc
set SCScore='70'
where SCScore1 > 90
and SCScore < 70
10-8 88.删除所有选修了"数据库"课程的选课记录
分数 10
作者 宋光慧
单位 浙大宁波理工学院
本题目要求编写SQL语句,查询删除所有选修了"数据库"课程的选课记录。
现有教务管理系统的关系描述如下:
- 每个院系(部门)有多个班级和多名教师,每名教师各自开设有多门课程。
- 每位教师管理多个班级(班主任),每个班级只能被一位老师管理。
- 每名学生属于一个班级,可以选修多门课程。
- 每门课程可被多位老师讲授,并且有些课程具有先导课程,每门课程的成绩由平时成绩、期中成绩、期末成绩组成,最终计算总评成绩。
- 课程信息表供教师和学生查询,包含课程信息、任课教师、上课班级、上课教室、上课日期(周几)、上课时间(第几节课)、上课学期学年等信息。
1.学生表:student
表结构
表数据
2.课程表:course
表结构
表数据
3.选课表:sc
表结构
表数据
DELETE
from sc
where CId in
(
select CId
from course
where CName = '数据库'
)
10-9 创建视图图统计没有选课的学生信息
分数 10
作者 雷亮
单位 重庆科技学院
现有一个学生数据库,内包含学生表(Student)、课程表(Course)和选修表(SC)。
每学期的某段时间,学校教务处将下达学生学籍清理的任务。假设学籍清理的一类对象是没有选课的学生,请设计一个视图V_StudentsWithoutCourse,用于统计没有选课记录的学生信息。
提示:请使用CREATE VIEW语句作答,并请注意数据表名大小写。
表结构:
学生表(Student)、课程表(Course)和选修表(SC)结构如下:
CREATE TABLE `Student` (
`Sno` varchar(20) NOT NULL,
`Sname` varchar(10) DEFAULT NULL,
`Ssex` varchar(2) DEFAULT NULL,
`Sage` int(3) DEFAULT NULL,
`Sdept` varchar(10) DEFAULT NULL,
PRIMARY KEY (`Sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `Course` (
`Cno` varchar(10) NOT NULL,
`Cname` varchar(20) DEFAULT NULL,
`Cpno` varchar(10) DEFAULT NULL,
`Ccredit` int(3) DEFAULT NULL,
PRIMARY KEY (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `SC` (
`Sno` varchar(20) NOT NULL,
`Cno` varchar(10) NOT NULL,
`Grade` int(3) DEFAULT NULL,
PRIMARY KEY (`Sno`,`Cno`),
KEY `Cno` (`Cno`),
CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`),
CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表样例
Student
表:
Course
表:
SC
表:
输出样例:
视图V_StudentsWithoutCourse
输出:
create view V_StudentsWithoutCourse(Sno,Sname,Ssex,Sage,Sdept)
as select *
from Student
where Sno not in (select Sno from SC)
10-10 创建视图统计需要重修的名单
分数 10
作者 雷亮
单位 重庆科技学院
现有一个学生数据库,内包含学生表(Student)、课程表(Course)和选修表(SC)。
在学期末,教务处要制定下学期的重修任务。假设选修表中成绩为空的同学都需要重修。请你设计一个视图V_RestudyList,用于统计需要重修的学生信息,如系、学号、姓名和课程等。
提示:请使用CREATE VIEW语句作答,并请注意数据表名、列名大小写。
表结构:
学生表(Student)、课程表(Course)和选修表(SC)结构如下:
CREATE TABLE `Student` (
`Sno` varchar(20) NOT NULL,
`Sname` varchar(10) DEFAULT NULL,
`Ssex` varchar(2) DEFAULT NULL,
`Sage` int(3) DEFAULT NULL,
`Sdept` varchar(10) DEFAULT NULL,
PRIMARY KEY (`Sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `Course` (
`Cno` varchar(10) NOT NULL,
`Cname` varchar(20) DEFAULT NULL,
`Cpno` varchar(10) DEFAULT NULL,
`Ccredit` int(3) DEFAULT NULL,
PRIMARY KEY (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `SC` (
`Sno` varchar(20) NOT NULL,
`Cno` varchar(10) NOT NULL,
`Grade` int(3) DEFAULT NULL,
PRIMARY KEY (`Sno`,`Cno`),
KEY `Cno` (`Cno`),
CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`),
CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表样例
Student
表:
Course
表:
SC
表:
输出样例:
视图V_RestudyList
输出:
create view V_RestudyList
as select
Sdept,a.Sno,Sname,Cname
from (select * from SC where Grade < 60 or Grade is null) as a
left join Course on a.Cno = Course.Cno
left join Student on Student.Sno = a.Sno
总结
1、插入:insert into(表) values(要插入的元素)
2、删除:delete from (表)where(删除范围)
3、更新:update(表格)set(要更新的元素)where(更新范围的地位)
4、查询:select(要查找的元素)from(表)where(范围)
5、视图:create view(视图名称)as select(元素) from(表)
我们下个文章见!