数据库概论必考经典例题课后重点答案课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库概论必考经典例题课后重点答案课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 概论 必考 经典 例题 课后 重点 答案 课件
- 资源描述:
-
1、13.用用SQL语句建立第二章习题语句建立第二章习题5中的四个表:中的四个表:供应商关系:S(SNO,SNAME,STATUS,CITY)零件关系:P(PNO,PNAME,COLOR,WEIGHT)工程项目关系:J(JNO,JNAME,CITY)供应情况关系:SPJ(SNO,PNO,JNO,QTY)2 定义的关系S有四个属性,分别是供应商号(SNO)、供应商名(SNAME)、状态(STATUS)和所在城市(CITY),属性的类型都是字符型,长度分别是4、20、10和20个字符。主键是供应商编号SNO。在SQL中允许属性值为空值,当规定某一属性值不能为空值时,就要在定义该属性时写上保留字“NOT
2、 NULL”。本例中,规定供应商号和供应商名不能取空值。由于已规定供应商号为主码,所以对属性SNO的定义中的“NOT NULL”可以省略不写。CREATE TABLE S(SNO CHAR(4)NOT NULL,SNAME CHAR(20)NOT NULL,STATUS CHAR(10),CITY CHAR(20),PRIMARY KEY(SNO););3CREATE TABLE P(PNO CHAR(4)NOT NULL,PNAME CHAR(20)NOT NULL,COLOR CHAR(8),WEIGHT SMALLINT,PRIMARY KEY(PNO);CREATE TABLE J(J
3、NO 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 4.针对上题中建立的四个表试用S
4、QL语言完成第二章习题5中的查询 1)求供应工程J1零件的供应商号码SNO;2)求供应工程J1零件P1的供应商号码SNO;3)求供应工程J1零件为红色的供应商号SNO;4)求没有使用天津供应商生产的红色零件的工程号JNO;5)求至少用了供应商S1所供应的全部零件的工程号JNO51)求供应工程求供应工程J1零件的供应商号码零件的供应商号码SNO;SELECT DISTINCT SNO FROM SPJ WHERE JNO=SELECT DISTINCT SNO FROM SPJ WHERE JNO=J1J1;SELECT SELECT子句后面的子句后面的DISTINCTDISTINCT表示要在结
5、果中去掉重复的供应商编号表示要在结果中去掉重复的供应商编号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 SELECT DISTINCT SNO FROM SPJ WHER
6、E JNO=WHERE JNO=J1J1 AND PNO IN AND PNO IN (SELECT PNO (SELECT PNO FROM P FROM P WHERE COLOR=WHERE COLOR=红红);6 4)求没有使用天津供应商生产的红色零件的工程号求没有使用天津供应商生产的红色零件的工程号JNO;常见错误:常见错误:SELECT JNO FROM J WHERE NOT EXISTS (SELECT*FROM S,SPJ,P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=天津AND P.
7、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=红)74)求没有使用天津供应商生产的红色零件的工程号求没有使用天津供应商生产的红色零件的工程号JNO;SELECT JNO FROM J WHERE JNO NOT
8、 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 P.COLOR=红)85)求至少用了供应商求至少用了供应商S1所供应的全部零件的工程
9、号所供应的全部零件的工程号JNOSELECT DISTINCT JNOFROM SPJ SPJ1WHERE NOT EXISTS (SELECT*FROM SPJ SPJ2 WHERE SNO=S1 AND NOT EXISTS PNO=ALL (SELECT*FROM SPJ SPJ3 WHERE PNO=SPJ2.PNO AND JNO=SPJ1.JNO)95)求至少用了供应商求至少用了供应商S1所供应的全部零件的工程号所供应的全部零件的工程号JNO 第一种理解:SELECT DISTINCT JNO FROM SPJ SPJX WHERE NOT EXISTS (SELECT*FROM
10、SPJ SPJY WHERE SPJY.SNO=S1 AND NOT EXISTS (SELECT*FROM SPJ SPJZ WHERE SPJZ.JNO=SPJX.JNO AND SPJZ.PNO=SPJY.PNO AND SPJZ.SNO=SPJY.SNO);查询结果:第二种理解:SELECT DISTINCT JNO FROM SPJ SPJX WHERE NOT EXISTS (SELECT*FROM SPJ SPJY WHERE SPJY.SNO=S1 AND NOT EXISTS (SELECT*FROM SPJ SPJZ WHERE SPJZ.JNO=SPJX.JNO AND
11、SPJZ.PNO=SPJY.PNO);查询结果:J4SPJZ.SNO=S1SPJZ.SNO=S1105.针对习题针对习题3中的四个表试用中的四个表试用SQL语言完成以下各项操作语言完成以下各项操作1)找出所有供应商的姓名和所在城市2)找出所有零件的名称、颜色、重量3)找出使用供应商S1所供应零件的工程号码4)找出工程项目J2使用的各种零件的名称及其数量5)找出上海厂商供应的所有零件号码6)找出使用上海产的零件的工程名称7)找出没有使用天津产的零件的工程号码8)把全部红色零件的颜色改成蓝色9)有S5供给J4的零件P6改为由S3供应,请作必要的修改10)从供应商关系中删除S2的记录,并从供应情况关
12、系中删除相应的记录11)请将(S2,J6,P4,200)插入供应情况关系111)找出所有供应商的姓名和所在城市找出所有供应商的姓名和所在城市 SELECT SNAME,CITY FROM S;2)找出所有零件的名称、颜色、重量找出所有零件的名称、颜色、重量 SELECT PNAME,COLOR,WEIGHT FROM P;3)找出使用供应商找出使用供应商S1所供应零件的工程号码所供应零件的工程号码 SELECT DISTINCT JNO FROM SPJ WHERE SNO=S1;12 4)找出工程项目找出工程项目J2使用的各种零件的名称及其数量使用的各种零件的名称及其数量 SELECT PN
13、AME,QTY FROM P,SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2;135)找出上海厂商供应的所有零件号码找出上海厂商供应的所有零件号码 SELECT DISTINCT PNO FROM S,SPJ WHERE S.SNO=SPJ.SNO AND S.CITY=上海;SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE S.CITY=上海);6)找出使用上海产的零件的工程名称 SELECT JNAME FROM S,SPJ,J WHERE S.SNO=SPJ.SNO AND
14、J.JNO=SPJ.JNO AND S.CITY=上海;147)找出没有使用天津产的零件的工程号码找出没有使用天津产的零件的工程号码SELECT JNOFROM JWHERE JNO NOT IN (SELECT JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=天津);SELECT JNOFROM JWHERE NOT EXISTS (SELECT*FROM SPJ WHERE JNO=J.JNO AND SNO IN (SELECT SNO FROM S WHERE S.CITY=天津);SELECT JNOFROM JWHERE NOT EXIS
15、TS (SELECT SPJ.*,S.*FROM SPJ,S WHERE JNO=J.JNO AND SNO=S.SNO AND S.CITY=天津;158)把全部红色零件的颜色改成蓝色把全部红色零件的颜色改成蓝色 UPDATE PSET COLOR=蓝 WHERE COLOR=红;9)由由S5供给供给J4的零件的零件P6改为由改为由S3供应,请作必要的修改供应,请作必要的修改 UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P610)从供应商关系中删除从供应商关系中删除S2的记录,并从供应情况关系中删除的记录,并从供应情况关系中删除
16、相应的记录相应的记录 DELETE FROM S WHERE SNO=S2;DELETE FROM SPJ WHERE SNO=S211)请将请将(S2,J6,P4,200)插入供应情况关系插入供应情况关系 INSERT INTO SPJ VALUES(S2,P4,J6,200)常见错误:INSERT INTO SPJ VALUES(S2,J6,P4,200)16 11.请为三建工程项目建立一个供应情况的视图SANJIAN_SPJ,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:1)找出三建工程项目使用的各种零件代码及其数量。2)找出供应商S1的供应情
17、况。17创建视图:CREATE VIEW SANJIAN_SPJ AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME=三建;1)找出三建工程项目使用的各种零件代码及其数量。SELECT PNO,SUM(QTY)SELECT PNO,QTY FROM SANJIAN_SPJ FROM SANJIAN_SPJ;GROUP BY PNO;2)找出供应商S1的供应情况。SELECT*FROM SANJIAN_SPJ WHERE SNO=S118数据库设计方法数据库设计方法 1)基本设计法基本设计法 分五步进行:分五步进行:a
展开阅读全文