数据库 实验三 数据更新与视图

(1)学生“刘家顺”要退学,请删除该学生的所有记录,包括选课记录和学生
记录。
delete 
from sc
where sno =
(select sno
from student
where sname='刘家顺');

delete 
from student
where sname='刘家顺';
commit;
(2)田小亮同学要转专业,他的学号为103465,将该同学的专业由原来的
“软件工程”改为“计算机科学与技术”,班级由原来的“软工3班”修改为“计算
机1班”。
update student
set smajor='计算机科学与技术',sclass='计算机1班'
where sno='103465';
commit;
(3)删除选修了“嵌入式系统与应用”但没有及格的选课记录。
delete 
from sc
where grade<60 and cno in
(select cno
from course
where cname='嵌入式系统与应用');
commit;
(4)将元组(1203076,吕一鸣,男,1985/11/8,讲师,体育部)插入教
师关系。
insert 
into teacher(tno,tname,tsex,tbirth,ttitle,tcollege)
values('1203076','吕一鸣','男',to_date('1985/11/8','yyyy/mm/dd'),
'讲师','体育部');
commit;
(5)在course表中插入以下两门课程信息: 
课程号:3094217,课程名:图与网络,课程学分:2,课程性质:选修,课
程学时:32,开课学期:6
课程号:3094215,课程名:智能搜索与推荐技术,课程学分:2,课程性
质:选修,课程学时:32,开课学期:7
insert
into course
values('3094217','图与网络',2,'选修',32,'6');
insert
into course
values('3094215','智能搜索与推荐技术',2,'选修',32,'7');
commit;
(6)创建名为xg_view的视图,在视图中显示所有信息工程学院教师的授课
信息,包括教师姓名,职称,所授课程名称,授课班级,授课学期。
create view xg_view(tno,ttitle,cname,tclass,tterm)
as
select teacher.tno,ttitle,cname,sclass,cterm
from teacher,course,tc
where teacher.tno=tc.tno and tc.cno=course.cno;

(7)创建每个学生已修课程总学分的视图,视图名为xf_view,要求在视
图中显示学生学号、姓名和总学分。
create view xf_view(sno,sname,credit)
as
select student.sno,sname,sum(credit)
from sc,student,course
where student.sno=sc.sno and course.cno=sc.cno 
group by student.sno,sname;

(8)在创建的视图中查询大数据2班每位学生已修的总学分。
select credit
from xf_view
where sno in
(select sno
from student
where sclass='大数据2班');

(9)在系统表user_updatable_columns中查看视图xf_view是否可以更新
,如果不能请分析原因。


(1)现有一供应商,代码为s9、姓名为英特尔、所在城市西安,供应情况
如下:供应零件p5给工程j7数量为600,供应零件p4给工程j4数量为500,
请将此供应商的信息和供应信息插入数据库。
insert 
into s(sno,sname,city)
values('s9','英特尔','西安');
commit;
insert 
into spj
values('s9','p5','j7',600);
insert 
into spj
values('s9','p4','j4',500);
commit;

(2)请将北京供应商的供应数量加150。
update spj
set qty=qty+150
where sno in
(select sno
from s
where city='北京');
commit;

(3)把全部红色零件的颜色改为黑色。
update p
set color='黑色'
where color='红色';
commit;

(4)由s5供给j4的零件p6改为由s1供应。
update spj
set sno='s1'
where sno='s5' and pno='p6' and jno='j4';
commit;
(5)请将(s2,j7,p4,510)插入供应情况关系。

(6)零件p1已经停产,请将p1的相关信息从数据库中删除。
delete
from spj
where pno='p1';
delete 
from p
where pno='p1';
commit;
(7)创建零件名为螺丝刀的供应情况的视图sd_view,视图中显示供应商
名(Sname),零件名(Pname),零件重量(Weight),工程项目代码
(Jno),供应数量(QTY)。
create view sd_view(sname,pname,weight,jno,qty)
as
select sname,pname,weight,jno,qty
from s,p,spj
where s.sno=spj.sno and p.pno=spj.pno and pname='螺丝刀';

(8)在视图sd_view中查询供应数量在400到600之间的供应商姓名。
select distinct sname
from sd_view
where qty>=400 and qty<=600;
(9)请为三建工程项目建立一个供应情况的视图SJ_View,包括供应商编
号,零件编号,供应数量。
create view sj_view(sno,pno,qty)
as
select sno,pno,qty
from spj,j
where spj.jno=j.jno and jname='三建';

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实验三 数据查询 一. 目的 通过对二中建立的学生数据库关系表和视图的各种查询的操作,加深对SQL查询语言的了解,掌握相关查询语句的语法和使用方法。 二. 要求 (1) 用SQL语句完成以上操作 (2) 要求学生独立完成以上内容。 (3) 完成后完成要求的报告内容。 环境 操作系统:Microsoft Windows 7旗舰版 (32位)。 硬件:容量足以满足Sybase 12.5.1安装及后续的使用。 软件:数据库版本:Sybase 12.5.1 。 四. 内容 1. 数据库关系表查询: (1) 简单的查询操作,包括单表的查询、选择条件、结果排序等的练习; (2) 多表的连接查询,包括等值连接、自然连接等; (3) 复杂的查询操作,包括使用分组函数等库函数的查询操作; (4) 练习带有IN、比较符的嵌套查询。 具体内容包括: (1)在简单查询中,在sql语句完成以下查询操作: 查询“数据库原理”课程的学分; 查询选修了课程编号为“C01”的学生的学号和成绩,并将成绩按降序输出; 查询学号为“31401”的学生选修的课程编号和成绩; 查询选修了课程编号为“C01”且成绩高于85分的学生的学号和成绩。 (2)在多表连接的查询中,在SQL SERVER提供的交互式语言环境下用Transact SQL语句完成以下查询操作: 查询选修了课程编号为“C01”且成绩高于85分的学生的学号、姓名和成绩; 查询所有学生的学号、姓名、选修的课程名称和成绩; (3)在复杂查询中,用 SQL语句完成以下查询操作: 查询至少选修了门课程的学生的学号和姓名; 查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的。 (4)在嵌套查询中,在MySQL 5.5提供的交互式语言环境下用iSQL语句完成以下查询操作,要求写嵌套查询语句 查询选修了数据库原理的学生的学号和姓名; 查询没有选修数据库原理的学生的学号和姓名; 查询至少选修了学号为“31401”的学生所选修的所有课程的学生的学号和姓名。 2. 视图查询: 对二建立的视图进行相关的查询操作,如: 查询选修了课程编号为“C01”的学生的学号和成绩; 查询所有学生的学号、姓名、选修的课程名称和成绩; 查询选修了数据库原理的学生的学号和姓名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值