数据库实验3报告

更新时间:2023-11-13 09:15:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2013数据库实验

实验三 数据更新、视图、权限管理

实验3.1 数据更新

1 实验内容

(1) 使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。

(2) 使用SELECT INTO语句,产生一个新表并插入数据。

(3) 使用UPDATE语句可以修改制定表中满足WHERE子句条件的元组,有三种修改的方式:修改某个元组的值;修改多个元组的值;带子查询的修改语句。

(4) 使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询的删除语句。

2 实验步骤

在数据库School上按下列要求进行数据更新

可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库 Use School go

(1) 使用SQL语句向STUDENTS表中插入元组(编号:12345678 名字:LiMing EMAIL:

LM@gmail.com 年级:2002)。

Insert into STUDENTS values('12345678','LiMing','LM@gmail.com','2002')

(2) 对每个课程,求学生的选课人数和学生的最高成绩,并把结果存入数据库。使用SELECT

INTO 和INSERT INTO 两种方法实现。

Insert into:

create table Courses_maxScore(cid char(20),Count_courses int ,maxScore int)

insert into Courses_maxScore (cid,Count_courses,maxScore)

select cid,count(*)as Count_courses,max(score) as maxScore from CHOICES group by cid select * from Courses_maxScore

1

2013数据库实验

Select into:

select cid,Count_courses,maxScore into cnCourses_maxScore from Courses_maxScore select * from cnCourses_maxScore

(3) 在STUDENTS表中使用SQL语句将姓名为LiMing.的学生的EMAIL改为LM@qq.com。 update STUDENTS set email='LM@qq.com' where sname='LiMing'

(4) 在TEACHERS表中使用SQL语句将所有教师的工资翻倍。 update TEACHERS set salary=salary*2

2

2013数据库实验

(5) 将姓名为waqcj的学生的课程C++的成绩加10分。 update CHOICES set score=score+10

where cid=(select cid from COURSES where cname='c++') and sid=(select sid from STUDENTS where sname='waqcj')

select score from CHOICES,COURSES,STUDENTS where CHOICES.cid=COURSES.cid and CHOICES.sid=STUDENTS.sid and cname='c++' and sname='waqcj'

(6) 在STUDENTS表中使用SQL语句删除姓名为LiMing的学生信息。 delete from STUDENTS where sname='LIMING'

(7) 删除所有选修课程C的选课记录。

delete from CHOICES where cid=(select cid from COURSES where cname='c' )

delete from CHOICES where no in

(select no from CHOICES,COURSES where CHOICES.cid=COURSES.cid and cname='c') (6011 行受影响)

3

2013数据库实验

select * from CHOICES,COURSES where CHOICES.cid=COURSES.cid and cname='c'

(8) 对COURSES表做删去时间>80的元组的操作,讨论该删除操作所受到的约束。 delete from COURSES where hour>80

select * from COURSES where hour >80

实验3.2 视图操作

1实验内容

(1) 使用CREATE VIEW命令建立视图。 (2) 对视图进行查询

(3) 更新视图

(4) 使用DROP VIEW命令删除视图。

2实验步骤

在数据库School上按下列要求进行视图的有关操作

可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库 Use School go

(1) 建立薪水大于3000的教师的视图t_view,并要求进行修改和插入操作时仍需保证该视

图只有薪水大于3000的教师信息。

create view t_view(salary_new) as

select salary from TEACHERS where salary>3000 with check option

select * from t_view

4

2013数据库实验

(2) 在视图t_view中查询邮件地址为xibl@izd.edu的教师的相关信息。 select * from t_view where email='xibl@izd.edu'

(3) 向视图t_view中插入一个新的教师记录,其中教师编号为199999998,姓名为abc,邮

件地址为abc@def.com,薪水为5000。 insert into t_view values('199999998','abc','abc@def.com',5000)

(4) 在视图t_view中将编号为200010493的教师的薪水改为6000。 update t_view set salary=6000 where tid='200010493'

(5) 删除视图t_view。 drop view t_view

select * from t_view

5

本文来源:https://www.bwwdw.com/article/89ev.html

Top