您的当前位置:首页正文

数据库应用开发练习卷

2021-01-18 来源:步旅网


1. 每个数据库有且只能有一个 B 。

A.次数据文件 B.主数据文件 C.日志文件 D.其他

2. 如果数据库中的数据量非常大,除了存储在主数据文件中,可以将一部分数据存储在 A 。

A.次数据文件 B.主数据文件 C.日志文件 D.其他

3. SQL Server的每个数据库都包含主要数据文件,扩展名为 A 。

A.mdf B.ndf C.ldf D.df

4. SQL语言是 C 语言。

A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库

5. 下列哪项不是安装SQL Server 2008之前应该做的准备工作?D

A.增强物理安全性 B.禁用NetBIOS和服务器消息块

C.隔离服务 D.禁止使用防火墙

6. SQL Server的四个系统数据库中, C 数据库会作为新建数据库的模板。

A.master B.tempdb C.model D.msdb

7. 盘区是SQL Server为表和索引分配空间的最小单位,由 C 个连续页面组成。

A.1 B.4 C.8 D.16

8. 若表中的一个字段定义类型为varchar,长度为20,当在此字段中输入字符串“表的创建与管理”时,此字段将占用 C 字节的存储空间。

A.1 B.7 C.14 D.20

9. decimal(8,3)表示数值中共有 B 位整数。

A.8 B.5 C.3 D.1

10. B 用于指定一个字段的默认值。

A.主键约束 B.默认值约束 C.惟一性约束 D.检查约束

11. 从一张表中删除所有记录,但表的结构、字段约束等仍然存储在数据库中,可以使用语句 D 。

A.ALTER TABLE B.DROP TABLE

C.DELETE TABLE D.TRUNCATE TABLE

12. 在SELECT语句中, A 子句可用于对查询到的记录进行分组。

A.GROUP BY B.ORDER BY C.WHERE D.FROM

13. 在SELECT语句的WHERE子句的条件表达式中,可以匹配单个字符的通配符是 C 。

A.* B.% C._ D.?

14. 下面列出的关于索引的说法中,哪一条是不正确的 A 。

A. 建立索引加快了检索速度,也加快了数据修改速度

B.创建索引需要花费时间和占用空间

C. 索引既可以在定义表时创建,也可以在定义了表之后创建

D. 每张表中只能有一个聚集索引

15. 在哪种索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同 A 。

A.聚集索引 B.非聚集索引 C.两者都是 D.两者都不是

16. 你是某大型商场的数据库开发人员,要实现对商品的销售情况的复杂统计。这个统计每次根据用户提供的一个商品代号,访问一些表中的数据进行统计,最后返回一个值。你要在SELECT、UPDATE和DELETE语句中使用这个计算的结果。哪种实现方法最有效 D ?

A. 内嵌表值用户定义函数 B. 存储过程

C. 视图 D. 标量用户定义函数

17. 在SQL Server中, A 用于注释单行。

A.-- B./*……*/ C.// D.’

18. 下列关于存储过程的作用中,哪一条是不正确的 D 。

A.存储过程能实现模块化程序设计

B.存储过程可以提高执行效率

C.存储过程可作为安全机制使用

D.存储过程增加网络流量

19. sp_help属于哪一种存储过程 A 。

A.系统存储过程 B.用户定义存储过程 C.扩展存储过程 D.其他

20. 你在SQL Server 2000数据库中创建了定单表:

CREATE TABLE 定单表

( 定单号 int IDENTITY(100001,1) PRIMARY KEY,

雇员代号 int NOT NULL,

客户代号 int NOT NULL,

订购日期 datetime NOT NULL,

订购金额 money NOT NULL

)

由于业务量很大,定单表已经存放了大量的数据。你想删除3年以前的订购信息,下面哪个语句能够完成改任务 A ?

A.DELETE FROM 定单表 WHERE 定单日期 < DATEADD( YY, -3, GETDATE() )

B.DELETE FROM 定单表 WHERE 定单日期 < DATEADD( YY, 3, GETDATE() )

C.DELETE FROM 定单表 WHERE 定单日期 < GETDATE() - 3

D.DELETE FROM 定单表 WHERE 定单日期 < GETDATE() + 3

21. 要保证数据库的数据独立性,需要修改的是( A )

A.三层模式之间的两种映射 B.模式与内模式

C.模式与外模式 D.三层模式

22.下列四项中说法不正确的是( C )

A.数据库减少了数据冗余 B.数据库中的数据可以共享

C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性

23.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( C )

A.多对多 B.一对一 C.多对一 D.一对多

24.下列四项中,必须进行查询优化的是( A )

A.关系数据库 B.网状数据库

C.层次数据库 D.非关系模型

25.在视图上不能完成的操作是( C )

A.更新视图 B.查询

C.在视图上定义新的基本表 D.在视图上定义新视图

26.关系数据模型的三个组成部分中,不包括( C )

A.完整性规则 B.数据结构 C.恢复 D.数据操作

27.关系代数表达式的优化策略中,首先要做的是( B )

A.对文件进行预处理 B.尽早执行选择运算

C.执行笛卡儿积运算 D.投影运算

28.下列四项中,不属于关系数据库特点的是( D )

A.数据冗余小 B.数据独立性高

C.数据共享性好 D.多用户访问

29.数据库的并发操作可能带来的问题包括( A )

A.丢失更新 B.数据独立性会提高

C.非法用户的使用 D.增加数据冗余度

30.在基本SQL语言中,不可以实现( D )

A.定义视图 B.定义基表

C.查询视图和基表 D.并发控制

31.单个用户使用的数据视图的描述称为 ( A )

A.外模式 B.概念模式 C.内模式 D.存储模式

32.子模式DDL用来描述 ( B )

A.数据库的总体逻辑结构 B.数据库的局部逻辑结构 C.数据库的物理存储结构

D.数据库的概念结构

33.在DBS中,DBMS和OS之间的关系是 ( B )

A.相互调用 B.DBMS调用OS C.OS调用DBMS D.并发运行

34.五种基本关系代数运算是 ( A )

A.∪,-,×,π和σ B.∪,-,∞,π和σ

C.∪,∩,×,π和σ D.∪,∩,∞,π和σ

35.当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是 ( D )

A.左外联接 B.右外联接 C.外部并 D.外联接

36.下列聚合函数中不忽略空值 (null) 的是 ( C )

A.SUM (列名) B.MAX (列名) C.COUNT ( * ) D.AVG (列名)

37.设关系模式R (A,B,C),F是R上成立的FD集,F = {B→C},则分解ρ = {AB,BC}相对于F ( A )

A.是无损联接,也是保持FD的分解 B.是无损联接,但不保持FD的分解

C.不是无损联接,但保持FD的分解 D.既不是无损联接,也不保持FD 的分解

38.关系模式R分解成ρ = {R1,…,Rk},F是R上的一个FD集,那么R中满足F的每一个关系r,与其投影联接表达式mρ(r)间的关系满足 ( A )

A.rí mρ(r) B.mρ(r) í r C.r = mρ(r) D.r≠mρ(r)

39.在数据库设计中,将ER图转换成关系数据模型的过程属于 ( B )

A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段

40.SQL中,下列涉及空值的操作,不正确的是 ( C )

A.AGE IS NULL B.AGE IS NOT NULL C.AGE = NULL D.NOT (AGE IS NULL)

1. SQL Server 2008包含哪些组件,其功能各是什么?

答: Microsoft SQL Server 2008系统由4个组件组成,这4个组件被称为4个服务,分别是数据库引擎、Analysis Services、Reporting Services和Integration Services。

数据库引擎是Microsoft SQL Server 2008系统的核心服务,负责完成数据的存储、处理、查询和安全管理等操作。

分析服务(SQL Server Analysis Services,简称为SSAS)的主要作用是提供多维分析和数据挖掘功能。

报表服务(SQL Server Reporting Services,简称为SSRS)为用户提供了支持Web方式的企业级报表功能。

集成服务(SQL Server Integration Services,简称SSIS)是一个数据集成平台,负责完成有关数据的提取、转换和加载等操作。

2. 如何管理SQL Server 2008的权限层次结构?

答:对数据的访问是通过SQL Server 2008的权限层次结构进行管理的。可以使用GRANT、DENY和REVOKE语句来管理这个权限层次结构。

● GRANT:允许一个数据库用户或角色执行所授权限指定的操作。

● DENY:拒绝一个数据库用户或角色的特定权限,并且阻止它们从其他角色中继承这个权限。

● REVOKE:取消先前被授予或拒绝的权限。

3. T-SQL和SQL的关系是什么?

答:SQL全称是“结构化查询语言(Structured Query Language)”,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。T-SQL是标准 SQL 程式设计语言的增强版,它是用来让应用程式与 SQL Server 沟通的主要语言。T-SQL 提供标准 SQL的DDL 和 DML 功能,加上延伸的函数、系统预存程序以及程式设计结构(例如 IF 和 WHILE)让程式设计更有弹性。可以理解成T-sql是Sql Server支持的sql语法,而不是软件。

4. 什么是值域完整性、实体完整性、引用完整性和用户定义的完整性?

答:实体完整性,要求表中每一条记录(每一行数据)是惟一的,即它必须至少拥有一个惟一标识以区分不同的数据行。实现方法有:主键约束PRIMARY KEY、惟一性约束UNIQUE、惟一索引UNIQUE INDEX、标识IDENTITY等 。

值域完整性,限定表中输入数据的数据类型与取值范围。实现方法:默认值约束DEFAULT或默认对象、核查约束CHECK、外键约束FOREIGN KEY、规则RULE 、数据类型、非空性约束NOT NULL等。

引用完整性,指对数据库进行添加、删除、修改数据时,要维护表间数据的一致性。实现方法:外键约束FOREIGN KEY、核查约束CHECK、触发器TRIGGER、存储过程PROCEDURE。

用户定义的完整性,用于实现用户特殊要求的数据规则或格式。实现方法:默认值DEFAULT、核查约束CHECK、规则RULE 等。

5. 试说明存储过程的特点及分类。

答:存储过程是事先编好的、存储在数据库中一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。

SQL Server 2008支持不同类型的存储过程:系统存储过程、扩展存储过程、用户存储过程,以满足不同的需要。

6. 什么是事务?简述事务ACID原则的含义。

答:事务(TRANSACTION)是由对数据库的若干操作组成的一个逻辑工作单元,这些操作要么都执行,要么都不执行,是一个不可分割的整体。事务用这种方式保证数据满足并发性和完整性的要求。使用事务可以避免发生有的语句被执行,而另外一些语句没有被执行,从而造成数据不一致的情况。

事务的处理必须满足4原则,即原子性(A)、一致性(C)、隔离性(I)和持久性(D),简称ACID原则:

● 原子性(Atomicity):事务必须是原子工作单元,事务中的操作要么全部执行,要么全部不执行,不能只完成部分操作。原子性在数据库系统中,由恢复机制来实现;

● 一致性(Consistency):事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态。数据库一致性的定义是由用户负责的,如前面所述的银行转账,用户可以定义转账前后两个账户金额之和应该保持不变;

● 隔离性(Isolation):系统必须保证事务不受其他并发执行事务的影响,即当多个事务同时运行时,各事务之间相互隔离,不可互相干扰。事务查看数据时所处的状态,要么是

另一个并发事务修改它之前的状态,要么是另一个并发事务修改它之后的状态,事务不会查看中间状态的数据。隔离性通过系统的并发控制机制实现;

● 持久性(Durability):一个已完成的事务对数据所做的任何变动在系统中都是永久有效的,即使该事务产生的修改是不正确,错误也将一直保持。持久性通过恢复机制实现,发生故障时,可以通过日志等手段恢复数据库信息。

7. 简述SQL Server 2008的安全层次?

答:在SQL Server 2008中,数据的安全保护由4个层次构成。SQL Server 2008主要对其中的3个层次提供安全控制。

(1) 远程网络主机通过Internet访问SQL Server 2008服务器所在的网络,这由网络环境提供某种保护机制。

(2) 网络中的主机访问SQL Server 2008服务器,首先要求对SQL Server进行正确配置;其次是要求拥有对SQL Server 2008实例的访问权—— 登录名。

(3) 访问SQL Server 2008数据库,要求拥有对SQL Server 2008数据库的访问权——数据库用户。

(4) 访问SQL Server 2008数据库中的表和列,这要求拥有对表和列的访问权—— 权限。

8. 什么是架构,架构有什么用处?

答:SQL Server 2008实现了ANSI中有关架构的概念。架构是一种允许用户对数据库对象进行分组的容器对象。架构对如何引用数据库对象有很大的影响。在SQL Server 2008中,一个数据库对象通过4个命名部分所组成的结构来引用:

<服务器>.<数据库>.<架构>.<对象>

使用架构的一个好处是它可以将数据库对象与数据库用户分离,可以快速地从数据库中删除数据库用户。在SQL Server 2008中,所有的数据库对象都隶属于架构,在对数据库对象或者对其存在于数据库应用程序中的相应引用没有任何影响的情况下,可以更改并删除数据库用户。这种抽象的方法允许用户创建一个由数据库角色拥有的架构,以使多个数据库用户拥有相同的对象。

9. 说明T-SQL变量的分类及各类变量的特点。

答:在SQL中,我们常常使用临时表来存储临时结果,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,我们可以考虑使用变量,另外,当一个SQL语句中的某些元素经常变化时,比如选择条件,也可以使用变量。变量分为局部变量和全局变量。在SQL Server 2008系统中,变量的命名规则如下:

● 第一个字符必须是字母、数字、下画线或@符号。需要注意的是,符号“@”开头的变量表示局部变量、符号“@@”开头的变量表示全局变量。

● 变量名不能是T-SQL语言的系统保留字(如IF、ELSE、CONTINUE等),包括大写和小写形式。

变量名中不允许出现空格或其他特殊字符

10. 简述WHERE子句可以使用的搜索条件及其意义。

答:在WHERE子句中,可以使用的查询条件有以下几种情况:

1) 使用比较运算符:比较运算符来比较表达式值的大小,运算结果为TRUE或者FALSE。

2) 使用逻辑运算符:使用逻辑运算符,连接WHERE子句中的多个查询条件。

3) 使用LIKE模式匹配:使用LIKE模式匹配运算符,用于指出一个字符串是否与指定的字符串相匹配。

4) 使用BETWEEN和IN运算符来确定范围。

5) 使用NULL运算符判断一个表达式的值是否为空值。

11. 外键约束的特点是什么?

答:FOREIGN KEY约束是用于建立和加强两个表数据之间的链接的一列或多列。设置表中的外键约束是为了保证数据的参照完整性。SQL Server 2008中的关系保证了表之间的连接,用外键表(参照关系)中的外键引用主键表(被参照关系)中的主键。一旦创建了关系并将关系成功地加入到数据库中,就能够保证数据的参照完整性。FOREIGN KEY约束确保了同一个表或者不同表之间的引用完整性。

12. 数据库导入导出的概念和作用是什么?

答:通过导入和导出操作可以在SQL Server 2005和其他异类数据源(例如Excel或Oracle数据库)之间轻松地移动数据。例如,可以将数据从Excel应用程序导出到数据文件,然后将该数据文件导入到SQL Server表中。导出是指将数据从SQL Server表复制到数据文件中。导入是指将数据从数据文件加载到SQL Server表中。

根据下面所给的教学库,写出SQL语句。

学生(学号char(8),姓名char(8),性别char(2),系名char(20), 出生年月 datetime)

选课(学号char(8),课程号char(10),成绩int)

课程(课程号char(8),课程名 char(30) ,课程学分int ) 三张表

(1)从教学库中查询出每门课程(课程名)被选修的学生数。

Select 课程.课程号,课程.课程名,count(*) as 选课人数

from 课程,选课

where课程.课程号=选课.课程号

group by 课程.课程号

(2)从教学库中查询出所有已被学生选修的课程(课程名)。

select *

from 课程

where exists (select * from 选课 where课程.课程号=选课.课程号)

(3) 查找学生表中电子工程系的学生的姓名、系名和出生年月,结果按出生年月降序排列。

SELECT姓名,系名,出生年月

FROM学生

WHERE系名=‘电子工程系’

ORDER BY出生年月DESC

(4)查找姓名以“李”打头的所有学生信息。

SELECT *

FROM学生

WHERE姓名 LIKE ‘李%’

(5) 从教学库中查询出所有学生的选课情况,要求没选择任何课程的学生信息也反映出来。

SELECT *

FROM 学生 LEFT JION 选课 ON 学生.学号=选课.学号

(6)向课程表插入一条记录。

INSERT INTO课程(课程号,课程名,课程学分)

VALUES (‘A0074’,‘大学英语’,4)

现有关系数据库如下:

学生(学号,姓名,性别,专业、奖学金)

课程(课程号,名称,学分)

学习(学号,课程号,分数)

用关系代数表达式实现下列1—4小题:

(1)检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数;

Π学号,姓名,课程名,分数(σ奖学金>0∧专业=国际贸易(学生∞学习∞课程))

(2)检索学生成绩得过满分(100分)的课程的课程号、名称和学分;

Π课程号,名称,学分(σ分数=100(学习∞课程))

(3)检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业;

Π学号,姓名,专业(σ奖学金<=0∧分数>95(学生∞学习))

(4)检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业;

Π学号,姓名,专业(学生)—Π学号,姓名,专业(σ分数<80(学生∞学习))

用SQL语言实现下列5—8小题:

(5)检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业;

SELECT 学生.学号,姓名,专业

FROM 学生,学习

WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND 奖学金<=0 AND 分数>95

(6)检索没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业;

SELECT 学号,姓名,专业

FROM 学生

WHERE 学号 NOT IN

(SELECT 学号

FROM 学习

WHERE 分数<80)

(7)对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元;

UPDATE 学生

SET 奖学金=1000

WHERE 奖学金<=0 AND 学号 IN

(SELECT 学号

FROM 学习

WHERE 分数=100)

(8)定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分;

CREATE VIEW AAA(课程号,名称,学分)

AS SELECT 课程号,名称,学分

FORM 课程

WHERE 课程号 IN

(SELECT 课程号

FROM 学习

WHERE 分数=100)

1. 建立课程表,它包括三个属性:课程号、课程名和课程学分。其中课程号为主键,课程名唯一,课程学分只取1至5之间的整数,可以取空值。

Create table 课程(

课程号char(4) primary key,

课程名char(12) not null unique,

课程学分int check(课程学分>=1 and课程学分〈=5 )

2. 创建一个名为FindCustomer1的存储过程,可以用它来找出SQL SERVER中的northwind数据库的Customer表中,CustomerID为指定值(输入参数)的记录的ContactName字段的名称,另外指定一个输出参数LineNum做为输出参数,还有必须在存储过程中判断CustomerID不能为空串,是的话要打印出出错信息,并返回错误值-1,如果查询成功在输出变量LineNum中保留选出的行数,然后返回值0。写出相应的SQL语句。

USE NorthWind

GO

CREATE PROC FindCustomer1

@LineNum int OUTPUT,

@CustomerID char (5)

AS

IF LEN(@CustomerID)=0

BEGIN

PRINT 'You must supply a valid CustomerID'

RETURN -1

END

SELECT contactName

From Customers WHERE CustomerID=@CustomerID

SET @LineNum = @@ROWCOUNT

RETURN 0

3. 图书出版管理数据库中有两个基本表:

图书 (书号,书名,作者编号,出版社,出版日期)

作者 (作者编号,作者名,年龄,地址)

试用SQL语句写出下列查询:检索年龄低于作者平均年龄的所有作者的作者名、书名和出版社。

SELECT 作者名,书名,出版社

FROM 图书,作者

WHERE 图书 . 作者编号 = 作者 . 作者编号

AND 年龄 < = (SELECT AVG (年龄)

FROM 作者);

4. 学校有多名学生,财务处每年要收一次学费。为财务处收学费工作设计一个数据库,包括两个关系:

学生 (学号,姓名,专业,入学日期)

收费 (学年,学号,学费,书费,总金额)

假设规定属性的类型:学费、书费、总金额为数值型数据;学号、姓名、学年、专业为字符型数据;入学日期为日期型数据。列的宽度自定义。试用SQL语句定义上述表的结构。(定义中应包括主键子句和外键子句)

CREATE TABLE 学生

(学号 CHAR (8),

姓名 CHAR (8),

专业 CHAR (13),

入学日期 DATE,

PRIMARY KEY (学号));

CREATE TABLE 收费

(学年 CHAR (10),

学号 CHAR (8),

学费 NUMERIC (4),

书费 NUMERIC (5,2),

总金额 NUMERIC (7,2),

PRIMARY KEY (学年,学号),

FOREIGN KEY (学号) REFERENCES 学生 (学号));

因篇幅问题不能全部显示,请点此查看更多更全内容