2018全国计算机四级数据库工程师过关试题及答案(7)
1 .试述SQL语言的特点。 (填空题) 参考答案:
(1)综合统一。 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。(2)高度非过程化。用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。(3)面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。(4)以同一种语法结构提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。(5)语言简捷,易学易用。
2 .SQL的中文全称是________________。 (问答题)
参考答案:
结构化查询语言
3 .试述SQL的定义功能。 (填空题)
参考答案:
SQL的数据定义功能包括定义表、定义视图和定义索引。 SQL语言使用CREATE TABLE语句建立基本表,ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表;使用CREATE INDEX语句建立索引, DROP INDEX语句删除索引;使用CREATE VIEW命令建立视图,DROP VIEW语句删除视图。
4 .SQL语言除了具有数据查询和数据操纵功能之外,还具有________和________的功能,它是一个综合性的功能强大的语言。 (问答题)
参考答案:
数据定义 数据控制
5 .在关系数据库标准语言SQL中,实现数据检索的语句命令是________。 (问答题)
参考答案:
SELECT
6 .用SQL语句建立第2章习题5中的四个表。 (填空题)
参考答案:
对于S表:S( SNO,SNAME,STATUS,CITY); 建S表 CREATE TABLE S (SNO CHAR(3), SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10)); P(PNO,PNAME,COLOR,WEIGHT); 建P表 CREATE TABLE P (PNO CHAR(3), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT); J(JNO,JNAME,CITY); 建J表 CREATE TABLE J (JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10)); SPJ(SNO,PNO,JNO,QTY); 建SPJ表 CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT);
7 .在SQL语言的结构中,________有对应的物理存储,而________没有对应的物理存储。 (问答题)
参考答案:
基本表 视图
8 .针对上题中建立的四个表试用SQL语言完成第2章习题5中的查询。 (填空题)
参考答案:
(1) 求供应工程J1零件的供应商号码SNO; SELECT SNO FROM SPJ WHERE JNO=‘J1’;(2) 求供应工程J1零件P1的供应商号码SNO; SELECT SNO FROM SPJ WHERE JNO=‘J1’ AND PNO=‘P1’;(3) 求供应工程J1零件为红色的供应商号码SNO; SELECT SNO /*这是嵌套查询*/ FROM SPJ WHERE JNO=‘J1’ AND PNO IN /*找出红色的零件的零件号码PNO */ (SELECT PNO FROM P /*从P表中找*/ WHERE COLOR=‘红’);或 SELECT SNO FROM SPJ,P /*这是两表连接查询*/ WHERE JNO=‘J1’ /*这是复合条件连接查询*/ AND SPJ.PNO=P.PNO AND COLOR=‘红’; (4) 求没有使用天津供应商生产的红色零件的工程号JNO; *解析:读者可以对比第2章习题5中用ALPHA语言来完成该查询的解答。如果大家理解了有关该题的解析说明,那么本题的解答可以看成是把关系演算用SQL来表示的过程。 GET W (J.JNO): ??SPJX( SPJX .JNO=J.JNO ? ?SX ( SX.SNO=SPJX .SNO ? SX .CITY='天津' ? ?PX(PX .PNO=SPJX .PNO ? PX .COLOR=' 红' )) 这里的第一种解法是使用多重嵌套查询,第二种方法的子查询是一个多表连接。注意:从J表入手,以包含那些尚未使用任何零件的工程号。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SNO IN /*天津供应商的SNO*/ (SELECT SNO FROM S WHERE CITY=‘天津’) AND PNO IN /*红色零件的PNO*/ (SELECT PNO FROM P WHERE COLOR=‘红’)); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S, P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=‘天津’ AND P. COLOR=‘红’); //删除: 本例中父查询和子查询均引用了Student表,可以像自身连接那样用别名将父查询中的Student表与子查询中的Student表区分开:// (5) 求至少用了供应商S1所供应的全部零件的工程号JNO (类似于P113例44)。 *解析:本查询的解析可以参考第二章第5题,用ALPHA语言的逻辑蕴函来表达。 上述查询可以抽象为: 要求这样的工程x,使 (?y) p ? q为真。即: 对于所有的零件y,满足逻辑蕴函 p ? q: P表示谓词:“供应商S1供应了零件y” q表示谓词:“工程x选用了零件y” 即 只要“供应商S1供应了零件y”为真,则“工程x选用了零件y”为真。逻辑蕴函可以转换为等价形式: (?y)p ? q≡ ? (?y (?(p ? q ))≡? (?y (?(? p∨ q)≡? ?y(p∧?q) 它所表达的语义为:不存在这样的零件y,供应商S1供应了y,而工程x没有选用y。用SQL语言表示如下: SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS /*这是一个相关子查询 */ (SELECT * /*父查询和子查询均引用了SPJ表*/ FROM SPJ SPJX /*用别名将父查询与子查询中的SPJ表区分开*/ WHERE SNO='S1' AND NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.PNO=SPJX.PNO AND SPJY.JNO=SPJZ.JNO AND SPJY.SNO=’S1’));
9 .针对习题3中的四个表试用SQL语言完成以下各项操作: (1) 找出所有供应商的姓名和所在城市。 (2) 找出所有零件的名称、颜色、重量。 (3) 找出使用供应商S1所供应零件的工程号码。 (4) 找出工程项目J2使用的各种零件的名称及其数量。 (5) 找出上海厂商供应的所有零件号码。 (6) 找出使用上海产的零件的工程名称。 (7) 找出没有使用天津产的零件的工程号码。 (8) 把全部红色零件的颜色改成蓝色。 (9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。 (填空题) 参考答案:
(1) 找出所有供应商的姓名和所在城市。 SELECT SNAME, CITY FROM 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, SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'; (5) 找出上海厂商供应的所有零件号码。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE CITY='上海'); (6) 找出使用上海产的零件的工程名称。 SELECT JNAME FROM J, SPJ, S WHERE J. JNO=SPJ. JNO AND SPJ. SNO=S.SNO AND S.CITY='上海'; 或 SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ, S WHERE SPJ. SNO=S.SNO AND S.CITY='上海'); (7) 找出没有使用天津产的零件的工程号码。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SNO IN (SELECT SNO FROM S WHERE CITY=‘天津’)); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’); (8) 把全部红色零件的颜色改成蓝色。 UPDATE P SET 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 SPJ WHERE SNO='S2'; DELETE FROM S WHERE SNO='S2'; *解析:注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。(11) 请将 (S2,J6,P4,200) 插入供应情况关系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) /*INTO子句中指明列名*/ VALUES (S2,J6,P4,200); /*插入的属性值与指明列要对应*/ 或 INSERT INTO SPJ /*INTO子句中没有指明列名*/ VALUES (S2,P4,J6,200); /*插入的记录在每个属性列上有值*/ /*并且属性列要和表定义中的次序对应*/
10 .关系R(A,B,C)和S(A,D,E,F),R和S有相同属性A,若将关系代数表达式:πR.A,R.B,S.D,S.F(R∞ S)用SQL语言的查询语句表示,则为: SELECT R.A,R.B,S.D,S.F FROM R,S WHERE________________。 (问答题)
参考答案:
R.A=S.A
11 .什么是基本表?什么是视图?两者的区别和联系是什么? (填空题)
参考答案:
基本表是本身独立存在的表,在SQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>