实验一:数据定义及更新语句练习
1.实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新. 2.实验内容:
(一)用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)
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。 (二)分别使用插入、删除、修改的方式更新基本表中的数据。 3.完成情况(附上设计的SQL语句)。
CREATE DATABASE MySPJ use MySPJ
CREATE TABLE S(SNO varchar(10),SNAME NVARCHAR(10),STATUS TINYINT,CITY NVARCHAR(10),PRIMARY KEY(SNO))
CREATE TABLE P(PNO NVARCHAR(5),PNAME NVARCHAR(10),COLOR NVARCHAR(10),WEIGHT SMALLINT,PRIMARY KEY(PNO))
CREATE TABLE J(JNO VARCHAR(5),JNAME NVARCHAR(10),CITY NVARCHAR(10),PRIMARY KEY(JNO))
CREATE TABLE SPJ(SNO varchar(10),PNO NVARCHAR(5),JNO VARCHAR(5),QTY SMALLINT,PRIMARY KEY(SNO,PNO,JNO),
FOREIGN KEY (SNO) REFERENCES S(SNO) on delete cascade,
FOREIGN KEY (PNO) REFERENCES P(PNO) on delete cascade,
FOREIGN KEY (JNO) REFERENCES J(JNO) on delete cascade)
insert into s values('S1','精益',20,'天津')
insert into s values('S2','盛锡',10,'北京')
insert into s values('S3','东方红',30,'北京')
insert into s values('S4','丰泰盛',20,'天津')
insert into s values('S5','为民',30,'上海')
insert into p values('P1','螺母','红',12) insert into p values('P2','螺栓','绿',17) insert into p values('P3','螺丝刀','蓝',14)
insert into p values('P4','螺丝刀','红',14) insert into p values('P5','轮','蓝',40) insert into p values('P6','齿轮','红',30)
insert into J VALUES('J1','三建','北京')
insert into J VALUES('J2','一汽','长春')
insert into J VALUES('J3','弹簧厂','天津')
insert into J VALUES('J4','造船厂','天津')
insert into J VALUES('J5','机车厂','唐山')
insert into J VALUES('J6','无线电厂','常州')
insert into J VALUES('J7','半导体厂','南京')
insert into spj values('S1','P1','J1',200) insert into spj values('S1','P1','J3',100) insert into spj values('S1','P1','J4',700)
insert into spj values('S1','P2','J2',100) insert into spj values('S2','P3','J1',400) insert into spj values('S2','P3','J2',200) insert into spj values('S2','P3','J4',500) insert into spj values('S2','P3','J5',400) insert into spj values('S2','P5','J1',400) insert into spj values('S2','P5','J2',100) insert into spj values('S3','P1','J1',200) insert into spj values('S3','P3','J1',200) insert into spj values('S4','P5','J1',100) insert into spj values('S4','P6','J3',300) insert into spj values('S4','P6','J4',200) insert into spj values('S5','P2','J4',100) insert into spj values('S5','P3','J1',200) insert into spj values('S5','P6','J2',200) insert into spj values('S5','P6','J4',500)
UPDATE P SET WEIGHT=WEIGHT+5 ---p表中的所有红色零件的重量增加5
UPDATE SPJ SET QTY=QTY-10 --------spj表中所有天津供应商的QTY属性值减少10
delete from p where color='红' delete from spj where spj.pno in(
select pno from p where color='红') -----Delete语句删除p表中的所有红色零件
4.思考题:
在为各表设定关键字时弹出的页面中有关键字和索引选项,试通过给基本表设定这两个项目并说明二者的区别。
答:关键字会受主键的影响,而索引不受主键影响,可以为任何属性
设索引。
在基本表中输入数据时,注意数据与字段的数据类型和长度以及能否为空的属性是否一致,保存时如有错误分析错误原因,及时改正并将错误报告写在实验报告中。
5.实验总结:心得体会,建议等。
答:在这次实验中,做事要认真仔细才可以做好。
实验二:简单查询和连接查询
1.实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。 2.实验内容:
(一)
完成下面的简单查询:
①查询所有“天津”的供应商明细; ②查询所有“红色”的14公斤以上的零件。 ③查询工程名称中含有“厂”字的工程明细。 (二)
完成下面的连接查询:
①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积 ④左连接:求j表和spj表的左连接。 ⑤右连接:求spj表和j表的右连接。
3.完成情况(附上设计的SQL语句)。
-----查询所有“天津”的供应商明细
select * from spj inner join s on s.sno=spj.sno where s.city='天津'
----查询所有“红色”的14公斤以上的零件
select* from p where color='红' and weight>14
---查询工程名称中含有“厂”字的工程明细 select * from j where jname like '%厂'
select * from s inner join j on s.city=j.city - ---等值连接:求s表和j表的相同城市的等值连接
-----自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
select sname,jname,pname from spj inner join s on spj.sno=s.sno join p on spj.pno=p.pno join j on j.jno=spj.jno order by s.sno,j.jno,p.pno
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库河南科技大学数据库实验报告在线全文阅读。
相关推荐: