第三章语言练习题和答案教学总结.docx
精品名师归纳总结第三章 SQL 语言练习题和答案可编辑资料 - - - 欢迎下载精品名师归纳总结第三章 SQL 语言一、挑选题1. SQL 语言是( B )的语言,简单学习 。A. 过程化 B. 非过程化C.格式化 D. 导航式2. SQL 语言的数据操纵语句包括SELECT 、INSERT 、UPDATE 、DELETE 等。其中最重要的,也是使用最频繁的语句是(A) 。A. SELECT B. INSERTC. UPDATE D. DELETE3. 在视图上不能完成的操作是() 。A. 更新视图 B. 查询C. 在视图上定义新的表 D. 在视图上定义新的视图4. SQL 语言集数据查询、数据操纵、数据定义和数据掌握功能于一体,其中, CREATE 、DROP、ALTER 语句是实现哪种功能()。A. 数据查询 B. 数据操纵C. 数据定义 D. 数据掌握5. SQL 语言中,删除一个视图的命令是()。A.DELETE B.DROP C.CLEAR D.REMOVE6. 在 SQL 语言中的视图 VIEW是数据库的( ) 。可编辑资料 - - - 欢迎下载精品名师归纳总结A. 外模式 B. 模式 C. 内模式 D. 储备模式7. 以下的 SQL 语句中,( )不是数据定义语句。A. CREATE TABLE B. DROP VIEWC. CREATE VIEWD. GRANT8. 如要撤销数据库中已经存在的表S,可用( )。A. DELETE TABLE S B. DELETE SC. DROP TABLE S D. DROP S9. 如要在基本表 S 中增加一列 CN(课程名),可用()。A.ADD TABLE S(CN CHAR () B.ADD TABLE S ALTER( CN CHAR () C.ALTER TABLE S ADD( CN CHAR ()D.ALTER TABLE S(ADD CN CHAR ()10. 同学关系模式 S( S , Sname, Sex ,Age ), S 的属性分别表示同学的学号、姓名、性别、年龄。要在表S 中删除一个属性 “年龄”,可选用的 SQL 语句是( )。A. DELETE Age from SB. ALTER TABLE S DROP AgeC. UPDATE S AgeD. ALTER TABLE S Age11. 有关系 S(S, SNAME ,SAGE ), C(C, CNAME ), SC(S, C, GRADE)。其中 S是同学号, SNAME是同学姓名, SAGE 是同学年龄, C是课程号, CNAME 是课程名称。要查询选修 “ACCES”S课的年龄可编辑资料 - - - 欢迎下载精品名师归纳总结不小于 20 的全体同学姓名的 SQL 语句是 SELECT SNAME FROM S, C, SC WHERE 子句。这里的 WHERE 子句的内容是( )。A. S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 andCNAME= ACCESS B. S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ACCESS C. SAGE in>=20 and CNAME inACCESSD. SAGE>=20 and CNAME= ACCESS12. 设关系数据库中一个表 S 的结构为 S(SN , CN,grade ),其中 SN 为同学名, CN 为课程名,二者均为字符型。 grade 为成果,数值型,取值范畴0 100 。如要把 “张二的化学成果 80 分”插入 S 中,就可用( )。A. ADD INTO SVALUES (张二,化学, 80)B. INSERT INTO SVALUES (张二,化学, 80)C. ADD INTO SVALUES (张二,化学, 80 )D. INSERT INTO S可编辑资料 - - - 欢迎下载精品名师归纳总结VALUES (张二,化学, 80 )13. 设关系数据库中一个表 S 的结构为: S(SN , CN,grade ),其中SN 为同学名, CN 为课程名,二者均为字符型。 grade 为成果,数值型,取值范畴 0 100 。如要更正王二的化学成果为 85 分,就可用( ) 。A. UPDATE S SET grade 85WHERE SN 王二 AND CN 化学B. UPDATE SSET grade 85WHERE SN 王二 AND CN 化学C. UPDATE grade 85WHERE SN 王二 AND CN 化学D. UPDATE grade 85WHERE SN 王二 AND CN 化学14. 在 SQL 语言中,子查询是() 。A. 返回单表中数据子集的查询语言B. 选取多表中字段子集的查询语句C. 选取单表中字段子集的查询语句D. 嵌入到另一个查询语句之中的查询语句15. SQL 是一种( )语言。A. 高级算法 B. 人工智能C. 关系数据库 D. 函数型可编辑资料 - - - 欢迎下载精品名师归纳总结16. 有关系 S(S, SNAME ,SEX ), C( C, CNAME ), SC(S, C, GRADE)。其中 S是同学号, SNAME是同学姓名, SEX 是性别, C是课程号, CNAME 是课程名称。要查询选修 “数据库 ”课的全体男生姓名的 SQL 语句是 SELECT SNAME FROM S, C, SC WHERE 子句。这里的WHERE 子句的内容是( )。A.S.S# = SC.S# and C.C# = SC.C# and SEX= 男 and CNAME=数据库 B.S.S# = SC.S# and C.C#= SC.C# and SEX in 男and CNAME in数据库C.SEX 男 and CNAME数据库 D.S.SEX=男 and CNAME=数据库17. 如用如下的 SQL 语句创建了一个表 SC:CREATE TABLE SC(S# CHAR ( 6) NOT NULL,C# CHAR ( 3) NOT NULL ,SCORE INTEGER ,NOTE CHAR ( 20 )。向 SC 表插入如下行时,( )行可以被插入 。A.(202209,11,160 ,必修) B.(202223,10,1NULL ,NULL )C.(NULL ,103,80 ,选修)D.(202232,NULL ,86 ,)18. 假设同学关系 S(S, SNAME ,SEX ),课程关系 C(C, CNAME ),同学选课关系 SC(S, C, GRADE)。要查询选修“ Computer课的”男生姓名,将涉及到关系()。A. S B. S , SC C. C,SC D. S ,C,SC可编辑资料 - - - 欢迎下载精品名师归纳总结二、简答题1. 试述 SQL 语言的特点。答:(1) 综合统一。 SQL 语言集数据定义语言 DDL 、数据操纵语言 DML 、数据掌握语言 DCL 的功能于一体。(2) )高度非过程化。用 SQL 语言进行数据操作,只要提出“做什么 ”,而无须指明 “怎么做 ”,因此无需明白存取路径,存取路径的挑选以及SQL 语句的操作过程由系统自动完成。(3) )面对集合的操作方式。 SQL 语言采纳集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。(4) )以同一种语法结构供应两种使用方式。SQL 语言既是自含式语言, 又是嵌入式语言。作为自含式语言,它能够独立的用于联机交互的使用方式, 也能够嵌入到高级语言程序中,供程序员设计程序时使用。(5) )语言简捷,易学易用。2. 试述 SQL 的定义功能。答: SQL 的数据定义功能包括定义表、定义视图和定义索引。SQL 语言使用 CREATE TABLE 语句定义建立基本表,。 ALTER TABLE 语句修改基本表定义, DROP TABLE 语句删除基本表。建立索引使用CREATE INDEX语句建立索引, DROP INDEX语句删除索引表。 SQL 语言使用CREATE VIEW命令建立视图, DROP VIEW语句删除视图。可编辑资料 - - - 欢迎下载精品名师归纳总结3. 用 SQL 语句建立第 3 章习题 3 中的四个表。答: 对于 S 表: S SNO ,SNAME ,STATUS ,CITY 。 建 S 表CREATE TABLE S SNO CHAR3, SNAME CHAR10, STATUS CHAR2, CITY CHAR10。PPNO, PNAME , COLOR,WEIGHT。建 P 表CREATE TABLE P PNO CHAR3 , PNAME CHAR10 , COLOR CHAR4 , WEIGHT INT。JJNO,JNAME ,CITY 。建 J 表CREATE TABLE J JNO CHAR3, JNAME CHAR10, CITY CHAR10。可编辑资料 - - - 欢迎下载精品名师归纳总结SPJSNO , PNO, JNO ,QTY 。建 SPJ 表CREATE TABLE SPJ SNO CHAR3, PNO CHAR3 , JNO CHAR3,QTY INT。4. 针对上题中建立的四个表试用SQL 语言完成第 3 章习题 3 中的查询。答: (1) 求供应工程 J1 零件的供应商号码 SNO 。SELECT SNO FROM SPJWHERE JNO=J1 。(2) ) 求供应工程 J1 零件 P1 的供应商号码 SNO 。SELECT SNO FROM SPJWHERE J NO=J1 AND PNO= P1。(3) ) 求供应工程 J1 零件为红色的供应商号码 SNO 。SELECT SNO FROM SPJ WHERE JNO=J1AND PNO IN可编辑资料 - - - 欢迎下载精品名师归纳总结SELECT PNO FROM PWHERE COLOR= 红。或SELECT SNO FROM SPJ ,P WHERE JNO=J1AND SPJ.PNO=P.PNOAND COLO R=红。(4) ) 求没有使用天津供应商生产的红色零件的工程号JNO 。 解析:用 SQL 语言表示如下:SELECT JNO FROM JWHERE NOT EXISTSSELECT * FROM SPJWHERE SPJ.JNO=J.JNOAND SNO IN SELECT SNO FROM SWHERE CITY=天津可编辑资料 - - - 欢迎下载精品名师归纳总结AND PNO IN SELECT PNO FROM PWHERE COLOR= 红。或SELECT JNO FROM JWHERE NOT EXISTSSELECT *1 FROM SPJ, S, PWHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNOAND S.CITY= 天津AND P. COLOR= 红。留意:从 J 表入手,以包含那些尚未使用任何零件的工程号。(5) ) 求至少用了供应商 S1 所供应的全部零件的工程号 JNO。解析:用 SQL 语言表示如下:SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS可编辑资料 - - - 欢迎下载精品名师归纳总结SELECT * FROM SPJ SPJXWHERE SNO='S1'AND NOT EXISTS SELECT *FROM SPJ SPJYWHERE SPJY.PNO=SPJX.PNO AND SPJY.JNON=SPJZ.JNO AND SPJY.SNO=S1 )。AND SPJY.SNO='S1' 。5. 针对习题 3 中的四个表试用 SQL 语言完成以下各项操作:(1) )找出全部供应商的姓名和所在城市。(2) )找出全部零件的名称、颜色、重量。(3) )找出访用供应商 S1 所供应零件的工程号码。(4) )找出工程项目 J2 使用的各种零件的名称及其数量。(5) )找出上海厂商供应的全部零件号码。(6) )找出访用上海产的零件的工程名称。(7) )找出没有使用天津产的零件的工程号码。(8) )把全部红色零件的颜色改成蓝色。(9) )由 S5 供应 J4 的零件 P6 改为由 S3 供应,请作必要的修改。可编辑资料 - - - 欢迎下载精品名师归纳总结(10) )从供应商关系中删除S2 的记录,并从供应情形关系中删除相应的记录。(11) )请将 S2 , J6 , P4,200插入供应情形关系。答: 1 找出全部供应商的姓名和所在城市。 SELECT SNAME, CITYFROM S;(2) 找出全部零件的名称、颜色、重量。SELECT PNAME, COLOR, WEIGHT FROM P;(3) 找出访用供应商 S1 所供应零件的工程号码。SELECT JNO FROM SPJ WHERE SNO=S1;(4) 找出工程项目 J2 使用的各种零件的名称及其数量。SELECT P.PNAME, SPJ.QTY FROM P, SPJWHERE P.PNO=SPJ.PNOAND SPJ.JNO='J2'(5) 找出上海厂商供应的全部零件号码。SELECT DISTINCT PNO FROM SPJWHERE SNO IN可编辑资料 - - - 欢迎下载精品名师归纳总结( SELECT SNO FROM SWHERE CITY='上海' );(6) 找出访用上海产的零件的工程名称。SELECT JNAME FROM J, SPJ, SWHERE J. JNO=SPJ. JNOAND SPJ. SNO=S.SNO AND S.CITY='上海'或SELECT JNAME FROM J WHERE JNO IN SELECT JNO FROM SPJ, SWHERE SPJ. SNO=S.SNO AND S.CITY='上海'(7) 找出没有使用天津产的零件的工程号码。SELECT JNO FROM JWHERE NOT EXISTS SELECT *可编辑资料 - - - 欢迎下载精品名师归纳总结FROM SPJWHERE SPJ.JNO=J.JNO AND SNO IN SELECT SNOFROM SWHERE CITY=天津。或SELECT JNO FROM JWHERE NOT EXISTS SELECT *1FROM SPJ, SWHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=天津。(8) 把全部红色零件的颜色改成蓝色。UPDATE PSET COLOR=' 蓝' WHERE COLOR=' 红' ;(9) 由 S5 供应 J4 的零件 P6 改为由 S3 供应,请作必要的修改。UPDATE SPJ SET SNO='S3'WHERE SNO='S5' AND JNO='J4' AND PNO='P6'可编辑资料 - - - 欢迎下载精品名师归纳总结(10) 从供应商关系中删除 S2 的记录,并从供应情形关系中删除相应的记录。DELETE FROM SPJWHERE SNO='S2'或DELETE FROM SWHERE SNO='S2'解析:留意删除次序,应当先从SPJ 表中删除供应商 S2 所供应零件的记录,然后从从 S 表中删除 S2 。(11) 请将 S2 ,J6 ,P4,200 插入供应情形关系。INSERT INTO SPJSNO, JNO, PNO, QTY VALUES S2 ,J6 ,P4,200;或INSERT INTO SPJVALUES S2 ,P4,J6 ,200;6. 什么是基本表?什么是视图?两者的区分和联系是什么?答:基本表是本身独立存在的表,在SQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立储备在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数可编辑资料 - - - 欢迎下载精品名师归纳总结据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以犹如基本表那样使用视图,可以在视图上再定义视图。7. 试述视图的优点。答: 1视图能够简化用户的操作。(2) 视图使用户能以多种角度看待同一数据。(3) 视图对重构数据库供应了肯定程度的规律独立性。(4) 视图能够对秘密数据供应安全爱护。8. 全部的视图是否都可以更新?为什么?答:不是。视图是不实际储备数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。由于有些视图的更新不能唯独的有意义的转换成对相应基本表的更新,所以,并不是全部的视图都是可更新的。如概论3.5.1 中的视图 S_G (同学的学号及他的平均成果)CREAT VIEW S_GSno,Gavg AS SELECT Sno , AVGGrade FROM SCGROUP BY Sno。要修改平均成果,必需修改各科成果,而我们无法知道哪些课程成果的变化导致了平均成果的变化。9. 哪类视图是可以更新的,哪类视图是不行更新的?各举一例说明。 答:基本表的行列子集视图一般是可更新的。如概论3.5.3 中的例 1。如视图的属性来自集函数、表达式,就该视图确定是不行以更新的。如概论 3.5.3 中的 S_G 视图。可编辑资料 - - - 欢迎下载精品名师归纳总结10. 试述某个你熟识的实际系统中对视图更新的规定。答:(略)解析:不同的系统对视图更新的规定是不同的,读者必需明白你所用系统对视图更新的规定。11. 请为三建工程项目建立一个供应情形的视图,包括供应商代码( SNO )、零件代码( PNO)、供应数量( QTY )。针对该视图完成以下查询:(1) )找出三建工程项目使用的各种零件代码及其数量。(2) )找出供应商 S1 的供应情形。答:建视图:CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJWHERE JNO=( SELECT JNO FROM JWHERE JNAME='三建' );对该视图查询:(1) 找出三建工程项目使用的各种零件代码及其数量。SELECT PNO, QTY FROM V_SPJ;(2) 找出供应商 S1 的供应情形。可编辑资料 - - - 欢迎下载精品名师归纳总结SELECT PNO, QTY /* S1供应三建工程的零件号和对应的数量 */ FROM V_SPJWHERE SNO='S1'可编辑资料 - - - 欢迎下载