实验二总结报告.docx
- 文档编号:531164
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:7
- 大小:18.11KB
实验二总结报告.docx
《实验二总结报告.docx》由会员分享,可在线阅读,更多相关《实验二总结报告.docx(7页珍藏版)》请在冰豆网上搜索。
实验二总结报告
实验名称:
学号:
《数据库原理与应用》实验报告
实验二 班 级:
软件工程
姓 名:
一、实验目的
1.掌握使用 SQL 语句创建和删除数据表,创建各种完整性约束。
2.掌握使用 SQL 语句修改表的结构。
3.掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。
二、实验过程
1.使用 SQL 语句建立 4 个关系,:
供应商表 S (Sno, Sname, City)
零件表 P(Pno, Pname, Color, Weight)
工程项目表 J(Jno, Jname, City)
供应情况表 SPJ(Sno, Pno, Jno, QTY)
创建 S 表的语句为:
create table s(sno varchar2(20) primary key,
sname varchar2(40) unique,
city varchar2(10));
语句的执行结果为:
1 / 20
创建 p 表的语句为:
create table p(pno varchar2(20) primary key,
pname varchar2(40),
color varchar2(10),
weight number check(weight>=1 and weight<=50));
语句的执行结果为:
创建 j 表的语句为:
create table j(jno varchar2(20) primary key,
jname varchar2(40) unique not null,
city varchar2(10));
2 / 20
语句的执行结果为:
创建 spj 表的语句为:
create table spj(sno varchar2(20),
pno varchar2(20),
jno varchar(20),
qty number(5),
primary key(sno,pno,jno),
foreign key (sno) references s(sno),
foreign key (pno) references p(pno),
foreign key (jno) references j(jno));
语句的执行结果为:
3 / 20
2. 用 SQL 语句完成以下操作
(1)给 S 表增加 Sphone 和 Semail 两个属性列,分别用来存放供应商的联系电
话和电子信箱。
语句:
alter table s add sphone varchar2(15);
alter table s add semail varchar2(40);
执行结果:
(2)删除 Jname 属性列取值唯一的约束。
语句:
alter table j drop constraint SYS_C0011066;
执行结果:
(3)将 QTY 属性列的数据类型修改为 Integer 型。
语句:
alter table spj modify qty integer;
执行结果:
(4)删除 S 表中的属性列 Semail
语句:
alter table s drop column semail;
执行结果:
4 / 20
3.在 J 表的 Jname 属性列上创建唯一性索引。
语句:
create unique index sy on j(jname);
执行结果:
4.使用 EXP 命令将创建的四张数据表导出。
执行结果:
5.在创建的 S,P,J 和 SPJ 表中完成以下查询:
(1)查询所有供应商所在的城市。
select distinct city from s;
5 / 20
(2)查询零件重量在 10-20 之间(包括 10 和 20)的零件名和颜色。
select pname,color from p where weight between 10 and 20;
6 / 20
(3)查询工程项目的总个数。
select count(distinct jno) from j;
7 / 20
(4)查询所有零件的平均重量。
select avg(weight) from p;
(5)查询供应商 S3 供应的零件号。
select pno from spj where sno='s3';
8 / 20
(6)查询各个供应商号及其供应了多少类零件。
select sno,count(distinct pno) from spj group by sno;
(7)查询供应了 2 类以上零件的供应商号。
select sno from spj group by sno having count(distinct pno)>2;
9 / 20
(8)查询零件名以“螺”字开头的零件信息。
select * from p where pname like '螺%';
(9)查询工程项目名中最后一个字为“厂”字的工程项目所在的城市。
select city from j where jname like '%厂';
10 / 20
(10)查询给每个工程供应零件的供应商的个数。
select jno,count(distinct sno) from spj group by jno;
(11)查询供应数量在 1000—2000 之间(包括 1000 和 2000)的零件名称。
select pname from p where pno in
(select pno from spj group by pno having sum(qty)>=1000 and sum(qty)<=2000);
11 / 20
6.将实验一中创建的三张表 student,course 和 sc 用 IMP 命令导入,在导入的
三张表中完成以下查询:
(1)查询“信息管理与信息系统”专业学生的姓名和年龄。
select sname,trunc((sysdate-birth)/365) sage from student where major='信息
管理与信息系统';
(2)查询 107 号课程的最高成绩。
select max(grade) from sc where cno='107';
12 / 20
(3)统计每个专业的学生人数。
select major,count(major) 人数 from student group by major;
(4)统计每门课程的修课人数和考试最高分。
select cno,count(distinct sno) 人数,max(grade) 最高分 from sc group by cno;
13 / 20
(5)查询总成绩超过 200 分的学生,要求列出学号和总成绩。
select sno,sum(grade) from sc group by sno having sum(grade)>200;
(6)查询姓名为田丕龙的学生所学课程的课程名与学分。
select cname,gredit from course where cno in
(select cno from sc where sno in
(select sno from student where sname='田丕龙'));
14 / 20
(7)查询选修课程号为“160”或“304”的学生的学号。
select sno from sc where cno='160' or cno='304';
(8)查询选修了课程号为“160”和“304”的学生的学号。
select x.sno from sc x,sc ywhere x.sno=y.sno and o='160' and o='304';
15 / 20
(9)查询学习全部课程的学生姓名。
select sname from student where sno in
(select sno from sc group by sno having count(cno)=
(select count(cno) from course));
(10)查询 1994 年 1 月 1 日以前出生的学生的姓名和专业。
select sname,major from student where to_date('1994/01/01','yyyy/mm/dd')-
birth>=0;
16 / 20
(11)查询选修了“大学英语 4”课程且成绩在 90 分以上的学生姓名。
select sname from student where sno in
(select sno from sc where grade>90 and cno in
(select cno from course where cname='大学英语 4'));
(12)查询选修了 5 门以上课程的学生学号和姓名。
select sno,sname from student where sno in
(select sno from sc group by sno having count(cno)>5);
17 / 20
(13)查询未选修“政治经济学”课程的学生情况。
select * from student where sno!
=all
(select sno from sc where cno in
(select cno from course where cname='政治经济学'));
(14)统计 102 和 378 号课程的选课人数及平均成绩。
select cno,count(sno) 人数,avg(grade) from sc group by cno having cno='102' or
cno='378';
18 / 20
(15)查询比所有“信息管理与信息系统”专业学生年龄都大的学生。
select * from student where birth<
(select min(birth) from student where major='信息管理与信息系统');
(16)将“计算机科学与技术”专业的学生按出生时间先后排序。
select * from student where major='计算机科学与技术' order by birth asc;
19 / 20
三、实验总结
20 / 20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 总结报告
![提示](https://static.bdocx.com/images/bang_tan.gif)