当前位置:首页 » 操作系统 » 数据库试题及

数据库试题及

发布时间: 2024-03-30 05:51:17

数据库经典笔试题和面试题答案

如下这些有关数据库知识考查的经典笔试题,非常全面,对计算机专业毕业生参加笔试会很有帮助,建议大家收藏。
一、选择题

1. 下面叙述正确的是___c___。

A、算法的执行效率与数据的存储结构无关

B、算法的空间复杂度是指算法程序中指令(或语句)的条数

C、算法的有穷性是指算法必须能在执行有限个步骤之后终止

D、以上三种描述都不对

2. 以下数据结构中不属于线性数据结构的是___c___。

A、队列B、线性表C、二叉树D、栈

3. 在一棵二叉树上第5层的结点数最多是__b____。2的(5-1)次方

A、8 B、16 C、32 D、15

4. 下面描述中,符合结构化程序设计风格的是___a___。

A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑

B、模块只有一个入口,可以有多个出口

C、注重提高程序的执行效率 D、不使用goto语句

5. 下面概念中,不属于面向对象方法的是___d___。

A、对象 B、继承 C、类 D、过程调用

6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是___b___。

A、可行性分析 B、需求分析 C、详细设计 D、程序编码

7. 在软件开发中,下面任务不属于设计阶段的是__d____。

A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型

8. 数据库系统的核心是___b___。

A、数据模型 B、数据库管理系统 C、软件工具 D、数据库

9. 下列叙述中正确的是__c____。

A、数据库是一个独立的系统,不需要操作系统的支持

B、数据库设计是指设计数据库管理系统

C、数据库技术的根本目标是要解决数据共享的问题

D、数据库系统中,数据的物理结构必须与逻辑结构一致

10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是___a___。

A、内模式 B、外模式 C、概念模式 D、逻辑模式

11. Visual FoxPro数据库文件是___d___。

A、存放用户数据的文件 B、管理数据库对象的系统文件

C、存放用户数据和系统的文件 D、前三种说法都对

12. sql语句中修改表结构的命令是___c___。

A、MODIFY TABLE B、MODIFY STRUCTURE

C、ALTER TABLE D、ALTER STRUCTURE

13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是__b____。

A、部门+性别+基本工资 B、部门+性别+STR(基本工资)

C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资)

14. 把一个项目编译成一个应用程序时,下面的叙述正确的是___a___。

A、所有的项目文件将组合为一个单一的应用程序文件

B、所有项目的包含文件将组合为一个单一的应用程序文件

C、所有项目排除的文件将组合为一个单一的应用程序文件

D、由用户选定的项目文件将组合为一个单一的应用程序文件

15. 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是_a___。

A、DBS包括DB和DBMS B、DBMS包括DB和DBS

C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS

16. 在"选项"对话框的"文件位置"选项卡中可以设置___b___。

A、表单的默认大小 B、默认目录

C、日期和时间的显示格式 D、程序代码的颜色

17. 要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表_a_。

A、是同一个数据库中的两个表 B、不同数据库中的两个表

C、两个自由表 D、一个是数据库表另一个是自由表

18. 定位第一条记录上的命令是___a___。

A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP

19. 在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过__b____。

A、候选键 B、主键 C、外键 D、超键

20. 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时;EOF()为真时;BOF()为真时,命令?RECN()的结果分别是___a___。

A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0

21. 下列表达式中结果不是日期型的是___c___。

A、CTOD("2000/10/01") B、{^99/10/01}+365

C、VAL("2000/10/01") D、DATE()

22. 只有满足联接条件的记录才包含在查询结果中,这种联接为___c___。

A、左联接 B、右联接 C、内部联接 D、完全联接

23. 索引字段值不唯一,应该选择的索引类型为___b___。

A、主索引 B、普通索引 C、候选索引 D、唯一索引

24. 执行SELECT 0选择工作区的结果是___b___。

A、选择了0号工作区 B、选择了空闲的最小号工作区

C、关闭选择的工作区 D、选择已打开的工作区

25. 从数据库中删除表的命令是___a___。

A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE

26. DELETE FROM S WHERE 年龄>60语句的功能是__b____。

A、从S表中彻底删除年龄大于60岁的记录

B、S表中年龄大于60岁的记录被加上删除标记

C、删除S表 D、删除S表的年龄列 1 2

② Oracle数据库的面试题目及答案

Oracle数据库的面试题目及答案

基础题目:

1. 比较truncate和 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .

而Delete是DML操作, 需要rollback segment 且花费较长时间.

【相同点

truncate和不带where子句的, 以及drop都会删除表内的数据

不同点:

1. truncate和 只姿轿删除数据不删除表的结构(定迹谈肆义)

drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的.存储过程/函数将保留,

但是变为invalid状态.

2.语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.

truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.

3.语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动

显然drop语句将表所占用的空间全部释放

truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使侍渣用reuse storage; truncate会将高水线复位(回到最开始).

4.速度,一般来说: drop>; truncate >;

5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及

使用上,想删除部分数据行用,注意带上where子句. 回滚段要足够大.

想删除表,当然用drop

想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用.

如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据

2.Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理?

答案:nvl(字段,0).

nvl( ) 函数

从两个表达式返回一个非 null 值。

语法

NVL(eExpression1, eExpression2)

参数

eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,

则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2

的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

select nvl(a.name,空得) as name from student a join school b on a.ID=b.ID

注意:两个参数得类型要匹配

3.Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到10)和varchar2(10)类型的字段中,

其存储长度及类型有何区别?

答案:

区别: 1).CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“test",对于CHAR (10),


;

③ 数据库原理及应用试题

1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A --不太确定 14.B 15.C 16.A 17.B 18.A 19.D 20.C

1.试述事务的概念及事务的四个特性。
答:
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这个四个特性也简称为ACID特性。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

2.为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。
答:
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。
例如某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1移到仓库2存放。
则可以定义一个事务T,T包括两个操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。

3.数据库中为什么要有恢复子系统?它的功能是什么?
答:
因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。
恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。

4.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?
答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:
(1)事务内部的故障;
(2)系统故障;
(3)介质故障;
(4)计算机病毒。
事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据
库数据。

5.据库恢复的基本技术有哪些?
答:
数据转储和登录日志文件是数据库恢复的基本技术。
当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。

6. 数据库转储的意义是什么? 试比较各种数据转储方法。
答:
数据转储是数据库恢复中采用的基本技术。所谓转储即DBA定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。
静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。
动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。
为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。
转储还可以分为海量转储和增量转储两种方式。
海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。

7. 什么是日志文件?为什么要设立日志文件?
答:
(1)日志文件是用来记录事务对数据库的更新操作的文件。
(2)设立日志文件的目的是: 进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。

8. 登记日志文件时为什么必须先写日志文件,后写数据库?
答:
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

9. 针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?)
答:
事务故障的恢复:
事务故障的恢复是由DBMS自动完成的,对用户是透明的。
DBMS执行恢复步骤是:
(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。
(2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。
(3)继续反向扫描日志文件,做同样处理。
(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。
答:
系统故障的恢复:
系统故障可能会造成数据库处于不一致状态:
一是未完成事务对数据库的更新可能已写入数据库;
二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。
因此恢复操作就是要撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。
系统的恢复步骤是:
(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO队列)和未完成的事务队列(UNDO队列)。
(2)对撤销队列中的各个事务进行UNDO处理。
进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”(Before Image)写入数据库。
(3)对重做队列中的各个事务进行REDO处理。
进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”(After Image)写入数据库。
*解析:
在第(1)步中如何找出REDO队列和UNDO队列?请大家思考一下。
下面给出一个算法:
1) 建立两个事务队列:
· UNDO-LIST: 需要执行undo操作的事务集合;
· REDO-LIST: 需要执行redo操作的事务集合;
两个事务队列初始均为空。
2) 从日志文件头开始,正向扫描日志文件
· 如有新开始(遇到Begin Transaction)的事务Ti,把Ti暂时放入UNDO-LIST队列;
· 如有提交的事务(遇到End Transaction)Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列;
直到日志文件结束
答:
介质故障的恢复:
介质故障是最严重的一种故障。
恢复方法是重装数据库,然后重做已完成的事务。具体过程是:
(1)DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到转储时的一致性状态。
(2)DBA装入转储结束时刻的日志文件副本
(3)DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。

*解析
1)我们假定采用的是静态转储,因此第(1)步装入数据库后备副本便可以了。
2)如果采用的是静动态转储,第(1)步装入数据库后备副本还不够,还需同时装入转储开始时刻的日志文件副本,经过处理后才能得到正确的数据库后备副本。
3)第(2)步重做已完成的事务的算法是:
a. 正向扫描日志文件,找出故障发生前已提交的事务的标识,将其记入重做队列
b. 再一次正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。

10. 具有检查点的恢复技术有什么优点?
答:
利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要REDO,哪些事务需要UNDO。一般来说,需要检查所有日志记录。这样做有两个问题:
一是搜索整个日志将耗费大量的时间。
二是很多需要REDO处理的事务实际上已经将它们的更新操作结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了大量时间。
检查点技术就是为了解决这些问题。

11. 试述使用检查点方法进行恢复的步骤。
答:
① 从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
② 由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。
这里建立两个事务队列:
· UNDO-LIST: 需要执行undo操作的事务集合;
· REDO-LIST: 需要执行redo操作的事务集合;
把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。
③ 从检查点开始正向扫描日志文件
· 如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列;
· 如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列,直到日志文件结束;
④ 对UNDO-LIST中的每个事务执行UNDO操作, 对REDO-LIST中的每个事务执行REDO操作。

12. 什么是数据库镜像?它有什么用途?
答:
数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。
数据库镜像的用途有:
一是用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。
二是提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。

④ 计算机三级《数据库技术》单选专练及答案(2)

单选专练二

1[单选题] 下列关于浏览器/服务器架构中的应用服务器的说法中,错误的是__________。

A.应用服务器一般运行程序代码,实现面向应用领域的业务规则

B.应用服务器会根据用户请求连接相应的数据库,获取数据,并将结果返回给用户

C.应用服务器一般需要具有数据访问和数据存储功能

D.应用服务器一般提供了集群、负载均衡等公共服务,可以大幅度提高系统性能和可靠性

参考答案:C

2[单选题]设在某SELECT语句的WHERE子句中,需要对Grade列的空值进行处理。下列关于空值的操作中,错误的是__________。

A.Grade IS NOT NULL

B.Grade IS NULL

C.Grade = NULL

D.NOT (Grade IS NULL)

参考答案:C

3[单选题]如果有两个事务,同时对数据库中同一数据进行操作,不可能引起冲突的操作是

A.其中有一个是DELETE

B.一个是SELECT,另一个是UPDATE

C.两个都是SELECT

D.两个都是UPDATE

参考答案:C

4[单选题]如果有两个事务,同时对数据库中同一数据进行操作,不可能引起冲突的操作是

A.其中有一个是DELETE

B.一个是SELECT,另一个是UPDATE

C.两个都是SELECT

D.两个都是UPDATE

参考答案:C

5[单选题]若要求查找姓名中第二个字为‘阳’字的学生的学号和姓名,下列SQL语句中,哪一个(些)是正确的?

Ⅰ.SELECT S#,SNAME FROM S WHERE SNAME=‘_阳%’

Ⅱ.SELECT S#,SNAME FRQM S WHERE SNAME LIKE‘_阳%’

Ⅲ.SELECT S#,SNAME FROM S WHERE SNAME LIKE‘%阳%’

A.只有ⅠB.只有ⅡC.只有ⅢD.都正确

参考答案:B

参考解析:第(2)~(5)题基于“学生—选课—课程”数据库中的3个关系: S(S#,SNAME,SEX,AGE), SC(S#,C#,GRADE), C(C#,CNAME,TEACHER), 它们的主码分别是S#、(S#,C#)、C#

6[单选题]数据库管理系统为提高数据查询效率,可能会采用如下索引技术:

Ⅰ.有序索引 Ⅱ.聚集索引

Ⅲ.树型索引 Ⅳ.散列(哈希)索引

其中,将属性值作为参数,不采用索引键值比较,而是采用一定的计算方法定位数据的有()

A.仅ⅠB.仅Ⅰ、Ⅱ和ⅢC.仅ⅣD.都

参考答案:C

7[单选题]浏览器/服务器架构是现阶段非常流行的数据库应用系统架构。在此架构中,应用服务器起到了非常重要的作用。下列关于应用服务器的说法,错误的是()

A.应用服务器一般运行程序代码,实现面向具体应用领域的业务规则,数据库服务器承担数据存储、管理等功能

B.应用服务器会根据用户请求连接相应的数据库,获取数据并进行处理,将结果返回给用户

C.应用服务器一般需具有数据访问和数据存储等功能,在数据库服务器出现问题时可以继续向用户提供服务

D.应用服务器一般提供了集群、失效恢复、负载均衡等公共服务,可以大幅度提高系统性能和可靠性

参考答案:C

8[单选题]

下列属于商场经营管理系统数据库功能需求的是__________。

A.系统中不考虑财务核算

B.对基本销售业务要求实现秒级响应

C.多个终端同时操作数据库

D.系统需支持节假日折扣

参考答案:C

9[单选题]事务由于某些内部条件而无法继续正常执行,如非法输入、找不到数据等,这样的故障属于

A.系统故障B.磁盘故障C.事务故障D.介质故障

参考答案:C

10[单选题]人机界面是数据库应用系统的一个重要组成部分,人机界面设计与用户的关系非常密切。关于人机界面设计,下列说法错误的是()

A.人机界面设计时,应使用户感觉系统运行始终处于用户的控制之下,人机界面应该向用户及时反馈,保持人机界面与用户之间的双向交流

B.当系统发生错误时,人机界面应为用户提供有意义的反馈信息,有时可以提供截屏等功能,使用户可以了解错误,并及时向技术人员反馈问题

C.良好的人机界面应能容忍用户使用过程中发生的操作错误,并能够方便地从错误中恢复

D.设计人机界面可采用原型迭代法,首先进行用户界面详细设计,然后与用户不断讨论,改进设计方案

参考答案:D

11[单选题]现要利用Student表查询年龄最小的学生的姓名和年龄。下列实现此功能的查询语句中,正确的是__________。

A.SELECT Sname, MIN(Sage) FROM Student

B.SELECT Sname, Sage FROM Student WHERE Sage = MIN(Sage)

C.SELECT TOP 1 Sname, Sage FROM Student

D.SELECT TOP 1 Sname, Sage FROM Student ORDER BY Sage

参考答案:D

12[单选题]下列关于保持数据完整性的叙述中,不正确的是( )。

A.向关系SC插入元组时,S#和C#都不能是空值(NULL)

B.可以任意删除关系SC中的元组

C.向任何一个关系插入元组时,必须保证关系主码值的唯一性

D.可以任意删除关系C中的元组

参考答案:D

13[单选题]在SQL Server 2008中,设各系统数据库当前主要数据文件及日志文件的大小如下表所示:

数据库主要数据文件(MB)日志文件(MB)

master152

model41

msdb82

tempdb61

现要在该系统中创建一个新的用户数据库,则用户数据库中主要数据文件的

大小不能小于()

A.15MBB.4MBC.8MBD.6MB

参考答案:B

14[单选题]设SC表中记录成绩的列为:Grade,类型为int。若在查询成绩时,希望将成绩按“优”、“良”、“中”、“及格”和“不及格”形式显示,正确的Case函数是__________。

A.Case Grade

When 90~100 THEN'优'

When 80~89 TIIEN'良'

When 70~79 THEN'中'

When 60~69 THEN'及格'。

Else'不及格’

End

B.Case

When Grade between 90 and 100 THEN Grade='优'

When Grade between 80 and 89 THEN Grade='良'

When Grade between 70 and 79 THEN Grade='中'

When Grade between 60 and 69 THEN Grade='及格’

Else Grade='不及格’

End

C.Case

When Grade between 90 and 100 THEN'优'

When Grade between 80 and 89 THEN'良’

When Grade between 70 and 79 THEN'中’

When Grade between 60 and 69 THEN'及格’

Else'不及格’

End

D.Case Grade

When 90~100 THEN Grade='优’

When 80~89 THEN Grade='良’

When 70~79 THEN Grade='由’

When 60~69 THEN Grade='及格’

Else Grade='不及格’

End

参考答案:C

15[单选题] 下列关于浏览器/服务器架构中的应用服务器的说法中,错误的是__________。

A.应用服务器一般运行程序代码,实现面向应用领域的业务规则

B.应用服务器会根据用户请求连接相应的数据库,获取数据,并将结果返回给用户

C.应用服务器一般需要具有数据访问和数据存储功能

D.应用服务器一般提供了集群、负载均衡等公共服务,可以大幅度提高系统性能和可靠性

参考答案:C

16[单选题]设在某SELECT语句的WHERE子句中,需要对Grade列的空值进行处理。下列关于空值的操作中,错误的是__________。

A.Grade IS NOT NULL

B.Grade IS NULL

C.Grade = NULL

D.NOT (Grade IS NULL)

参考答案:C


更多计算机三级相关试题分享:

⑤ IBM认证数据库考试试题

(1)已知表T1中有2行数据,T2中有3行数据,执行SQL语句

“select a.* from T1 a,T2 b”后,返回的行数为______

A、2行

B、3行

C、5行

D、6行

多表查询没有指定连接条件,会导致笛卡尔积的出现,返回行数等于2张表的行数乘积,返回6行记录

考察:对多表连接、笛卡尔积的理解

答案:A

(2)、已知表T1和T2的字段定义完全相同,T1,T2中各有5条不同的数据,其中T1有2条数据存在于表T2中,语句“select * from T1 union select * from T2”

返回的行数为_______

A、8行

B、10行

C、3行

D、12行

第二题? UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

考察:UNION 的理解

答案: A

(3)、 已知表T1含有字段ID、CourseID和Score,且数据为

ID CourseID Score

3 1 90

2 1 85

2 2 90

3 2 80

则语句“select id,sum(ScorE) from T1 group by ID”的执行结果为_________

A、 ID sum(ScorE)

—– ? ———-

3 ? 170

2 ? 175

B、 ID sum(ScorE)

—– ? ———-

2 ? 175

3 ? 170

C、 ID sum(ScorE)

—– ? ———-

2 ? 170

3 ? 175

D、 ID sum(ScorE)

—– ? ———-

3 ? 175

2 170

第三题 GROUP BY 对按照ID字段进行分组,同时对ID相同字段的ScorE进行求和,GROUP by 会自动对结果集进行排序所以答案选B

考察:group by 的理解

答案: B

(4)、电话号码表t_phonebook中含有100万条数据,其中号码字段PhoneNo上创建了唯一索引,且电话号码全部由数字组成,要统计号码头为321的.电话号码的数量,下面写法执行速度最慢的是_________

A、 select count(*) from t_phonebook where phoneno >= ‘321’ and phoneno < ‘321A’

B、 select count(*) from t_phonebook where phoneno like ‘321%’

C、 select count(*) from t_phonebook where substring(phoneno,1,3) = ‘321’

A>或者<操作符会采用索引查找

B:LIKE通配符在XXX%情况下会应用索引,如果在%xxx%等情况下不会应用索引

答案: C:采用函数处理的字段不能利用索引,例如substr()? 这个题好像写成java的函数了

答案: C

(5)、已知表tbl中字段land_ID建有索引,字段cust_id建有唯一索引,下列语句查询逻辑相同,其中执行效率最优的是

A、 SELECT * FROM tbl

WHERE land_id > 750

or (cust_id=180 or cust_id=560)

B、 SELECT * FROM tbl

WHERE (cust_id=180 or cust_id=560)

or land_id > 750

C、 SELECT * FROM tbl WHERE land_id > 750

UNION

SELECT * FROM tbl WHERE cust_id = 180

UNION

SELECT * FROM tbl WHERE cust_id = 560

D、 SELECT * FROM tbl WHERE land_id > 750

UNION

( SELECT * FROM tbl WHERE cust_id = 180

UNION ALL

SELECT * FROM tbl WHERE cust_id = 560

)

C/D相比较而言,D的执行效率更高一些

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录

采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。

(6)、员工技能表Staffskill结构如下,Staff和Skill字段建有唯一约束

staff VARCHAR2(10),

skill VARCHAR2(10)

哪条语句可以查询同时拥有技能A和技能B的员工

A、 select staff from Staffskill where skill=’A’ OR skill=’B’

B、 select staff from Staffskill where skill=’A’ AND skill=’B’

C、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff

D、 select staff from Staffskill where skill=’A’ OR skill=’B’ group by staff having count(*)>1

答案:D

(7)员工表staff表结构如下

staffNo varchar2(10),

Email varchar2(50)

哪一个SQL语句查询出没有E_mail地址的员工号

A、select staffno from Staff where Email = NULL

B、select staffno from Staff where Email <> NULL

C、select staffno from Staff where Email is null

D、select staffno from Staff where Email is not null

答案: C

(8)Oracle数据库启动步骤的顺序为

1.Mount? 2.Open? 3.Nomount

A、3-1-2

B、2-3-1

C、2-1-3

D、3-2-1

答案:A

(9)存在两个结构相同的数据库表T1(col1,col2,col3)、T2(col1,col2,col3),写出一SQL语句将所有T1数据导入到T2表

A、select col1,col2,col3 from T1 INTO T2 (col1,col2,col3)

B、INSERT T1 (col1,col2,col3) INTO T2(col1,col2,col3)

C、insert into T2 (col1,col2,col3) AS select col1,col2,col3 from T1;

D、insert into T2 (col1,col2,col3) select col1,col2,col3 from T1;

答案: D

10)一个表的字段为varchar2,如果建表时没有指定长度,则默认长度为:

A、1

B、25

C、38

D、255

E、4000

F、建表时varchar2类型字段必须指定长度

答案:F

(11)用TRUNCATE和DELETE语句删除表中数据的区别?

A、TRUNCATE命令不记录日志

B、TRUNCATE命令记录日志

C、DELETE命令不记录日志

答案:A

(12)如下查询语句SELECT id_number,100/quantity from inventory如果quantity为空,则查询语句的第二个字段将返回

A、 a space

B、 a null value

C、 a value of 0

D、 a value of 100

E、 the keywork null

答案:B

(13)如下语句:SELECT i.id_number,m.id_number FROM inventory i,manufacturer m

WHERE i.manufacturer_id = m.id_number

Order by inventory.description

执行时是错误的,请问以下措施哪个能够改正这个错误?

A 在order by的子句中使用表的别名

B 在where子句中去掉表的别名

C 在where子句中用表名代替表的别名

D 在order by子句中去掉表名,只要字段名称即可

(如果2张表中,不同时存在字段名为description的话,D答案也是正确的)

答案:A

14)A表字段a 类型int中有100条记录,值分别为1至100。如下语句

SELECT a FROM A

WHERE A BETWEEN 1 AND 50

OR (A IN (25,70,95)

AND A BETWEEN 25 AND 75)

则如下哪个值在这个sql语句返回的结果集中

A、30? B、51? C、75? D、95

答案:A

15) 变量v_time = ‘23-MAY-00’,如下那条语句返回值为‘01-JAN-00’?

A SELECT ROUND(V_TIME,’DAY’) FROM DUAL;

B SELECT ROUND(V_TIME,’YEAR’) FROM DUAL;

C SELECT ROUND(V_TIME,’MONTH’) FROM DUAL;

D SELECT ROUND(TO_CHAR(V_TIME,’YYYY’)) FROM DUAL;

答案:B

16)关于索引(index)的说法哪些是错误?

A、创建索引能提高数据插入的性能

B、索引应该根据具体的检索需求来创建,在选择性好的列上创建索引

C、索引并非越多越好

D、建立索引可使检索操作更迅速

答案: A

(17)指出下面sql语句的错误之处:

select id_number “Part Number”,sum(price) “price” from inventory

where price > 50

group by “Part Number”

order by 2;

A、order by 2

B、from inventory

C、 where price > 50

D、group by “Part Number”

答案:D

(18)如下语句

if v_num > 5 then

v_example := 1;

elsif v_num > 10 then

v_example := 2;

elsif v_num < 20 then

v_example := 3;

elsif v_num < 39 then

v_example := 4;

else? v_example := 5;

如果v_num = 37,则v_example的值是多少?

A、1 ? B、2 C、3 D、4 E、5

答案:A

热点内容
联想怎么刷机解锁密码 发布:2024-11-28 04:31:21 浏览:244
方舟编译器厂家 发布:2024-11-28 04:13:15 浏览:979
android源码编辑 发布:2024-11-28 04:12:38 浏览:596
两路服务器是什么意思 发布:2024-11-28 03:39:39 浏览:937
sql精简版64 发布:2024-11-28 03:36:28 浏览:73
金立怎么加密图片 发布:2024-11-28 03:31:43 浏览:664
2017玩dnf电脑什么配置 发布:2024-11-28 03:30:56 浏览:520
ftp挂载存储ip配置 发布:2024-11-28 03:28:51 浏览:963
山耐斯空压机密码多少 发布:2024-11-28 03:26:28 浏览:405
安卓拍照摇一摇是什么软件 发布:2024-11-28 03:26:27 浏览:257