实验七:查询(5)——数据更新与视图

本文展示了多个SQL语句示例,涉及新增课程、删除低分选课记录、修改学生信息、安排课程、更新联系信息、调整成绩以及创建视图以统计无选课学生和需重修名单。这些操作涵盖了数据库管理中的常见场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

10-1 80.理学院(CS)新开一门课程“数学建模”,课程编号20, 学分4,学时72,选修课程,最多选课人数为50

10-2 86.删除所有期末成绩小于60分的选课记录

10-3 85.将学号为012005001的学生班级改为计算机科学与技术2班(GId=02),联系电话置为空值(NULL)

10-4 87.删除学号为012005001的所有选课记录

10-5 78.为洪玉飞老师(教师编号:03012)安排软件工程1班(班级编号:04)的数据库课程(课程编号:1),上课教师为NB201,

10-6 81.将李飞同学的联系方式改为661010

10-7 82.如果平时成绩大于90,则将总评成绩低于70的重置为70

10-8 88.删除所有选修了"数据库"课程的选课记录

10-9 创建视图图统计没有选课的学生信息

表结构:

表样例

输出样例:

10-10 创建视图统计需要重修的名单

表结构:

表样例

输出样例:


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(表)

 


 我们下个文章见!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值