山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24
实验二 数据查询
一.实验目的
1.理解数据库中数据的其他查询方法和应用; 2.学会各种查询要求的实现;
3.学会各种查询的异同及相互之间的转换方法。
二.实验内容
1.实验代码
--1.查询供应商号码为S1的供应商的名称SNAME,所在城市CITY
Select SNAME,CITY FROM S WHERE SNO=\'S1\';
--2.查询颜色为红色的零件号码 select pno from p where color=\'红\';
--3.查询工程所在地为天津的工程名称JNAME select jname from j where city=\'天津\';
--4.查询供应商号和名称,分别用小写字母和大写字母表示供应商代码 select upper(sno) 大写,lower(sno) 小写, sname from s;
--5.查询零件的详细信息,用结果属性名用中文显示
select pno 零件代码,pname 零件名,color 颜色, weight 重量 from p;
--6.查询供应工程J1零件P1的供应商号SNO select sno from spj where jno=\'j1\' and pno=\'p1\';
--7.查询供应商的名称和所在城市,并按照所在城市升序排序,同一个城市的按照供应商的名称降序排序
select sname,city from s order by city ASC,sname DESC; 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24 --8.查询使用供应商S1所供应零件的工程号码 select jno from spj where sno=\'s1\';
--9.查询各种零件的平均重量 select AVG(weight) from p;
--修改货物表中的P表的weight的数据类型 alter table p alter column weight float;
--10.查询零件的总个数
select sum(QTY) 零件总和 from spj;
--11.from p where pname like \'螺%\';
--12.查询各个供应商供应的零件P3总数量
select sum(qty) from spj where pno=\'p3\';
--13.供应工程J1红色零件的供应商号SNO
select distinct sno from spj, p where p.pno=spj.pno and (jno=\'j1\' and color=\'红\');
--14.工程项目J2使用的各种零件的名称及数量
select distinct pname,qty from p, spj where p.pno=spj.pno and jno=\'j2\';
--15.使用上海产的零件的工程的名称
select distinct jname from s, j, spj where s.city=\'上海\' and (s.sno=spj.sno and j.jno=spj.jno); 查询所有以“螺”字开头的零件的零件号、零件名和颜色
select pno,pname,color 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24 --16.所有项目的使用零件的情况(无论有没有使用零件),包括项目代码、项目名称、零件代码和零件数量
select distinct spj.jno, j.jname, pno, qty from spj, j where spj.jno=j.jno;
--17.供应商S1和S3供应的相同的零件编号
select pno from spj where sno=\'s1\' intersect select pno from spj where sno=\'s3\';
--18.没有使用天津产的零件的工程号码
select distinct jno from spj where sno in( (select sno from s where city != \'天津\') ); --19.没有使用天津供应商生产的红色零件的工程号
select distinct jno from spj where jno not in( select jno from spj,s,p where (s.city=\'天津\' and p.color=\'红\' ) and (s.sno=spj.sno and p.pno=spj.pno));
--20.至少用了供应商S1所供应的全部零件的工程号Jno
select jno from spj where pno=\'p1\' and jno in(
select jno
--21.基于学生选课数据库,验证课本上数据查询相关的示例
select *
from spj where pno=\'p2\'); 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24 from student;
select sname,\'Year of Birth:\',2014-sage,lower(sdept) from student;
--查询至少选修了学生201215122选修的全部课程的学生号码 --不存在这样的课程y,学生201215122选修了y,而学生x没有选 select distinct sno from sc scx where not exists
( select *
select distinct sno from sc scx where not exists
( select scy.cno
--查询选修了课程名为“信息系统”的学生学号和姓名 select sno,sname from student where sno in (
select sno
from sc where cno in (
select cno
from course
where cname=\'信息系统\'
)
);
from sc scy
where scy.sno=\'201215122\' and scy.cno not in (select scz.cno from sc scz
where scz.sno=scx.sno));
from sc scy
where scy.sno=\'201215122\' and not exists (select *
from sc scz where scz.sno=scx.sno and scz.cno=scy.cno)); 山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24
运行结果
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24
17、
18、
21、
19、20、
1、
2、三. 实验总结
3、
通过本次实验,我了解了理解数据库中数据的其他查询方法和应用,学会各种查询要求的实现,学会各种查询的异同及相互之间的转换方法。在实验过山东建筑大学 计算机学院 实验报告
班级: 姓名: 学号: 实验成绩:
课程:数据库系统概论 同组者: 实验日期: 2018.04.24 程中,有的看不懂题意,通过询问同学解决了,也有的不会做,答案也看不懂,最后询问老师,然后自己认真看看,最后解决问题了。