数据库原理 习题库4

2026/1/26 19:34:54

第3章 关系数据库语言SQL

3.3 练习题

3.3.1 填空题

1.在SQL中,关系模式称为___基本表__,子模式称为____视图_____,元组称为__行___,

属性称为___列_______。

2.SQL中,表有两种:_基本表__和___视图____,也称为__实表_和__虚表__。 3.SQL中,用户有两种:____应用程序_和____终端用户______。 4.SQL中,外模式一级数据结构的基本单位是__视图________。

5.在“SQL模式”中,主要成分有__基本表、视图、索引、完整性规则等____。 6.基本表中,“主键”概念应该体现其值的___惟一_______和___非空_______两个特征。 7.操作“元组 IN(集合)”的语义是__若元组在集合中,其值为true,否则为false __。 8.表达式中的通配符“%”表示___与零个或多个字符组成的字符串匹配___,“_”(下划线)表示___与单个字符匹配_______。 9.操作“元组>SOME(集合)”的语义是_ 若元组值大于集合中某一元组值,则其值为true,否则为false __。

10.操作“元组

11.SQL有两种使用方式:__交互式SQL ________和___嵌入式SQL _______。

12.嵌入式SQL的预处理方式,是指预处理程序先对源程序进行扫描,识别出__ SQL语句_,

并处理成宿主语言的__函数调用__形式。

13.为保证嵌入式SQL的实现,通常DBMS制造商提供一个__ SQL函数定义库___,供编译时使用。

14.SQL语句嵌入在C语言程序中时,必须加上前缀标识___ EXEC SQL _______和结束标

志_分号(;)_________。

15.“卷游标”是指___可以进退自如的游标(即可随意推进或返回)_________________。

3.3.2 单项选择题(在备选答案中选出一个正确答案) 1.在SQL中,用户可以直接进行查询操作的是 [ ] A.实表和虚表 B.基本表和实表

C.视图和虚表 D.基本表 2.SQL中,聚合函数COUNT(列名)用于 [ ] A.计算元组个数 B.计算属性的个数

C.对一列中的非空值计算个数 D.对一列中的非空值和空值计算个数 3.SQL中,与“NOT IN”等价的操作符是 [ ] A.=SOME B.<>SOME C.=ALL D.<>ALL 4.元组比较操作(a1,a2)>(b1,b2)的意义是 [ ] A.(a1>b1)OR((a1=b1)AND(a2>=b2))

B.(a1>=b1)OR((a1=b1)AND(a2>=b2)) C.(a1>b1)OR((a1=b1)AND(a2>b2)) D.(a1>=b1)OR((a1=b1)AND(a2>b2)

5.SQL中,谓词EXISTS可用来测试一个集合是否 [ ] A.有重复元组 B.有重复的列名

C.为非空集合 D.有空值

6.对于基本表EMP(ENO,ENAME,SALARY,DNO)

(2003/9/21) (GJ-DA) (共2页) 目录--9

其属性表示职工的工号、姓名、工资和所在部门的编号。

基本表DEPT(DNO,DNAME) 其属性表示部门的编号和部门名。

有一SQL语句: SELECT COUNT(DISTINCT DNO) FROM EMP;

其等价的查询语句是 [ ] A.统计职工的总人数 B.统计每一部门的职工人数

C.统计职工服务的部门数目 D.统计每一职工服务的部门数目 7.对于第6题的两个基本表,有一个SQL语句: SELECT ENO,ENAME FROM EMP WHERE DNO NOT IN (SELECT DNO FROM DEPT WHERE DNAME='金工车间';

其等价的关系代数表达式是: [ ]

A.πB.πC.πD.π

ENO,ENAME(σDNAME≠'金工车间'(EMP?DEPT)) ENO,ENAME(EMP

? DEPT)

DNAME≠'金工车间'

ENO,ENAME(EMP)-πENO,ENAME(σDNAME='金工车间'(EMP?DEPT)) ENO,ENAME(EMP)-πENO,ENAME(σDNAME≠'金工车间'(EMP?DEPT))

8.对于第6题的两个基本表,有一个SQL语句: UPDATE EMP SET SALARY=SALARY*1.05 WHERE DNO='D6' AND SALARY<(SELECT AVG(SALARY)

FROM EMP);

其等价的修改语句为 A.为工资低于D6部门平均工资的所有职工加薪5%

B.为工资低于整个企业平均工资的职工加薪5%

C.为在D6部门工作、工资低于整个企业平均工资的职工加薪5% D.为在D6部门工作、工资低于本部门平均工资的职工加薪5% 9.有关嵌入式SQL的叙述,不正确的是 A.宿主语言是指C一类高级程序设计语言

B.宿主语言是指SQL语言

C.在程序中要区分SQL语句和宿主语言语句 D.SQL有交互式和嵌入式两种使用方式 10.嵌入式SQL实现时,采用预处理方式是 A.把SQL语句和主语言语句区分开来

B.为SQL语句加前缀标识和结束标志

C.识别出SQL语句,并处理成函数调用形式 D.把SQL语句编译成二进制码

[ ]

[ ]

[ ]

(2003/9/21) (GJ-DA) (共2页) 目录--10

11.允许在嵌入的SQL语句中,引用宿主语言的程序变量,在引用时 [ ] A.直接引用

B.这些变量前必须加符号“*” C.这些变量前必须加符号“:” D.这些变量前必须加符号“&”

12.如果嵌入的SELECT语句的查询结果肯定是单元组,那么嵌入时 [ ] A.肯定不涉及游标机制

B.必须使用游标机制

C.是否使用游标,由应用程序员决定 D.是否使用游标,与DBMS有关

13.卷游标的推进语句“EXEC SQL FETCH RELATIVE -4”表示 [ ] A.把游标移向查询结果的第4行

B.把游标移向查询结果的倒数第4行 C.把游标从当前位置推进4行 D.把游标从当前位置返回4行

14.卷游标的推进语句“EXEC SQL FETCH ABSOLUTE -3 ”表示 [ ] A.把游标移向查询结果的第3行

B.把游标移向查询结果的倒数第3行 C.把游标从当前位置推进3行 D.把游标从当前位置返回3行 3.3.3 简答题

1.试叙述SQL的关系代数特点和元组演算特点。

答:SQL的SELECT语句的基本句法来自于关系代数表达式πL(σF(R1×?×Rm)),并且SQL中有并(UNION)、交(INTERSECT)和差(EXCEPT)等操作,因此SQL具有关系代数特点。 SELECT语句中出现的基本表名,都应该理解成基本表中的元组变量,而列名应理解成元组分量,这样SQL就具有了元组演算的特点。

2.SQL语言对于“查询结果是否允许存在重复元组”是如何实现的?

答:对于SELECT语句中SELECT子句,若用“SELECT DISTINCT”形式,则查询结果中不允许有重复元组;若不写DISTINCT字样,则查询结果中允许出现重复元组。 3.试对SELECT语句中使用的基本表名和列名的语义作详细的解释。

答:在基本SQL中,SELECT语句中使用的基本表名都应该理解成表中的元组变量,而列名

就成了元组分量。这样就使SELECT语句带有元组演算的特点。

(注:实际上,在基本SQL中,把关系变量和元组变量混为一谈了。这在面向对象数据库中得到了纠正,在引用表时,都要为表定义一个元组变量。)

4.SELECT语句中,何时使用分组子句,何时不必使用分组子句?

答:SELECT语句中使用分组子句的先决条件是要有聚合操作。当聚合操作值与其他属性的值无关时,不必使用分组子句。譬如求男同学的人数。此时聚合值只有一个,因此不必分组。 当聚合操作值与其他属性的值有关时,必须使用分组子句。譬如求每一性别的人数。此时聚合值有两个,与性别有关,因此必须分组。

3.4 练习题答案

3.4.1 填空题答案

1.基本表 视图 行 列

2.基本表 视图 实表 虚表 3.应用程序 终端用户 4.视图

(2003/9/21) (GJ-DA) (共2页) 目录--11

5.基本表、视图、索引、完整性规则等 6.惟一 非空

7.若元组在集合中,其值为true,否则为false

8.与零个或多个字符组成的字符串匹配 与单个字符匹配 9.若元组值大于集合中某一元组值,则其值为true,否则为false 10.若元组值小于集合中每一元组值,则其值为true,否则为false 11.交互式SQL 嵌入式SQL 12.SQL语句 函数调用 13.SQL函数定义库

14.EXEC SQL 分号(;)

15.可以进退自如的游标(即可随意推进或返回) 3.4.2 单项选择题答案

1.A 2.C 3.D 4.C 5.C 6.C 7.C 8.C 9.B 10.C 11.C 12.C 13.D 14.B 3.4.3 简答题答案

1.答:SQL的SELECT语句的基本句法来自于关系代数表达式πL(σF(R1×?×Rm)),

并且SQL中有并(UNION)、交(INTERSECT)和差(EXCEPT)等操作,因此SQL具有关系代数特点。 SELECT语句中出现的基本表名,都应该理解成基本表中的元组变量,而列名应理解

成元组分量,这样SQL就具有了元组演算的特点。

2.答:对于SELECT语句中SELECT子句,若用“SELECT DISTINCT”形式,则查询结

果中不允许有重复元组;若不写DISTINCT字样,则查询结果中允许出现重复元组。 3.答:在基本SQL中,SELECT语句中使用的基本表名都应该理解成表中的元组变量,而

列名就成了元组分量。这样就使SELECT语句带有元组演算的特点。

(注:实际上,在基本SQL中,把关系变量和元组变量混为一谈了。这在面向对象数据库中得到了纠正,在引用表时,都要为表定义一个元组变量。)

4.答:SELECT语句中使用分组子句的先决条件是要有聚合操作。当聚合操作值与其他属性

的值无关时,不必使用分组子句。譬如求男同学的人数。此时聚合值只有一个,因此不必分组。 当聚合操作值与其他属性的值有关时,必须使用分组子句。譬如求每一性别的人数。

此时聚合值有两个,与性别有关,因此必须分组。

(2003/9/21) (GJ-DA) (共2页) 目录--12


数据库原理 习题库4.doc 将本文的Word文档下载到电脑
搜索更多关于: 数据库原理 习题库4 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219