当前位置:首页 > 北大 数据库设计与实践 第二次及第三次作业
林志元 1201220774 潘红莉 1201210757 李梦楠 1201210654 孟雅文 1201210748 邓韵阳 1201220677
实习二:关系代数
(本次作业提交时间为11月15号)
S(SNO, SNAME, STATUS, CITY)
P(PNO, PNAME, COLOR, WEIGHT, CITY) J(JNO, JNAME,CITY) SPJ(SNO, PNO, JNO, QTY)
S表示供应商,各属性依次为供应商号,供应商名,供应商状态值,供应商所在城市; P表示零件,各属性依次为零件号,零件名,零件颜色,零件重量,零件存放的城市; J表示工程,各属性依次为工程号,工程名,工程所在城市;
SPJ表示供货关系,各属性依次为供应商号,零件号,工程号,供货数量。 试用关系代数完成下面查询
1. 求没有供应p1和p2两种零件的供应商姓名。
?SNAME(?SNOSPJ??SNO(?PNO?P1(SPJ))??SNO(?PNO?P2(SPJ))??S)
2. 列出所有供应商的信息,包括供应商姓名、所供应的零件名(没有供应零件的供应
商也要列出,最后结果中不要出现重复元组)
?SNAMEPNAME(J,??SPJS)
3. 求只向与自己位于不同城市的工程供应零件的供应商姓名。
?SNAME(?SPJSNOSSNOandSPJJNOJJNOandSCITY?SNAME(?SPJSNOSSNOandSPJJNOJJNOandSCITY..?.?...?.?...??J.CITY(S?SPJ?J))?(S?SPJ?J))?J.CITY
4. 求只向与自己位于相同城市的工程供应零件的供应商姓名。
?SNAME(?SPJSNO.?S.SNOandSPJ.JNO?J.JNOandS.CITY?J.CITY(S?SPJ?J))
??SNAME(?SPJ.SNO?S.SNOandSPJ.JNO?J.JNOandS.CITY??J.CITY(S?SPJ?J))
5. 求供应了所有零件的供应商姓名。
?SNAME(?SNOPNOSPJ??PNOP)??S)
.6. 求供应了所有红色零件的供应商姓名。
?SNAME(?SNOPNOSPJ??PNO(?COLOR.?REDP))??S)
7. 求最大的QTY值。
?qty(SPJ) ??s.qty(?r.qty?s.qty(?r(SPJ)x?s(SPJ) ) )
8. 列出恰好供应了相同零件的供应商对。
?SPJSNOSPJ?SPJSNOSPJ..,,1.SNO1.SNO(?SPJ.SNO??SPJ1.SNOandSPJ.PNO?SPJ1.PNO(SPJ??SPJ1(SPJ)))?(?SPJ.SNO??SPJ1.SNOandSPJ.PNO??SPJ1.PNO(SPJ??SPJ1(SPJ)))
实习三:基本SQL
(本次作业提交时间为11月25号)
安装AdventureWorks2012_Database,基于该数据库自己设计至少10个查询,要求覆盖各种查询类型,同时把查询结果也粘贴到作业文档中。
1) 单关系查询:列出AdventureWorks.Purchasing.PurchaseOrderHeader所有记录 select * from AdventureWorks.Purchasing.PurchaseOrderHeader;
2) 多关系查询:查询PurchaseOrderHeader.SubTotal='201.04' 所对应的供应商姓
名
select y.Name
from AdventureWorks.Purchasing.PurchaseOrderHeader
x,AdventureWorks .Purchasing.Vendor y
where x.SubTotal='201.04'
3) 更名运算
select COUNT(*)'PurchaseOrderHeader总记录数' from AdventureWorks.Purchasing.PurchaseOrderHeader;
4) 字符串运算:查询名字以s结尾的供应商信息
select * from AdventureWorks.Purchasing.Vendor where Name like '%s';
5) 并运算:查询名字以s及t结尾的供应商信息
select * from AdventureWorks.Purchasing.Vendor where Name like '%s' union
select * from AdventureWorks.Purchasing.Vendor where Name like '%t'
6) 分组,聚集函数:查询相同CreditRating供应商数量 select CreditRating ,count(*)'数量' from AdventureWorks.Purchasing.Vendor group by CreditRating;
7) Order by : 按照产品重量递减排序 select ProductID,Name,Weight from Production.Product order by Weight desc;
共分享92篇相关文档