目前在职场中很难找到非常合格的数据库开发人员。有人说:“SQL开发是一门语言,它很容易学,但是很难掌握。”
在面试过程中多次碰到两道SQL查询的题目,一是查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列,完整的查询语句如下:
select top 10 * from A where ID >(select max(ID) from (select top 30 ID from A order by A ) T) order by A
另外一道题目的要求是查询表A中存在ID重复三次以上的记录,完整的查询语句如下:
select * from(select count(ID) as count from table group by ID)T where T.count>3
以上两道题目非常有代表意义,望各位把自己碰到的有代表的查询都贴上来。
create table testtable1
(
id int IDENTITY,
department varchar(12)
)
select * from testtable1
insert into testtable1 values(‘设计’)
insert into testtable1 values(‘市场’)
insert into testtable1 values(‘售后’)
/*
结果
id department
1 设计
2 市场
3 售后
*/
create table testtable2
(
id int IDENTITY,
dptID int,
name varchar(12)
)
insert into testtable2 values(1,’张三’)
insert into testtable2 values(1,’李四’)
insert into testtable2 values(2,’王五’)
insert into testtable2 values(3,’彭六’)
insert into testtable2 values(4,’陈七’)
/*
用一条SQL语句,怎么显示如下结果
id dptID department name
1 1 设计 张三
2 1 设计 李四
3 2 市场 王五
4 3 售后 彭六
5 4 黑人 陈七
*/
答案是:
SELECT testtable2.* , ISNULL(department,’黑人’)
FROM testtable1 right join testtable2 on testtable2.dptID = testtable1.ID
在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。
你能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗?
你希望听到的答案包括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。
NULL是什么意思?
NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。
NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。您必须使用IS NULL操作符。
什么是索引?SQL Server 2000里有什么类型的索引?
任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。
简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。
什么是主键?什么是外键?
主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。
什么是触发器?SQL Server 2000有什么不同类型的触发器?
让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。
触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。
AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。
您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里?
这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)。
另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。
对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?
你正在寻找进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。
你可以用什么来确保表格里的字段只接受特定范围里的值?
这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。
触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。
如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。
返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。
OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。
什么是相关子查询?如何使用这些查询?
经验更加丰富的开发人员将能够准确地描述这种类型的查询。
相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。
第一套
一.选择题
- 下面叙述正确的是**__**。
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止D、以上三种描述都不对
- 以下数据结构中不属于线性数据结构的是**__**。A、队列B、线性表C、二叉树D、栈
- 在一棵二叉树上第5层的结点数最多是**__**。A、8 B、16 C、32 D、15
- 下面描述中,符合结构化程序设计风格的是**__**。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率 D、不使用goto语句
- 下面概念中,不属于面向对象方法的是**__**。
A、对象 B、继承 C、类 D、过程调用
- 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是**__**。
A、可行性分析 B、需求分析 C、详细设计 D、程序编码
- 在软件开发中,下面任务不属于设计阶段的是**__**。
A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型
- 数据库系统的核心是**__**。
A、数据模型 B、数据库管理系统 C、软件工具 D、数据库
- 下列叙述中正确的是**__**。
A、数据库是一个独立的系统,不需要操作系统的支持
B、数据库设计是指设计数据库管理系统
C、数据库技术的根本目标是要解决数据共享的问题
D、数据库系统中,数据的物理结构必须与逻辑结构一致
- 下列模式中,能够给出数据库物理存储结构与物理存取方法的是**__**。
A、内模式 B、外模式 C、概念模式 D、逻辑模式
- Visual FoxPro数据库文件是**__**。
A、存放用户数据的文件 B、管理数据库对象的系统文件
C、存放用户数据和系统的文件 D、前三种说法都对
- SQL语句中修改表结构的命令是**__**。
A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE
- 如果要创建一个数据组分组报表,第一个分组表达式是”部门”,第二个分组表达式是”性别”,第三个分组表达式是”基本工资”,当前索引的索引表达式应当是**__**。
A、部门+性别+基本工资 B、部门+性别+STR(基本工资)
C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资)
- 把一个项目编译成一个应用程序时,下面的叙述正确的是**__**。
A、所有的项目文件将组合为一个单一的应用程序文件
B、所有项目的包含文件将组合为一个单一的应用程序文件
C、所有项目排除的文件将组合为一个单一的应用程序文件
D、由用户选定的项目文件将组合为一个单一的应用程序文件
- 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是**__**。
A、DBS包括DB和DBMS B、DBMS包括DB和DBS
C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
- 在”选项”对话框的”文件位置”选项卡中可以设置**__**。
A、表单的默认大小 B、默认目录
C、日期和时间的显示格式 D、程序代码的颜色
- 要控制两个表中数据的完整性和一致性可以设置”参照完整性”,要求这两个表**__**。
A、是同一个数据库中的两个表 B、不同数据库中的两个表
C、两个自由表 D、一个是数据库表另一个是自由表
- 定位第一条记录上的命令是**__**。
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
- 在关系模型中,实现”关系中不允许出现相同的元组”的约束是通过**__**。
A、候选键 B、主键 C、外键 D、超键
- 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时;EOF()为真时;BOF()为真时,命令?RECN()的结果分别是**__**。
A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
- 下列表达式中结果不是日期型的是**__**。
A、CTOD(“2000/10/01”) B、{^99/10/01}+365 C、VAL(“2000/10/01”) D、DATE()
- 只有满足联接条件的记录才包含在查询结果中,这种联接为**__**。
A、左联接 B、右联接 C、内部联接 D、完全联接
- 索引字段值不唯一,应该选择的索引类型为**__**。
A、主索引 B、普通索引 C、候选索引 D、唯一索引
- 执行SELECT 0选择工作区的结果是**__**。
A、选择了0号工作区 B、选择了空闲的最小号工作区
C、关闭选择的工作区 D、选择已打开的工作区
- 从数据库中删除表的命令是**__**。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
- DELETE FROM S WHERE 年龄>60语句的功能是**__**。
A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记
C、删除S表 D、删除S表的年龄列
- SELECT-SQL语句是**__**。
A、选择工作区语句 B、数据查询语句 C、选择标准语句 D、数据修改语句
- SQL语言是**__**语言。A、层次数据库 B、网络数据库 C、关系数据库 D、非数据库
- 在SQL中,删除视图用**__**。
A、DROP SCHEMA命令 B、CREATE TABLE命令 C、DROP VIEW命令 D、DROP INDEX命令
- 以下属于非容器类控件的是**__**。A、Form B、Label C、page D、Container
- 将查询结果放在数组中应使用**__**短语。
A、INTO CURSOR B、TO ARRAY C、INTO TABLE D、INTO ARRAY
- 在命令窗口执行SQL命令时,若命令要占用多行,续行符是**__**。
A、冒号(:) B、分号(;) C、逗号(,) D、连字符(-)
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。
SQL语句正确的是**__**。
SELECT 姓名,书名 FROM 借阅,图书,读者 WHERE;
借阅.借书证号=”0001” AND;
A、图书.总编号=借阅.总编号 AND;
读者.借书证号=借阅.借书证号
B、图书.分类号=借阅.分类号 AND;
读者.借书证号=借阅.借书证号
C、读者.总编号=借阅.总编号 AND;
读者.借书证号=借阅.借书证号
D、图书.总编号=借阅.总编号 AND;
读者.书名=借阅.书名
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次。下面的SQL语句正确的是**__**。
SELECT 单位,__ FROM 借阅,读者 WHERE;
借阅.借书证号=读者.借书证号 __
A、COUNT(借阅.借书证号) GROUP BY 单位 B、SUM(借阅.借书证号) GROUP BY 单位
C、COUNT(借阅.借书证号) ORDER BY 单位 D、COUNT(借阅.借书证号) HAVING 单位
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,检索借阅了《现代网络技术基础》一书的借书证号。下面SQL语句正确的是**__**。
SELECT 借书证号 FROM 借阅 WHERE 总编号=;
A、(SELECT 借书证号 FROM 图书 WHERE 书名=”现代网络技术基础”)
B、(SELECT 总编号 FROM 图书 WHERE 书名=”现代网络技术基础”)
C、(SELECT 借书证号 FROM 借阅 WHERE 书名=”现代网络技术基础”)
D、(SELECT 总编号 FROM 借阅 WHERE 书名=”现代网络技术基础”)
二、填空题
- 算法的复杂度主要包括**__**复杂度和空间复杂度。
- 数据的逻辑结构在计算机存储空间中的存放形式称为数据的**__**。
- 若按功能划分,软件测试的方法通常分为白盒测试方法和**__**测试方法。
- 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体”工人”与实体”设备”之间存在**__**联系。
- 关系数据库管理系统能实现的专门关系运算包括选择、连接和**__**。
- 命令?LEN(“THIS IS MY BOOK”)的结果是**__**。
42.SQL SELECT语句为了将查询结果存放到临时表中应该使用**__**短语。
- 多栏报表的栏目数可以通过**__**来设置。
- 在打开项目管理器之后再打开”应用程序生成器”,可以通过按ALT+F2键,快捷菜单和”工具”菜单中的**__**。
- 数据库系统的核心是**__**。
- 查询设计器中的”联接”选项卡,可以控制**__**选择。
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
用SQL的CREATE命令建立借阅表(字段顺序要相同),请对下面的SQL语句填空:
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对图书管理数据库,查询由”清华大学出版社”或”电子工业出版社”出版,并且单价不超出20元的书名。请对下面的SQL语句填空:
SELECT 书名,出版单位,单价 FROM 图书;
WHERE_______ AND;
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对图书管理数据库,求共借出多少种图书。请对下面的SQL语句填空:
SELECT _ FROM 借阅
第一套题答案
选择题
1-5 CCBAD 6-10 BDBCA 11-15 DCBAA 16-20 BAABA 21-25 CCBBA 26-30 BBCCB 31-35 DDAAB
填空题
36.时间 37.模式或逻辑模式 38.黑盒 39. 一对多 或 1对多 或 一对n 或 1:N 或 1:n 或 1:n 或 1:N 或 一对m 或 1:M 或 1:m 或 1:m 或 1:N 40. 投影 41.15 42. Into cursor 或 Into cursor cursorname 43. 页面设置 或 列数 44. 应用程序生成器 45. 数据库管理系统 或 DBMS 46. 联接类型 或 联接条件 47. CREATE TABLE 借阅 (借书证号 C(4),总编号 C(6),借书日期 D(8)) 或 CREA TABL 借阅 (借书证号 C(4),总编号 C(6),借书日期D(8)) 或 CREATE TABLE 借阅 (借书证号 C(4),总编号 C(6),借书日期 D) 或 CREA TABL 借阅 (借书证号 C(4),总编号 C(6),借书日期 D) 48. 单价<=20 或 (出版单位=”清华大学出版社” OR 出版单位=”电子工业出版社”) 或 (出版单位=”电子工业出版社” OR 出版单位=”清华大学出版社”) 或 (出版单位=’清华大学出版社’ OR 出版单位=’电子工业出版社’) 与 (出版单位=”清华大学出版社” OR 出版单位=”电子工业出版社”) 或 (出版单位=’清华大学出版社‘) 49. COUNT(DISTINCT 总编号) 或 COUN(DISTINCT 总编号) 或 COUNT(DIST 总编号) 或 COUN(DIST 总编号)
第二套题
一、 选择题
- 以下数据结构中不属于线性数据结构的是**__**。
A、队列 B、线性表 C、二叉树 D、栈
- 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是**__**。
A、可行性分析 B、需求分析 C、详细设计 D、程序编码
- 结构化程序设计主要强调的是**__**。
A、程序的规模 B、程序的易读性 C、程序的执行效率 D、程序的可移植性
- 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是**__**。
A、概要设计 B、详细设计 C、可行性分析 D、需求分析
- 下列关于栈的叙述中正确的是**__**。A、在栈中只能插入数据 B、在栈中只能删除数据
C、栈是先进先出的线性表 D、栈是先进后出的线性表
- 下面不属于软件设计原则的是**__**。A、抽象 B、模块化 C、自底向上 D、信息隐蔽
- 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为**__**。
A、N+1 B、N C、(N+1)/2 D、N/2
- 视图设计一般有3种设计次序,下列不属于视图设计的是**__**。
A、自顶向下 B、由外向内 C、由内向外 D、自底向上
- 下列有关数据库的描述,正确的是**__**。A、数据库是一个DBF文件 B、数据库是一个关系
C、数据库是一个结构化的数据集合 D、数据库是一组文件
- 下列说法中,不属于数据模型所描述的内容的是**__**。
A、数据结构 B、数据操作 C、数据查询 D、数据约束
- 在下面的Visual FoxPro表达式中,运算结果是逻辑真的是**__**。
A、EMPTY(.NULL.) B、LIKE(‘acd’,’ac?’) C、AT(‘a’,’123abc’) D、EMPTY(SPACE(2))
- 表达式VAL(SUBS(“奔腾586”,5,1))*Len(“visual foxpro”)的结果是**__**。
A、13.00 B、14.00 C、45.00 D、65.00
- 以下关于自由表的叙述,正确的是**__**。
A、全部是用以前版本的FOXPRO(FOXBASE)建立的表
B、可以用Visual FoxPro建立,但是不能把它添加到数据库中
C、自由表可以添加到数据库中,数据库表也可以从数据库中移出成为自由表
D、自由表可以添加到数据库中,但数据库表不可从数据库中移出成为自由表
- 下面关于数据环境和数据环境中两个表之间的关系的陈述中,__是正确的。
A、数据环境是对象,关系不是对象 B、数据环境不是对象,关系是对象
C、数据环境是对象,关系是数据环境中的对象 D、数据环境和关系均不是对象
- 在”报表设计器”中,可以使用的控件是**__**。
A、标签、域控件和线条 B、标签、域控件和列表框
C、标签、文本框和列表框 D、布局和数据源
16.用二维表数据来表示实体及实体之间联系的数据模型称为**__**。
A、实体–联系模型 B、层次模型 C、网状模型 D、关系模型
- 用来指明复选框的当前选中状态的属性是**__**。A、Selected B、Caption C、Value D、ControlSource
- 使用菜单操作方法打开一个在当前目录下已经存在的查询文件zgjk.qpr后,在命令窗口生成的命令是*__*。
A、OPEN QUERY zgjk.qpr B、MODIFY QUERY zgjk.qpr
C、DO QUERY zgjk.qpr D、CREATE QUERY zgjk.qpr
- 可以伴随着表的打开而自动打开的索引是**__**。
A、单一索引文件(IDX) B、复合索引文件(CDX)C、结构化复合索引文件 D、非结构化复合索引文件
- 在数据库设计器中,建立两个表之间的一对多联系是通过以下索引实现的**__**。
A、”一方”表的主索引或候选索引,”多方”表的普通索引
B、”一方”表的主索引,”多方”表的普通索引或候选索引
C、”一方”表的普通索引,”多方”表的主索引或候选索引
D、”一方”表的普通索引,”多方”表的候选索引或普通索引
- 下列函数中函数值为字符型的是**__**。 A、DATE() B、TIME() C、YEAR() D、DATETIME()
- 下面对控件的描述正确的是**__**。
A、用户可以在组合框中进行多重选择 B、用户可以在列表框中进行多重选择
C、用户可以在一个选项组中选中多个选项按钮 D、用户对一个表单内的一组复选框只能选中其中一个
- 确定列表框内的某个条目是否被选定应使用的属性是**__**。
A、Value B、ColumnCount C、ListCount D、Selected
- 设有关系R1和R2,经过关系运算得到结果S,则S是**__**。
A、一个关系 B、一个表单 C、一个数据库 D、一个数组
- DBAS指的是**__**。A、数据库管理系统B、数据库系统C、数据库应用系统 D、数据库服务系统
- 设X=”ABC”,Y=”ABCD”,则下列表达式中值为.T.的是**__**。A、X=Y B、X==Y C、X$Y D、AT(X,Y)=0
- 在表结构中,逻辑型、日期型、备注型字段的宽度分别固定为**__**。
A、3,8,10 B、1,6,4 C、1,8,任意 D、1,8,4
- 在标准SQL中,建立视图的命令是**__**。
A、CREATE SCHEMA命令 B、CREATE TABLE命令 C、CREATE VIEW命令 D、CREATE INDEX命令
- 有关SCAN循环结构,叙述正确的是**__**。
A、SCAN循环结构中的LOOP语句,可将程序流程直接指向循环开始语句SCAN,首先判断EOF()函数的真假
B、在使用SCAN循环结构时,必须打开某一个数据库
C、SCAN循环结构的循环体中必须写有SKIP语句
D、SCAN循环结构,如果省略了子句\FOR和WHILE条件子句,则直接退出循环
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,要查询所藏图书中,各个出版社的图书最高单价、平均单价和册数,下面SQL语句正确的是**__**。
SELECT 出版单位,_,_,__;
FROM 图书管理!图书 __ 出版单位
A、MIN(单价) AVGAGE(单价) COUNT() GROUP BY B、MAX(单价) AVG(单价) COUNT() ORDER BY
C、MAX(单价) AVG(单价) SUM() ORDER BY D、MAX(单价) AVG(单价) COUNT() GROUP BY
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,求CIE单位借阅图书的读者的人数。
下面SQL语句正确的是**__**。
SELECT __ FROM 借阅 WHERE;
借书证号 _
A、COUNT (DISTINCT 借书证号)
IN (SELECT 借书证号 FROM 读者 WHERE 单位=”CIE”)
B、COUNT (DISTINCT 借书证号)
IN (SELECT 借书证号 FROM 借阅 WHERE 单位=”CIE”)
C、SUM (DISTINCT 借书证号)
IN (SELECT 借书证号 FROM 读者 WHERE 单位=”CIE”)
D、SUM (DISTINCT 借书证号)
IN (SELECT 借书证号 FOR 借阅 WHERE 单位=”CIE”)
- 查询订购单号(字符型,长度为4)尾字符是”1”的错误命令是**__**。
A、SELECT * FROM 订单 WHERE SUBSTR(订购单号,4)=”1”
B、SELECT * FROM 订单 WHERE SUBSTR(订购单号,4,1)=”1”
C、SELECT * FROM 订单 WHERE “1”$订购单号
D、SELECT * FROM 订单 WHERE RIGHT(订购单号,1)=”1”
- 在关系模型中,为了实现”关系中不允许出现相同元组”的约束应使用**__**。
A、临时关键字 B、主关键字 C、外部关键字 D、索引关键字
- 根据”职工”项目文件生成emp_sys.exe应用程序的命令是**__**。
A、BUILD EXE emp_sys FROM 职工 B、BUILD APP emp_sys.exe FROM 职工
C、LIKE EXE emp_sys FROM 职工 D、LIKE APP emp_sys.exe FROM 职工
- 当前盘当前目录下有数据库:学院.dbc,其中有”教师”表和”学院”表。
“教师”表:
“学院”表:
有SQL语句:
SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
ALL (SELECT 工资 FROM 教师 WHERE 系号=”02”)
与如上语句等价的SQL语句是**__**。
A、SELECT DISTINCT 系号 FROM 教师 WHERE工资>=;
(SELECT MAX(工资) FROM 教师 WHERE 系号=”02”)
B、SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
(SELECT MIN(工资) FROM 教师 WHERE 系号=”02”)
C、SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
ANY(SELECT 工资 FROM 教师 WHERE 系号=”02”)
D、SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=;
SOME (SELECT 工资 FROM 教师 WHERE 系号=”02”)
二、 填空题
- 若按功能划分,软件测试的方法通常分为白盒测试方法和**__**测试方法。
- 数据库系统的三级模式分别为**__**模式、内部级模式与外部级模式。
- 在最坏情况下,冒泡排序的时间复杂度为**__**。
- 在面向对象方法中,信息隐蔽是通过对象的**__**性来实现的。
- 关系模型的数据操纵即是建立在关系上的数据操纵,一般有**__**、增加、删除和修改四种操作。
41.要把帮助文件设置为复制到硬盘上的Foxhelp.chm文件,需要在”选项”对话框的**__**选项卡上设置。
- TIME( )的返回值的数据类型是**__**类型。
- 在定义字段有效性规则中,在规则框中输入的表达式中类型是***__***。
- 设计报表通常包括两部分内容:__和布局。
- __是指只有满足联接条件的记录才包含在查询结果中。
- 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
检索书价在15元至25元(含15元和25元)之间的图书的书名、作者、书价和分类号,结果按分类号升序排序。
SELECT 书名,作者,单价,分类号 FROM 图书;
WHERE______;
ORDER BY______;
- 设有如下关系表R、S和T:
R(BH,XM,XB,DWH)
S(SWH,DWM)
T(BH,XM,XB,DWH)
实现R∪T的SQL语句是***_***。
- 设有如下关系表R:
R(NO,NAME,SEX,AGE,CLASS)
主关键字是NO
其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。写出实现下列功能的SQL语句。
插入”95031”班学号为30,姓名为”郑和”的学生记录;_。
- 设有如下关系表R:
R(NO,NAME,SEX,AGE,CLASS)
主关键字是NO
其中NO为学号(数值型),NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。写出实现下列功能的SQL语句。
删除学号为20的学生记录;__。
第二套题答案
1-5 CBBDD 6-10 CBBCC 11-15 DDCCA 16-20 DCBCA 21-25 BBDAC 26-30 CDCBD 31-35 ACBBA
36.黑盒 37.概念或概念级 38.n(n-1)/2 39.封装 40.查询 41.文件位置 42.字符 或 C 43.逻辑表达式
44.数据源 45.内部联接
- 单价 BETWEEN 15 AND 25 或 单价 BETW 15 AND 25 或 单价 BETWE 15 AND 25 或 单价>=15 and 单价<=25 或 单价>=15 and 单价=<25 或 单价=>15 and 单价<=25 或 单价=>15 and 单价=<25 与 分类号 ASC 或 分类号
- SELECT * FROM R UNION SELECT * FROM T 或 SELE * FROM R UNIO SELE * FROM T 或 SELECT * FROM R UNIO SELECT * FROM T 或 SELE * FROM R UNION SELE * FROM T
- INSERT INTO R(NO,NAME,CLASS) VALUES(30,”郑和”,”95031”) 或 INSE INTO R(NO,NAME,CLASS) VALUES(30,”郑和”,”95031”)
- DELETE FROM R WHERE NO=20 或 DELE FROM R WHERE NO=20 或 DELE FROM R WHER NO=20 或 DELETE FROM R WHER NO=20
数据库面试题集
数据库笔试题及答案I
第一套
一.选择题
1. 下面叙述正确的是**__**。
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
D、以上三种描述都不对
2. 以下数据结构中不属于线性数据结构的是**__**。A、队列B、线性表C、二叉树D、栈
3. 在一棵二叉树上第5层的结点数最多是**__**。A、8 B、16 C、32 D、15
4. 下面描述中,符合结构化程序设计风格的是**__**。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率 D、不使用goto语句
5. 下面概念中,不属于面向对象方法的是**__**。
A、对象 B、继承 C、类 D、过程调用
6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是**__**。
A、可行性分析 B、需求分析 C、详细设计 D、程序编码
7. 在软件开发中,下面任务不属于设计阶段的是**__**。
A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型
8. 数据库系统的核心是**__**。
A、数据模型 B、数据库管理系统 C、软件工具 D、数据库
9. 下列叙述中正确的是**__**。
A、数据库是一个独立的系统,不需要操作系统的支持
B、数据库设计是指设计数据库管理系统
C、数据库技术的根本目标是要解决数据共享的问题
D、数据库系统中,数据的物理结构必须与逻辑结构一致
10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是**__**。
A、内模式 B、外模式 C、概念模式 D、逻辑模式
11. Visual FoxPro数据库文件是**__**。
A、存放用户数据的文件 B、管理数据库对象的系统文件
C、存放用户数据和系统的文件 D、前三种说法都对
12. SQL语句中修改表结构的命令是**__**。
A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE
13. 如果要创建一个数据组分组报表,第一个分组表达式是”部门”,第二个分组表达式是”性别”,第三个分组表达式是”基本工资”,当前索引的索引表达式应当是**__**。
A、部门+性别+基本工资 B、部门+性别+STR(基本工资)
C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资)
14. 把一个项目编译成一个应用程序时,下面的叙述正确的是**__**。
A、所有的项目文件将组合为一个单一的应用程序文件
B、所有项目的包含文件将组合为一个单一的应用程序文件
C、所有项目排除的文件将组合为一个单一的应用程序文件
D、由用户选定的项目文件将组合为一个单一的应用程序文件
15. 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是**__**。
A、DBS包括DB和DBMS B、DBMS包括DB和DBS
C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
16. 在”选项”对话框的”文件位置”选项卡中可以设置**__**。
A、表单的默认大小 B、默认目录
C、日期和时间的显示格式 D、程序代码的颜色
17. 要控制两个表中数据的完整性和一致性可以设置”参照完整性”,要求这两个表**__**。
A、是同一个数据库中的两个表 B、不同数据库中的两个表
C、两个自由表 D、一个是数据库表另一个是自由表
18. 定位第一条记录上的命令是**__**。
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
19. 在关系模型中,实现”关系中不允许出现相同的元组”的约束是通过**__**。
A、候选键 B、主键 C、外键 D、超键
20. 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时;EOF()为真时;BOF()为真时,命令?RECN()的结果分别是**__**。
A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
21. 下列表达式中结果不是日期型的是**__**。
A、CTOD(“2000/10/01”) B、{^99/10/01}+365 C、VAL(“2000/10/01”) D、DATE()
22. 只有满足联接条件的记录才包含在查询结果中,这种联接为**__**。
A、左联接 B、右联接 C、内部联接 D、完全联接
23. 索引字段值不唯一,应该选择的索引类型为**__**。
A、主索引 B、普通索引 C、候选索引 D、唯一索引
24. 执行SELECT 0选择工作区的结果是**__**。
A、选择了0号工作区 B、选择了空闲的最小号工作区
C、关闭选择的工作区 D、选择已打开的工作区
25. 从数据库中删除表的命令是**__**。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
26. DELETE FROM S WHERE 年龄>60语句的功能是**__**。
A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记
C、删除S表 D、删除S表的年龄列
27. SELECT-SQL语句是**__**。
A、选择工作区语句 B、数据查询语句 C、选择标准语句 D、数据修改语句
28. SQL语言是**__**语言。A、层次数据库 B、网络数据库 C、关系数据库 D、非数据库
29. 在SQL中,删除视图用**__**。
A、DROP SCHEMA命令 B、CREATE TABLE命令 C、DROP VIEW命令 D、DROP INDEX命令
30. 以下属于非容器类控件的是**__**。A、Form B、Label C、page D、Container
31. 将查询结果放在数组中应使用**__**短语。
A、INTO CURSOR B、TO ARRAY C、INTO TABLE D、INTO ARRAY
32. 在命令窗口执行SQL命令时,若命令要占用多行,续行符是**__**。
A、冒号(:) B、分号(;) C、逗号(,) D、连字符(-)
33. 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,查询0001号借书证的读者姓名和所借图书的书名。
SQL语句正确的是**__**。
SELECT 姓名,书名 FROM 借阅,图书,读者 WHERE;
借阅.借书证号=”0001” AND;
__
__
A、图书.总编号=借阅.总编号 AND;
读者.借书证号=借阅.借书证号
B、图书.分类号=借阅.分类号 AND;
读者.借书证号=借阅.借书证号
C、读者.总编号=借阅.总编号 AND;
读者.借书证号=借阅.借书证号
D、图书.总编号=借阅.总编号 AND;
34. 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,分别求出各个单位当前借阅图书的读者人次。下面的SQL语句正确的是**__**。
SELECT 单位,__ FROM 借阅,读者 WHERE;
借阅.借书证号=读者.借书证号 __
A、COUNT(借阅.借书证号) GROUP BY 单位 B、SUM(借阅.借书证号) GROUP BY 单位
C、COUNT(借阅.借书证号) ORDER BY 单位 D、COUNT(借阅.借书证号) HAVING 单位
35. 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对于图书管理数据库,检索借阅了《现代网络技术基础》一书的借书证号。下面SQL语句正确的是**__**。
SELECT 借书证号 FROM 借阅 WHERE 总编号=;
__
A、(SELECT 借书证号 FROM 图书 WHERE 书名=”现代网络技术基础”)
B、(SELECT 总编号 FROM 图书 WHERE 书名=”现代网络技术基础”)
C、(SELECT 借书证号 FROM 借阅 WHERE 书名=”现代网络技术基础”)
D、(SELECT 总编号 FROM 借阅 WHERE 书名=”现代网络技术基础”)
二、填空题
36. 算法的复杂度主要包括**__**复杂度和空间复杂度。
37. 数据的逻辑结构在计算机存储空间中的存放形式称为数据的**__**。
38. 若按功能划分,软件测试的方法通常分为白盒测试方法和**__**测试方法。
39. 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体”工人”与实体”设备”之间存在**__**联系。
40. 关系数据库管理系统能实现的专门关系运算包括选择、连接和**__**。
41. 命令?LEN(“THIS IS MY BOOK”)的结果是**__**。
42.SQL SELECT语句为了将查询结果存放到临时表中应该使用**__**短语。
43. 多栏报表的栏目数可以通过**__**来设置。
- 在打开项目管理器之后再打开”应用程序生成器”,可以通过按ALT+F2键,快捷菜单和”工具”菜单中的**__**。
45. 数据库系统的核心是**__**。
46. 查询设计器中的”联接”选项卡,可以控制**__**选择。
47. 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
用SQL的CREATE命令建立借阅表(字段顺序要相同),请对下面的SQL语句填空:
__
48. 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对图书管理数据库,查询由”清华大学出版社”或”电子工业出版社”出版,并且单价不超出20元的书名。请对下面的SQL语句填空:
SELECT 书名,出版单位,单价 FROM 图书;
WHERE_______ AND;
_
49. 设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
对图书管理数据库,求共借出多少种图书。请对下面的SQL语句填空:
SELECT _ FROM 借阅
第一套题答案
选择题
1-5 CCBAD 6-10 BDBCA 11-15 DCBAA 16-20 BAABA 21-25 CCBBA 26-30 BBCCB 31-35 DDAAB
填空题
36.时间 37.模式或逻辑模式 38.黑盒 39. 一对多 或 1对多 或 一对n 或 1:N 或 1:n 或 1:n 或 1:N 或 一对m 或 1:M 或 1:m 或 1:m 或 1:N 40. 投影 41.15 42. Into cursor 或 Into cursor cursorname 43. 页面设置 或 列数 44. 应用程序生成器 45. 数据库管理系统 或 DBMS 46. 联接类型 或 联接条件 47. CREATE TABLE 借阅 (借书证号 C(4),总编号 C(6),借书日期 D(8)) 或 CREA TABL 借阅 (借书证号 C(4),总编号 C(6),借书日期D(8)) 或 CREATE TABLE 借阅 (借书证号 C(4),总编号 C(6),借书日期 D) 或 CREA TABL 借阅 (借书证号 C(4),总编号 C(6),借书日期 D) 48. 单价<=20 或 (出版单位=”清华大学出版社” OR 出版单位=”电子工业出版社”) 或 (出版单位=”电子工业出版社” OR 出版单位=”清华大学出版社”) 或 (出版单位=’清华大学出版社’ OR 出版单位=’电子工业出版社’) 与 (出版单位=”清华大学出版社” OR 出版单位=”电子工业出版社”) 或 (出版单位=’清华大学出版社‘) 49. COUNT(DISTINCT 总编号) 或 COUN(DISTINCT 总编号) 或 COUNT(DIST 总编号) 或 COUN(DIST 总编号)
第二套题
一、 选择题
1. 以下数据结构中不属于线性数据结构的是**__**。
A、队列 B、线性表 C、二叉树 D、栈
2. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是**__**。
A、可行性分析 B、需求分析 C、详细设计 D、程序编码
3. 结构化程序设计主要强调的是**__**。
A、程序的规模 B、程序的易读性 C、程序的执行效率 D、程序的可移植性
4. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是**__**。
A、概要设计 B、详细设计 C、可行性分析 D、需求分析
5. 下列关于栈的叙述中正确的是**__**。A、在栈中只能插入数据 B、在栈中只能删除数据
C、栈是先进先出的线性表 D、栈是先进后出的线性表
6. 下面不属于软件设计原则的是**__**。A、抽象 B、模块化 C、自底向上 D、信息隐蔽
7. 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为**__**。
A、N+1 B、N C、(N+1)/2 D、N/2
8. 视图设计一般有3种设计次序,下列不属于视图设计的是**__**。
A、自顶向下 B、由外向内 C、由内向外 D、自底向上
9. 下列有关数据库的描述,正确的是**__**。A、数据库是一个DBF文件 B、数据库是一个关系
C、数据库是一个结构化的数据集合 D、数据库是一组文件
10. 下列说法中,不属于数据模型所描述的内容的是**__**。
A、数据结构 B、数据操作 C、数据查询 D、数据约束