数据库概论必考经典例题课后重点答案.ppt
《数据库概论必考经典例题课后重点答案.ppt》由会员分享,可在线阅读,更多相关《数据库概论必考经典例题课后重点答案.ppt(43页珍藏版)》请在启牛文库网上搜索。
1、3.用用SQL语句建立第二章习题语句建立第二章习题5中的四个表:中的四个表:供应商关系:S(SNO,SNAME,STATUS,CITY)零件关系:P(PNO,PNAME,COLOR,WEIGHT)工程项目关系:J(JNO,JNAME,CITY)供应情况关系:SPJ(SNO,PNO,JNO,QTY)1 定义的关系S有四个属性,分别是供应商号(SNO)、供应商名(SNAME)、状态(STATUS)和所在城市(CITY),属性的类型都是字符型,长度分别是4、20、10和20个字符。主键是供应商编号SNO。在SQL中允许属性值为空值,当规定某一属性值不能为空值时,就要在定义该属性时写上保留字“NOTN
2、ULL”。本例中,规定供应商号和供应商名不能取空值。由于已规定供应商号为主码,所以对属性SNO的定义中的“NOTNULL”可以省略不写。 CREATETABLES(SNOCHAR(4)NOTNULL,SNAMECHAR(20)NOTNULL,STATUSCHAR(10),CITYCHAR(20),PRIMARYKEY(SNO);); 2CREATE TABLE P (PNO CHAR(4) NOT NULL, PNAME CHAR(20) NOT NULL, COLOR CHAR(8), WEIGHT SMALLINT, PRIMARY KEY(PNO);CREATE TABLE J (JNO
3、 CHAR(4) NOT NULL, JNAME CHAR(20), CITY CHAR(20), PRIMARY KEY(JNO);CREATE TABLE SPJ (SNO CHAR(4) NOT NULL, PNO CHAR(4) NOT NULL, JNO CHAR(4) NOT NULL, QTY SMALLINT, PRIMARY KEY (SNO,PNO,JNO), FOREIGN KEY (SNO) REFERENCES S(SNO), FOREIGN KEY (PNO) REFERENCES P(PNO), FOREIGN KEY (JNO) REFERENCES J(JNO
4、);34.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询1)求供应工程J1零件的供应商号码SNO;2)求供应工程J1零件P1的供应商号码SNO;3)求供应工程J1零件为红色的供应商号SNO;4)求没有使用天津供应商生产的红色零件的工程号JNO;5)求至少用了供应商S1所供应的全部零件的工程号JNO41)求供应工程求供应工程J1零件的供应商号码零件的供应商号码SNO; SELECT DISTINCT SNO FROM SPJ WHERE JNO=SELECT DISTINCT SNO FROM SPJ WHERE JNO=J1J1; ; SELECT SELECT子句后面的子句后面
5、的DISTINCTDISTINCT表示要在结果中去掉重复的供应商编号表示要在结果中去掉重复的供应商编号SNOSNO。一个供应商可以为一个工程一个供应商可以为一个工程J1J1提供多种零件。提供多种零件。 2)求供应工程求供应工程J1零件零件P1的供应商号码的供应商号码SNO; SELECT SNO FROM SPJ SELECT SNO FROM SPJ WHERE JNO= WHERE JNO=J1J1 AND PNO= AND PNO=P1P1; ;3)求供应工程求供应工程J1零件为红色的供应商号零件为红色的供应商号SNO; SELECT DISTINCT SNO FROM SPJ SELE
6、CT DISTINCT SNO FROM SPJ WHERE JNO= WHERE JNO=J1J1 AND PNO IN AND PNO IN (SELECT PNO (SELECT PNO FROM P FROM P WHERE COLOR= WHERE COLOR=红红); ;54)求没有使用天津供应商生产的红色零件的工程号求没有使用天津供应商生产的红色零件的工程号JNO; 常见错误:常见错误: SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM S,SPJ,P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO A
7、ND SPJ.PNO=P.PNO AND S.CITY=天津AND P.COLOR=红); 当从单个表中查询时当从单个表中查询时,目标目标列表达式用列表达式用*,若为多表必须用若为多表必须用表名表名.*正确写法SELECT JNO FROM JWHERE NOT EXISTS (SELECT S.*,SPJ.*,P.* FROM S,SPJ,P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津 AND P.COLOR=红)64)求没有使用天津供应商生产的红色零件的工程求没有使用天津供应商生产的红色零件的工
8、程号号JNO; SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM S,SPJ,P WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津 AND P.COLOR=红); SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SPJ.SNO IN (SELECT SNO FROM S WHERE S.CITY=天津) AND SPJ.PNO IN (SELECT PNO FROM P WHERE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 概论 必考 经典 例题 课后 重点 答案