资源描述:
《《SQL作业讲评》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、作业3-讲评数据库课程作业第1-2题考核点:基本概念了解SQL语言的特点及其功能问题:基本都能答对第3题考核点:用SQL语句建立表回答要点:对于相同属性的定义要一致,如S表中的sno和SPJ表中的sno定义要一致。问题:基本没有问题第3题-DDL考核要点理解题设中隐含的完整性约束要求考查DDL的运用共同问题没有声明主码没有声明外码缺少必要的check非空属性,没有notnull约束声明了主码后,多余地添加unique,notnull约束等不知道如何声明包含多个属性的主码第3题-DDL(续)例1createta
2、bleP(PNOchar(5)primarykey,PNAMEchar(10)notnull,COLORchar(10),WEIGHTintcheck(weight>0))有了primarykey,还有notnull或unique例2createtableSPJ(SNOchar(5)notnullreferencesS(SNO),PNOchar(5)notnullreferencesP(PNO),JNOchar(5)notnullreferencesJ(JNO),QTYintcheck(QTY>0)prima
3、rykey(SNO,PNO,JNO));ReferencesS三个属性上都有或只有一个属性上有primarykey第4题考核点:将关系代数语言完成的查询转换成SQL语句。共同问题:书写SQL语句不规范,在第5题中也是这样,比如少了‘,’或者少了AND等等。第4题(续)答题要点:(1)(2)(3)问题不大,很容易将关系代数对应到SQL语句,个别同学没有区分“=”和“in”。(4)(5)主要考察对exists的使用,可以用连接或者嵌套子查询来完成。重点要从逻辑上分析语义来写出SQL查询。第4题-selectfro
4、mwhere共同问题:语法错误――说明上机实践少没有认真审题,所答非所问如5.6题,题设要求工程名称,而很多同学回答的却是工程号设计SQL时没有考虑效率问题只求可以运行正确对谓词any,all,exists理解不够深刻缺乏理论知识没有从语义来分析何时需要distinct?典型语法错误错误1:select*frompwherepno=(selectpnofromspjwheresno='s1')错误2:Exit,S(s#,sname,status,city)P(p#,pname,color,weight,cit
5、y)J(j#,jname,city)SPJ(s#,p#,j#,qty)4.1求供应工程J1零件的供应商号码需要distinct?参考答案:selectdistinctSNOfromSPJwhereJNO='J1’S(SNO,SNAME,STATUS,CITY)P(PNO,PNAME,COLOR,WEIGHT)J(JNO,JNAME,CITY)SPJ(SNO,PNO,JNO,QTY)4.2求供应工程J1零件P1的供应商号码需要distinct吗?参考答案:selectSNOfromSPJwhere(JNO='J
6、1‘andPNO='P1');S(SNO,SNAME,STATUS,CITY)P(PNO,PNAME,COLOR,WEIGHT)J(JNO,JNAME,CITY)SPJ(SNO,PNO,JNO,QTY)4.3求供应工程J1零件为红色的供应商号码SNOselectSPJ.SNOfromSPJ,Pwhere(SPJ.JNO='J1‘andP.PNO=SPJ.PNOandP.COLOR='红')S(SNO,SNAME,STATUS,CITY)P(PNO,PNAME,COLOR,WEIGHT)J(JNO,JNAME,
7、CITY)SPJ(SNO,PNO,JNO,QTY)4.3另求供应工程J1零件为红色的供应商号码SNOSELECTSNOFROMSPJWHEREJNO=‘J1’ANDPNOIN--找红色零件的零件号码pno(SELECTPNOFROMP--从P表中找WHERECOLOR=‘红’)S(SNO,SNAME,STATUS,CITY)P(PNO,PNAME,COLOR,WEIGHT)J(JNO,JNAME,CITY)SPJ(SNO,PNO,JNO,QTY)第4题(续)(4)找出没有使用天津供应商生产的红色零件的工程号J
8、NO注意:从J表入手,以包含那些尚未使用任何零件的工程号。求没有使用天津供应商生产的红色零件的工程号JNO关系代数:∏JNO(J)-∏JNO(∏SNO(CITY=“天津”)(S))∞∏SNO,PNO,JNO(SPJ)∞∏PNO(COLOR=“红”)(P)))∏JNO(J)是全部工程的工程号减去的部分表示使用了天津供应商生产的红色零件的所有工程号。求没有使用天津供应商生产的红色零件的工程号没有使用任何