13信管实验报告.docx
《13信管实验报告.docx》由会员分享,可在线阅读,更多相关《13信管实验报告.docx(49页珍藏版)》请在冰豆网上搜索。
13信管实验报告
《数据库原理与技术》实验报告
专业信息管理与信息系统
班级信管132班
学号 131406070201
学生姓名阿布都拉·吐鲁甫
指导老师米晓红
河南科技大学管理学院
2015年06月20日
实验一:
数据定义及更新语句练习
一、实验目的
熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。
二、实验内容
(1)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
(2)分别使用插入、删除、修改的方式更新基本表中的数据。
a.利用Insert语句将习题中给出的示例记录插入各表。
b.利用Update更新表中的记录:
①将p表中的所有红色零件的重量增加5。
②将spj表中所有天津供应商的QTY属性值减少10。
用子查询。
c.利用Delete语句删除p表中的所有红色零件的记录。
SQL语句执行后返回基本表查看更新后的结果,如果与期望不符,分析原因并记录在实验报告中。
三、完成情况
CREATETABLES
(SNOCHAR(9)PRIMARYKEY,
SNAMECHAR(20)UNIQUE,
STATUSSMALLINT,
CITYCHAR(20)
);
CREATETABLEP
(PNOCHAR(9)PRIMARYKEY,
PNAMECHAR(20),
COLORCHAR(20),
WEIGHTSMALLINT
);
CREATETABLEJ
(JNOCHAR(9)PRIMARYKEY,
JNAMECHAR(20)UNIQUE,
CITYCHAR(20)
);
CREATETABLESPJ
(SNOCHAR(9),
PNOCHAR(9),
JNOCHAR(9),
QTYSMALLINT,
PRIMARYKEY(SNO,PNO,JNO),
FOREIGNKEY(SNO)REFERENCESS(SNO),
FOREIGNKEY(PNO)REFERENCESP(PNO),
FOREIGNKEY(JNO)REFERENCESJ(JNO)
);
INSERT
INTOS(SNO,SNAME,STATUS,CITY)
VALUES('S1','精益',20,'天津');
INSERT
INTOS
VALUES('S2','盛锡',10,'北京');
INSERT
INTOS
VALUES('S3','东方红',30,'北京');
INSERT
INTOS
VALUES('S4','丰泰盛',20,'天津');
INSERT
INTOS
VALUES('S5','为民',30,'上海');
INSERT
INTOP(PNO,PNAME,COLOR,WEIGHT)
VALUES('P1','螺母','红',12);
INSERT
INTOP
VALUES('P2','螺栓','绿',17);
INSERT
INTOP
VALUES('P3','螺丝刀','蓝',14);
INSERT
INTOP
VALUES('P4','螺丝刀','红',14);
INSERT
INTOP
VALUES('P5','凸轮','蓝',40);
INSERT
INTOP
VALUES('P6','车轮','红',30);
INSERT
INTOJ(JNO,JNAME,CITY)
VALUES('J1','三建','北京');
INSERT
INTOJ
VALUES('J2','一汽','长春');
INSERT
INTOJ
VALUES('J3','弹簧厂','天津');
INSERT
INTOJ
VALUES('J4','造船厂','天津');
INSERT
INTOJ
VALUES('J5','机车厂','唐山');
INSERT
INTOJ
VALUES('J6','无线电厂','常州');
INSERT
INTOJ
VALUES('J7','半导体厂','南京');
INSERT
INTOSPJ(SNO,PNO,JNO,QTY)
VALUES('S1','P1','J1',200);
INSERT
INTOSPJ(SNO,PNO,JNO,QTY)
VALUES('S1','P1','J3',100);
INSERT
INTOSPJ
VALUES('S1','P1','J4',700);
INSERT
INTOSPJ
VALUES('S1','P2','J2',100);
INSERT
INTOSPJ
VALUES('S2','P3','J1',400);
INSERT
INTOSPJ
VALUES('S2','P3','J2',200);
INSERT
INTOSPJ
VALUES('S2','P3','J4',500);
INSERT
INTOSPJ
VALUES('S2','P3','J5',400);
INSERT
INTOSPJ
VALUES('S2','P5','J1',400);
INSERT
INTOSPJ
VALUES('S2','P5','J2',100);
INSERT
INTOSPJ
VALUES('S3','P1','J1',200);
INSERT
INTOSPJ
VALUES('S3','P3','J1',200);
INSERT
INTOSPJ
VALUES('S4','P5','J1',100);
INSERT
INTOSPJ
VALUES('S4','P6','J3',300);
INSERT
INTOSPJ
VALUES('S4','P6','J4',200);
INSERT
INTOSPJ
VALUES('S5','P2','J4',100);
INSERT
INTOSPJ
VALUES('S5','P3','J1',200);
INSERT
INTOSPJ
VALUES('S5','P6','J2',200);
INSERT
INTOSPJ
VALUES('S5','P6','J4',500);
UPDATEP
SETWEIGHT=WEIGHT+5
WHERECOLOR='红';
UPDATESPJ
SETQTY=QTY-10
WHERESNOIN
(SELECTSNO
FROMS
WHERECITY='天津');
DELETE
FROMSPJ
WHEREPNOIN
(SELECTPNO
FROMP
WHERECOLOR='红');
DELETE
FROMP
WHERECOLOR='红';
四、实验结果
Exe1-1
Exe1-2
Exe1-3
Exe1-4
五、问题与解决
(小四号字,宋体)
1.实验中遇到的问题及解决过程
2.实验中产生的错误及原因分析
首先写出执行语句不成功的时候系统报告的错误信息。
然后分析错误原因,并给出解决办法。
六、思考题
回答思考题提出的问题。
(小四号字,宋体)
七、实验总结
实验体会和收获。
(小四号字,宋体)
实验二:
简单查询和连接查询
一、实验目的
熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、实验内容
(一)完成下面的简单查询:
①查询所有“天津”的供应商明细;
②查询所有“红色”的14公斤以上的零件。
③查询工程名称中含有“厂”字的工程明细。
(二)完成下面的连接查询:
①等值连接:
求s表和j表的相同城市的等值连接。
②自然连接:
查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:
求s和p表的笛卡尔积。
④左连接:
求j表和spj表的左连接。
⑤右连接:
求spj表和j表的右连接。
三、完成情况
CREATETABLES
(SNOCHAR(9)PRIMARYKEY,
SNAMECHAR(20)UNIQUE,
STATUSSMALLINT,
CITYCHAR(20)
);
CREATETABLEP
(PNOCHAR(9)PRIMARYKEY,
PNAMECHAR(20),
COLORCHAR(20),
WEIGHTSMALLINT
);
CREATETABLEJ
(JNOCHAR(9)PRIMARYKEY,
JNAMECHAR(20)UNIQUE,
CITYCHAR(20)
);
CREATETABLESPJ
(SNOCHAR(9),
PNOCHAR(9),
JNOCHAR(9),
QTYSMALLINT,
PRIMARYKEY(SNO,PNO,JNO),
FOREIGNKEY(SNO)REFERENCESS(SNO),
FOREIGNKEY(PNO)REFERENCESP(PNO),
FOREIGNKEY(JNO)REFERENCESJ(JNO)
);
INSERT
INTOS(SNO,SNAME,STATUS,CITY)
VALUES('S1','精益',20,'天津');
INSERT
INTOS
VALUES('S2','盛锡',10,'北京');
INSERT
INTOS
VALUES('S3','东方红',30,'北京');
INSERT
INTOS
VALUES('S4','丰泰盛',20,'天津');
INSERT
INTOS
VALUES('S5','为民',30,'上海');
INSERT
INTOP(PNO,PNAME,COLOR,WEIGHT)
VALUES('P1','螺母','红',12);
INSERT
INTOP
VALUES('P2','螺栓','绿',17);
INSERT
INTOP
VALUES('P3','螺丝刀','蓝',14);
INSERT
INTOP
VALUES('P4','螺丝刀','红',14);
INSERT
INTOP
VALUES('P5','凸轮','蓝',40);
INSERT
INTOP
VALUES('P6','车轮','红',30);
INSERT
INTOJ(JNO,JNAME,CITY)
VALUES('J1','三建','北京');
INSERT
INTOJ
VALUES('J2','一汽','长春');
INSERT
INTOJ
VALUES('J3','弹簧厂','天津');
INSERT
INTOJ
VALUES('J4','造船厂','天津');
INSERT
INTOJ
VALUES('J5','机车厂','唐山');
INSERT
INTOJ
VALUES('J6','无线电厂','常州');
INSERT
INTOJ
VALUES('J7','半导体厂','南京');
INSERT
INTOSPJ(SNO,PNO,JNO,QTY)
VALUES('S1','P1','J1',200);
INSERT
INTOSPJ(SNO,PNO,JNO,QTY)
VALUES('S1','P1','J3',100);
INSERT
INTOSPJ
VALUES('S1','P1','J4',700);
INSERT
INTOSPJ
VALUES('S1','P2','J2',100);
INSERT
INTOSPJ
VALUES('S2','P3','J1',400);
INSERT
INTOSPJ
VALUES('S2','P3','J2',200);
INSERT
INTOSPJ
VALUES('S2','P3','J4',500);
INSERT
INTOSPJ
VALUES('S2','P3','J5',400);
INSERT
INTOSPJ
VALUES('S2','P5','J1',400);
INSERT
INTOSPJ
VALUES('S2','P5','J2',100);
INSERT
INTOSPJ
VALUES('S3','P1','J1',200);
INSERT
INTOSPJ
VALUES('S3','P3','J1',200);
INSERT
INTOSPJ
VALUES('S4','P5','J1',100);
INSERT
INTOSPJ
VALUES('S4','P6','J3',300);
INSERT
INTOSPJ
VALUES('S4','P6','J4',200);
INSERT
INTOSPJ
VALUES('S5','P2','J4',100);
INSERT
INTOSPJ
VALUES('S5','P3','J1',200);
INSERT
INTOSPJ
VALUES('S5','P6','J2',200);
INSERT
INTOSPJ
VALUES('S5','P6','J4',500);
SELECT*
FROMS
WHERECITY='天津';
SELECTPNAME
FROMP
WHERECOLOR='红'ANDWEIGHT>14;
SELECT*
FROMJ
WHEREJNAMELIKE'%厂';
SELECT*
FROMS,J
WHERES.CITY=J.CITY;
SELECTS.SNAME,J.JNAME,P.PNAME
FROMS,J,P,SPJ
WHERES.SNO=SPJ.SNOANDJ.JNO=SPJ.JNOANDP.PNO=SPJ.PNO;
SELECT*
FROMP,S;
SELECT*
FROMJLEFTOUTERJOINSPJON(J.JNO=SPJ.JNO);
SELECT*
FROMSPJRIGHTOUTERJOINJON(SPJ.JNO=J.JNO);
四、实验结果
Exe2-1
Exe2-2
Exe2-3
Exe2-4
Exe2-5
Exe2-6
Exe2-7
Exe2-8
五、问题与解决
(小四号字,宋体)
1.实验中遇到的问题及解决过程
2.实验中产生的错误及原因分析
首先写出执行语句不成功的时候系统报告的错误信息。
然后分析错误原因,并给出解决办法。
六、思考题
回答思考题提出的问题。
(小四号字,宋体)
七、实验总结
实验体会和收获。
(小四号字,宋体)
实验三:
分组查询和嵌套查询
一、实验目的
熟练掌握用SQL语句实现多个数据表的分组查询和嵌套查询。
二、实验内容
(一)分组查询:
1、求各种颜色零件的平均重量。
2、求北京供应商和天津供应商的总个数。
3、求各供应商供应的零件总数。
4、求各供应商供应给各工程的零件总数。
5、求使用了100个以上P1零件的工程名称。
6、求各工程使用的各城市供应的零件总数。
(二)嵌套查询:
1、in连接谓词查询:
①查询没有使用天津供应商供应的红色零件的工程名称。
②查询供应了1000个以上零件的供应商名称。
(having)
2、比较运算符:
求重量大于所有零件平均重量的零件名称。
3、Exists连接谓词:
①查询供应J1的所有的零件都是红色的供应商名称。
②至少用了供应商S1所供应的全部零件的工程号JNO。
三、完成情况
CREATETABLES
(SNOCHAR(9)PRIMARYKEY,
SNAMECHAR(20)UNIQUE,
STATUSSMALLINT,
CITYCHAR(20)
);
CREATETABLEP
(PNOCHAR(9)PRIMARYKEY,
PNAMECHAR(20),
COLORCHAR(20),
WEIGHTSMALLINT
);
CREATETABLEJ
(JNOCHAR(9)PRIMARYKEY,
JNAMECHAR(20)UNIQUE,
CITYCHAR(20)
);
CREATETABLESPJ
(SNOCHAR(9),
PNOCHAR(9),
JNOCHAR(9),
QTYSMALLINT,
PRIMARYKEY(SNO,PNO,JNO),
FOREIGNKEY(SNO)REFERENCESS(SNO),
FOREIGNKEY(PNO)REFERENCESP(PNO),
FOREIGNKEY(JNO)REFERENCESJ(JNO)
);
INSERT
INTOS(SNO,SNAME,STATUS,CITY)
VALUES('S1','精益',20,'天津');
INSERT
INTOS
VALUES('S2','盛锡',10,'北京');
INSERT
INTOS
VALUES('S3','东方红',30,'北京');
INSERT
INTOS
VALUES('S4','丰泰盛',20,'天津');
INSERT
INTOS
VALUES('S5','为民',30,'上海');
INSERT
INTOP(PNO,PNAME,COLOR,WEIGHT)
VALUES('P1','螺母','红',12);
INSERT
INTOP
VALUES('P2','螺栓','绿',17);
INSERT
INTOP
VALUES('P3','螺丝刀','蓝',14);
INSERT
INTOP
VALUES('P4','螺丝刀','红',14);
INSERT
INTOP
VALUES('P5','凸轮','蓝',40);
INSERT
INTOP
VALUES('P6','车轮','红',30);
INSERT
INTOJ(JNO,JNAME,CITY)
VALUES('J1','三建','北京');
INSERT
INTOJ
VALUES('J2','一汽','长春');
INSERT
INTOJ
VALUES('J3','弹簧厂','天津');
INSERT
INTOJ
VALUES('J4','造船厂','天津');
INSERT
INTOJ
VALUES('J5','机车厂','唐山');
INSERT
INTOJ
VALUES('J6','无线电厂','常州');
INSERT
INTOJ
VALUES('J7','半导体厂','南京');
INSERT
INTOSPJ(SNO,PNO,JNO,QTY)
VALUES('S1','P1','J1',200);
INSERT
INTOSPJ(SNO,PNO,JNO,QTY)
VALUES('S1','P1','J3',100);
INSERT
INTOSPJ
VALUES('S1','P1','J4',700);
INSERT
INTOSPJ
VALUES('S1','P2','J2',100);
INSERT
INTOSPJ
VALUES('S2','P3','J1',400);
INSERT
INTOSPJ
VALUES('S2','P3','J2',200);
INSERT
INTOSPJ
VALUES('S2','P3','J4',500);
INSERT
INTOSPJ
VALUES('S2','P3','J5',400);
INSERT
INTOSPJ
VALUES('S2','P5','J1',400);
INSERT
INTOSPJ
VALUES('S2','P5','J2',100);
INSERT
INTOSPJ
VALUES('S3','P1','J1',200);
INSERT
INTOSPJ
VALUES('S3','P3','J1',200);
INSERT
INTOSPJ
VALUES('S4','P5','J1',100);
INSERT
INTOSPJ
VALUES('S4','P6','J3',300);
INSERT
INTOSPJ
VALUES('S4','P6','J4',200);
INSERT
INTOSPJ
VALUES('S5','P2','J4',100);
INSERT
INTOSPJ
VALUES('S5','P3','J1',200);
INSERT
INTOSPJ
VALUES('S5','P6','J2',200);
INSERT
INTOSPJ
VALUES('S5','P6','J4',500);
SELECTCOLOR,AVG(WEIGHT)
FROMPGROUPBYP.COLOR;
SELECTCITY,COUNT(*)
FROMS
WHERECITY='北京'ORCITY='天津'
GROUPBYCITY;
SELECTSUM(QTY)
FROMSPJ;
SELECTSNO,SUM(QTY)
FROMSPJGROUPBYSPJ.SNO;
SELECTJ.JNAME
FROMJWHEREJ.JNOIN(SELECTSPJ.JNO
FROMSPJ
WHERESPJ.PNO='P1'ANDSPJ.QTY>100);
SELECTS.CITY,SUM(SPJ.QTY)
FROMSPJ,S
WHERES.SNO=SPJ.SNOGROUPBYS.CITY;
SELECTJ.JNAME
FROMJ
WHEREJNOIN(SELECTJNO
FROMSPJ,P
WHEREJ.CITY!
='天津'ANDP.COLOR='红');
SELECTJ.JNAME
FROMJ
WHEREJ.JNOIN(SELECTSPJ.JNO
FROMSPJGROUPBYSPJ.JNO
HAVINGSUM(SPJ.QTY)>1000);
SELECTP.PNAME
FROMP
WHEREP.WEIGHT>=ANY(SELECTAVG(WEIGHT)FROMP);
SELECTSNAME
FROMS
WHERENOTEXISTS
(SELECT*
FROMSPJ
WHEREJNO='J1'ANDSNO=S.SNOAND