文档库 最新最全的文档下载
当前位置:文档库 › 数据库考试习题及答案 (1)

数据库考试习题及答案 (1)

数据库考试习题及答案 (1)
数据库考试习题及答案 (1)

第一章习题

一、判断题

1.安装Microsoft SQL Server 2005 企业版对操作系统的最低要求可以是Microsoft Windows XP Professional SP2。( 错)

2.每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务器。(对)

二、填空题

3. MS SQL Server提供多个图形化工具,其中用来启动、停止和暂停SQL Server 服务的图形化工具称为SQLServer 配置管理器。

三、选择题

4. 下列系统数据库中,(D)数据库不允许进行备份操作。

A. master

B. msdb

C. model

D. Tempdb

5. 下列关于SQL Server 2005实例的说法中,正确的是(C)。

A.不同版本的默认实例数可能不一样多

B.不同版本的命名实例数一定一样多

C.不同版本的默认实例只有一个,命名实例数不一样多

D.不同版本的命名实例只有一个,默认实例数不一样多

6. 下列(C)数据库是SQL Server 2005在创建数据库时可以使用的模板。

A. master

B. msdb

C. model

7. 默认情况下,SQL Server 2005的系统数据库有(B)。

A. 1个个 C. 4个个

8. 在一台计算机上能安装(A)个默认实例。

A. 1

B. 50

9. 访问默认实例使用(B)作为实例名。

A. 计算机名

B. MSSQLSERVER

10. 下列叙述中正确的是(A)。

A. SQL SERVER实例是提供服务的, 所以一个SQL Server实例称为一个数据库服务器

B. SQL SERVER实例也叫做数据库引擎

C. 若计算机上安装多个SQL SERVER实例,则它们可以相互管理

11. SQL SERVER 2005实例主要提供哪些服务?(BCD)查询服务 B. 数据库服务

C. 集成服务

D. 分析服务

12. 一台计算机的计算机名为computer,若在该计算机上打开配置管理器看到如图1所示内容,则说明本机上已安装3个实例,其实例名分别是(BCD)

A. computer

B. MSSQLSERVER

C. computer\SQLEXPRESS

D. computer\SERVER

13. 连接数据库服务器时需要提供哪些信息?(A或者B)

A. 要连接的服务器名

B. 身份验证信息

C. 连接协议信息

14. 能否将他人计算机上运行的实例注册到你的SSMS中?(A)

A. 不能

B. 能

四、简答题

15. 什么是SQL Server 2005实例,其主要功能有哪些?

答:SQL Server 2005 的实例实际上就是虚拟的SQL Server 服务器。每个实例都包括一组私有的程序和数据文件,同时也可以和其他实例共用一组共享程序或文件。

在数据库实例中,可以创建数据库及其对象,实现安全性,对服务器对象、复制和SQL Server 代理等进行管理。数据库引擎是服务器的核心部件,SQL Server Management Studio 是SQL Server 2005 最重要的管理工具,用于访问、配置和管理SQL Server 2005的组件。

16.简述SQL Server 2005服务器与客户端的关系?

答:在使用SQL Server 2005 软件过程中,客户机通常是指一些适合在家庭、实验室、办公环境下使用的安装了一些享用网络服务的PC,这些PC上网的目的是享受各种网络服务。

服务器是指能够适应大容量数据存储和频繁的客户机访问操作的计算机,这类计算机一般配置大容量硬盘和24小时不间断的UPS电源、具备可热插拔功能、安装服务器和操作系统下的IIS软件,能够在计算机网络中提供各种网络服务。

客户机通过网络将要求传递给服务器,服务器按照客户机的要求返回结果。

第二章习题

一、选择题

1. 在sql server 2000中,关于数据库说法错误的是(C)。

A.数据库在磁盘上默认的存储位置是:SQL Server安装路径\Microsoft SQL Server\MSSQL\Data

B.一个数据库至少应包含一个数据库文件(*.mdf)和一个事务日志文件(*.ldf)

C.只有当数据库中不存在数据的情况下,才可以进行数据库的收缩操作。

D.可以通过从A机器拷贝数据库文件和事务日志文件至B机器,然后通过在B 机器上执行相应的附加数据库操作,实现数据库从A机器到B机器的复制。

2. 下列哪个不是sql 数据库文件的后缀。(C)

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

3. 每个数据库有且只有一个(A)

A、主要数据文件

B、次要数据文件

C、日志文件

D、索引文件

4. 在MS SQL Server中,关于数据库的说法正确的是(D)

A、一个数据库可以不包含事务日志文件

B、一个数据库可以只包含一个事务日志文件和一个数据库文件

C、一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件

D、一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件

5. 以下名称中,(ABC)是SQL SERVER2005的系统数据库名:

A. master

B. model

C. tempdb

D. AdventureWorks

6. 一个SQL SERVER2005数据库至少有2个数据库文件,其文件扩展名分别是(A C)

A. mdf

B. ndf

C. ldf

7. 下列正确的标识符有(BDE)

A. my table

B. my_table

C. 123

D. [123]

E. table1

8. 一个数据库至少有1个文件组,这个文件组名是(B)

A. main

B. primary

9. 删除数据库使用(B)语句。

A. alter database

B. drop database

10. 使用(B)方法,可以使数据库物理存储扩展到多个不同的物理或逻辑盘区。

A. 无需使用什么方法,数据库可自行实现物理存储扩展

B. 为数据库创建多个数据文件,这些数据文件的位置分别在多个不同的物理或逻辑盘区中

11. 创建SQL Server 2005的用户数据库时,最多不能超过(D)个。

A. 100

B. 40000 D. 30000

12. SQL Server 2005数据库文件有3类,其中主数据文件的后缀为(C)。

A. .ndf

B. .ldf

C. .mdf

D. .idf

13. SQL Server 2005中每个数据文件的基本存储单位的大小是(A)。

A. 8KB

B. 8060B

C. 64KB

D. 512B

14. 用于决策支持的数据库称为(A)数据库。

A. OLAP

B. OLTP

C. 系统

D. 用户

15. 以下关于数据存储的描述错误的是(C)。

A. 所以数据库都有一个主要数据库文件(.mdf)

B. 创建数据库时,会将model数据库复制到新数据库

C. 同一行的数据可以随意存储在不同的页上

D. 一个数据库中每1兆字节的空间能存储128个页

二、简答题

16. 简述系统数据库master,msdb,model,tempdb的功能

答:Master数据库:是SQL Server系统最重要的数据库,记录了SQL Server系统的所有系统信息。Master数据库还记录了所有其他数据库的存在、数据库文件的位置以及SQL Server的初始化信息。

msdb数据库:是代理服务数据库,为其报警、任务调度和记录操作员的操作提供存储空间。

model数据库:用于在SQL Server实例上创建所有数据库的模板。

Tempdb数据库:是一个为所有的临时表、临时存储过程及其他临时操作提供存储空间的临时数据库。SQL Server每次启动时,tempdb数据库被重新建立。当用户与SQL Server断开连接时,其临时表和存储过程自动被删除。

Tempdb数据库由整个系统的所有数据库使用,不管用户使用哪个数据库,所建立的所有临时表和存储过程都存储在tempdb上。

17. 简述SQL Server 2005中文件组的作用和分类

答:主要作用:1、对于大型数据库,如果硬件设置上需要多个磁盘驱动器,就可以把特定的对象或文件分配到不同的磁盘上,将数据库文件组织成用户文件组。2、文件组可以帮助数据库管理人员执行相应的数据布局,以及某些管理任务。

3、利用文件组,可以在特定的文件中定位特定的对象,从而将频繁查询修改的文件分离出来,以提高磁盘驱动器的效率,减少磁盘驱动器的争用。

4、为便于分配和管理,可以将数据库对象和文件一起分成文件组。

文件组有两种类型:1、主文件组。2、用户定义文件组。

18.简述收缩数据库的作用以及在SQL Server Management Studio中收缩数据库的步骤

答:作用:当系统为数据库分配的磁盘空间过大时,可以收缩数据库,以节省存储空间。数据文件和事务日志文件都可以进行收缩。数据库也可设置为按给定的时间间隔自动收缩。该活动在后台进行,不影响数据库内的用户活动。

19. 说明数据库中事务日志文件与数据文件的不同点

答:数据库事务日志文件保存用于恢复数据库的日志信息;数据文件包含的是数据和对象。

20. 在SQL Server 2005中,数据库对象包括哪些对象,列出其中5种。

答:表、索引、触发器、视图、键、约束、默认值、规则、用户定义数据类型、存储过程

第三章习题

选择题:

1. 以下哪种类型不能用作表列的数据类型?(D)

A. tinyint

B. timestamp

C. xml

D. cursor

2. 以下关于表列数据类型的描述中,(A)是正确的。

A. float是浮点数。

B. decimal是精确小数。

C. decimal和float都是精确小数。

3. 以下关于表列数据类型的描述中,(B)是正确的。

A. bit类型的值只有两个,即0、1。

B. tinyint类型的值大于等于0,小于等于255。

C. 存储一个int类型的数占2个字节。

4. 为表列定义哪些约束,可以防止向该列中输入重复值(AC)。

A. 主键约束。

B. 外键约束。

C. 唯一约束。

5. 不允许向表的主键列中输入(AB)。

A. NULL。

B. 重复值。

C. 默认值。

6. 定义check约束,限制性别列的取值必须是“男”或“女”。以下哪个约束表达式是正确的?(C)

A. 性别=='男' or 性别=='女'

B. 性别='男' and 性别='女'

C. 性别='男' or 性别='女'

D. 性别in ('男','女')

7. 以下哪个关键字用来定义记录在某属性上的约束条件(C D)

A DEFAULT

B DISTINCT

C UNIQUE

D CHECK

8. 在创建表的过程中,哪个关键字用来定义默认值(D)

9. 假定有一个用户表,表中包含字段:userid (int)、username (varchar)、password(varchar)、等,该表需要设置主键,以下说法正确的是(B)。

A.如果不能有同时重复的username和password,那么username和password可以组合在一起作为主键。

B.此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。

C.此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。

D.如果采用userid作为主键,那么在userid列输入的数值,允许为空。

10. 若要删除book表中所有数据,以下语句错误的是(C)。

table book * from book

table book from book

11. 关于Truncate table, 以下(AD)描述是错误的。

table 可跟Where从句,根据条件进行删除table 用来删除表中所有数据

C.触发器对Truncate table无效比Truncate table速度快

12. 创建一个名为‘Customers’的新表,同时要求新表中包含表‘clients’的所有记录,sql语句是(A)。

* into customers from clients into customers from clients

into customers select * from clients customers select * from clients

13. 关于主键,以下(D)说法是错误的。

A.主键可以用来确保表中不存在重复的数据行。

B.一个表必须有一个主键。

C.一个表只能有一个主键。

D.只能对整数型列设置主键。

14. 限制输入到列的值的范围,应使用(A)约束。

A. CHECK

B. PRIMARY KEY

C. FOREIGN KEY

D. UNIQUE

15. 关于数据库关系图下列哪一个是正确的(B)。

A.关系图是在同一个表中不同字段之间建立关联

B.关系图是表与表之间建立关联,与字段无关

C.关系图是在不同表中的字段之间建立关联

D.关系图是在不同数据库之间建立关联

填空题

16. 表是由行和列组成的,行有时也称为记录,列有时也称为字段或域。

17. SQL Server完整性约束包括域完整性、实体完整性、参照完整性和用户定义完整性。

18. 在下面的create table语句中,计算列是(pingjun )。

create table t1

(xh char(3),

xm varchar(8),

yuwen decimal(4,1),

yingyu decimal(4,1),

shuxue decimal(4,1),

pingjun as yuwen +yingyu+shuxue

)

19. 在下面的create table语句中,id是标识列(即自动编号列)。其中,标识种子和标识增量都是( 1 )。

create table t2

(id bigint identity(1,1),

sno char(3),

sname varchar(8),

score decimal(4,1),

email varchar(30),

phone varchar(18)

)

20. 使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度分别为8、2、20且均不允许为空。

CREATE TABLE CLASS

(CLASSNO CHAR (8) NOT NULL,

DEPARTNO CHAR (2) NOT NULL,

CLASSNAME CHAR(20) NOT NULL

简答题

21.SQL Server2005数据类型中用varchar(max)取代TEXT有意义吗?

可以保证良好的向后兼容

22.SQL Server2005的表有哪几种?

按用途分类:系统表、用户表、分区表

按表的存储时间分类:永久表、临时表

23.标识列和计算列有什么用?编写一个用到这两种列的CREATE TABLE语句。

答:设计数据表时都会给表ID添加一个标识列,使表按照递增规则增长,故标识列也称为自增列。标识列有三种特点:列的数据类型必须是不带小数的数值类型;在进行出入操作时,该列得值是由系统统一按规律生成,不允许有空值;列值不重复,每个表只能有一个标识列。

计算列区别于需要我们手动或者程序给予赋值的列,它的值来源于该表中其它列的计算值。比如,一个表中包含有数量列Number与单价列Price,我们就可以创建计算列金额Amount来表示数量*单价的结果值,创建Amount列后,在程序中需要使用计算金额这个值时,就不用取出Number列与Price列的值后相乘,而是直接取Amount列的值就可以了。

Create table score (

Sno nchar(9),

Cno nchar(6),

Usually numeric(4,1),

Final numeric(4,1),

CONSTRAINT PK_score primary key (Sno asc ,Cno asc),

CONSTRAINT fk1 foreign key (Sno) references student(Sno),

CONSTRAINT fk2 foreign key (Cno) references course(Cno),

第四章习题

填空题

1. 语句 select ascii('D'), char(67) 的执行结果是68 C。

2. 语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是:beautiful 我心中的太阳。

3. 语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:__6_7 _。

4. 语句 select round,2), round,3)的执行结果是:。

5. T-SQL 语言中,有算术运算、字符串连接运算、比较运算和逻辑运算。

6. 语句 SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是35。

7. SQL Server聚合函数有最大、最小、求和、平均和计数等,它们分别是MAX 、MIN、 SUM、avg和count。

8. SQL Server以_____#____开头的标识符,表示临时表或过程;局部变量名字必须以____@_____开头,而全局变量名字必须以@@开头。

9. 语句 select char(65), len('我们快放假了.')的执行结果是A 7。

10. 语句 select lower('beautiful'), rtrim (' 我心中的太阳 ') 的执行结果是:beautiful 我心中的太阳____________。

阅读程序,说明它的功能:在数学成绩管理数据库中查询年龄为20,性别为女的姓名,性别和年龄

use 教学成绩管理数据库

select 姓名, 性别, 年龄=datediff(year,出生日期,getdate())

from 学生信息表

where (datediff(year,出生日期,getdate())=20) and (性别='女') 11. 如下代码段的输出是__579___ 。

DECLARE @x int, @y float

select @x = 123 , @y = 456

SELECT @x+@y

12. 以下代码段的输出结果为 pass____ 。

DECLARE @point AS int

Set @point =95

IF @point >=60

select 'pass'

ELSE

select 'no pass'

13. 以下代码段的输出结果为中等

Set @point =75

SELECT CASE

WHEN @point>=90 THEN '优秀'

WHEN @point>=80 THEN '良好'

WHEN @point>=70 THEN '中等'

WHEN @point>=60 THEN '及格'

ELSE '不及格'

END AS '分数等级'

选择题

14. Select 语句中用来连接字符串的符号是_A_.

A. “+”

B. “&”

C.“||”

D.“|”

15. SQL Server数据库对象的完整名称由4部分组成。以下哪种是正确的?(B)

A. 服务器名.架构名.数据库名.对象名

B. 服务器名.数据库名.架构名.对象名

C. 数据库名.服务器名.架构名.对象名

16. 语句“use teaching”的作用是什么?(B)

A. 打开数据库teaching

B. 使用数据库teaching

C. 关闭数据库teaching

17. . 语句“select Datepart(mm,getdate())”的输出结果及其类型为(A)

A. 当前月份、整型

B. 当前月份、字符型

C. 当前月份的英文名、字符型

18. . 语句“select Datediff(year,'1990-5-1','2012-5-1')”的输出结果为(A)

A. 22

B. -22

19. 语句“select floor,round,1)”的输出结果为(B)

A. 100

B. 99

C. 100

20. 语句“select Substring('王晓宇',2,2)”的输出结果为(A)

A. 晓宇

B. 晓

C. 王晓宇

21. 下面哪个不是SQL Server 的合法标识符( B )。

A. a12

B. 12a

C. @a12

D. #qq

22. SQL语言中,不是逻辑运算符号的是(D)。

A. AND

B. NOT

C. OR

D. XOR

23. 下面哪个函数是属于字符串运算的(C)。

A.ABS B. SIN C. STR D. ROUND

24. 下面关于SQL Server中变量的操作正确的是(D)。

A. DECLARE @name varchar(8)

SET @name='lkl'

print '姓名是'+@name

B. DECLARE name varchar(8)

SET name='lkl'

print '姓名是'+name

C. print @@VERSION AS '版本', ,应该用“+”@@SERVERNAME AS '服务器'

D. SELECT @@VERSION AS '版本', @@SERVERNAME AS '服务器'

简答题

25.自定义函数主要有分哪两类?其返回值有什么区别?

答:标量函数、表值函数。标量函数返回单个值,表值函数返回单个表。

26.Transact-SQL给变量赋值的语句有哪些?输出变量值的语句有哪些?

答:set和select select

27.简述Transact-SQL的各个聚合函数的用途。

答:聚合函数用于对一组值进行计算并返回一个单一的值。除count函数之外,聚合函数忽略空值。聚合函数经常与select语句的group by 子句一同使用。聚合函数的作用是在结果集中通过对被选列值的收集处理,返回一个数值型的计算结果。

28.Transact-SQL语句共分几类?

答:数据定义语言、数据操纵语言、数据控制语言、控制流语言。

第五六章习题

选择题

1. SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示(C)A.零个字符B.1个字符串C.多个字符串D.以上都是

2. 使用空值查询是,表示一个列RR不是空值的表达式是( D )

A.RR IS NULL B.RR=NULL C.RR<>NULL D.RR IS NOT NULL

3. 下面聚集函数中哪个只能用于计算数值类型的数据(D)

A.COUNT( ) B.MIN( ) C.MAX( ) D.SUM( ) 还有一个A VG() 4. 以下哪一个不是逻辑运算符(D)

A.NOT B.AND C.OR D.IN

5. 以下(B )语句从表TABLE_NAME中提取前10条记录。

A.select * from TABLE_NAME where rowcount=10

B.select TOP 10 * from TABLE_NAME

C.select TOP of 10 * from TABLE_NAME

D.select * from TABLE_NAME where rowcount<=10

6. 现有表book,字段:id (int),title (varchar), price (float); 其中id字段设为标识,使用insert语句向book表中插入数据,以下语句错误的是(CD)。

A.insert into book (id,title,price) values(1,'java',100)

B.insert into book (title,price) values('java',100)

C.insert into book values ('java',100) 这辆都不可以啊,如果不指定列需要明确的给出空值

D.insert book values('java',100)

7. 查询student表中的所有非空email信息, 以下语句正确的是(D)。

A.Select email from student where email !=null

B.Select email from student where email not is null

C.Select email from student where email <> null

D.Select email from student where email is not null

8. 关于聚合函数,以下说法错误的是(B )。

A.Sum返回表达式中所有数的总合,因此只能用于数字类型的列。

B.Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。

C.Max和Min可以用于字符型的列。

D.Count可以用于字符型的列。

9. 使用以下( A )不可以进行模糊查询。

A.OR B.Not between C.Not IN D.Like

10. 语句:select * from students where SNO like ‘010[^0]%[A,B,C]%’,可能会查询出的SNO是( A D )。(选择两项)

A.01053090A #Hm3?查询毕业学校名称与“清华”有关的记录应该用( D)。

A. SELECT * FROM 学习经历WHERE 毕业学校LIKE ’*清华*’

B. SELECT * FROM 学习经历WHERE 毕业学校= ’%清华%’

C. SELECT * FROM 学习经历WHERE 毕业学校LIKE ’?清华?’

D. SELECT * FROM 学习经历WHERE 毕业学校LIKE ’%清华%’

12. 假定表table1中phone列有空值,则select count(*) from table1与select count(phone) from table1相等吗? B

A.相等

B.不相等

填空题

13. 声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集。USE XK

DECLARE @COUNO V ARCHAR(3),@COUNAME V ARCHAR(20)

___declare CRSCOURSE______________________

FOR SELECT COUNO,COUNAME FROM COURSE ORDER BY COUNO

_____OPEN CRSCOURSE____________________

FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME

WHILE @@FETCH_STATUS=0

BEGIN

PRINT ’课程号:’+ @COUNO +’课程名称:’+ @CouName

FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME

END

____CLOSE CRSCOURSE_____________________

DEALLOCATE CRSCOURSSE

14. left join 运算是___左连接__________。

15. SELECT语句的基本格式如下:

SELECT select_list

[INTO new_table]

[ FROM table_source ]

[ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HA VING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

(1)SELECT语句的各个子句书写的是否有先后顺序要求?是

(2)WHERE子句作用是数据过滤;GROUP BY子句作用是按某一列或多列进行的值分组,值相等的为一组;

HA VING子句作用是对分组进行筛选;

ORDER BY子句作用是对查询结果,按某一个或多个属性列的升序(ASC)或降序(DESC)排序;

16. 操作Transact-SQL 游标使用的语句有:

定义游标使用(DECLARE)语句;

打开游标使用(OPEN)语句;

移动游标取得一条记录使用(FETCH)语句;

关闭游标使用(CLOSE)语句。

简答题

17. 什么是动态游标? 什么是静态游标?

动态:定义一个游标,以反应在滚动游标时对查询结果集内的各行所做的所有数据更改

静态:定义一个游标,以创建将由该游标使用的数据的临时复本,不反应对基本所做的更改

第七章

判断题

1. SQL Server 自动为primary key约束的列建立一个索引。( 对)

填空题

2. ____试图____是由一个或多个数据表(基本表)或视图导出的虚拟表。

3. 索引的类型有_唯一、聚集________和非聚集索引。

选择题

4. SQL的视图是从( C )中导出的。

A. 基本表

B. 视图

C. 基本表或视图

D. 数据库

5. 使用索引下列哪个说法是正确的(B )。

A. 节省磁盘空间

B. 缩短查询时间

C. 在执行插入、修改、删除时节省时间

D. 与表无关

6. 关于视图下列哪一个说法是错误的(B )。

A. 视图是一种虚拟表

B. 视图中也存有数据

C. 视图也可由视图派生出来

D. 视图是保存在数据库中的SELECT查询

7. 索引是依附于表而存在的,建立索引的目的是(A)

A. 提高查询表中数据的速度

B. 建立聚集索引可以使表中的记录按索引关键字的顺序排列

C. 提高表的安全性

8. SQL Server中索引分为哪三类?()这个有待商议

A. 主键索引

B. 复合索引

C. 唯一索引

D. 普通索引

9. 建立视图的目的是(BC)

A. 提高查询数据的速度

B. 提高数据库安全性

C. 简化复杂查询

10. 在SQL Server 2005中,索引的顺序和表中记录的物理顺序相同的索引时(C )。

A. 主键索引

B. 非聚集索引

C. 聚集索引

D.唯一索引

11. 下面对索引的相关描述正确的是(D)。经常被查询的列不适合建索引 B.小型表适合建索引

C. 有很多重复值的列适合索引值

D. 是外键或主键的列不适合建索引

12. 在使用CREATE INDEX命令创建索引时,FILLFACTOR选项定义的是(A)。

A. 填充因子

B. 误码率

C. 冗余度

D. 索引页的填充率

13. 对视图的描述错误的是(D)。

A. 视图是一张虚拟表

B. 视图定义包含TOP子句时才能设置排序规则

C. 可以像查询表一样查询视图

D. 被修改的视图只能引用一个基表的列

14. WITH CHECK OPTION属性对视图有(A)。

A. 进行检查约束

B. 进行删除监测

C.进行更新监测

D.进行插入监测

简答题

15. 按照索引的存储结构划分,索引分为哪几种?按照是否允许在索引列中输入重复值,索引分为哪几种?

存储结构:聚集和非聚集,是否允许重复:唯一和非唯一

16. SQL SERVER对在视图上进行INSERT、UPDATE、DELETE操作,主要有哪些限制?

在进行插入操作时:

1、用户必须具备插入数据的相关权限

2、试图只能引用一个基表的列

3、试图所包含的列必须直接引用表列中的基础数据,不能通过聚合函数或计算等

方式派生

4、Insert语句不允许为空值

5、必须符合在相关列上定义的约束条件

6、试图中不能包含DISTINICT,GROUP BY或HA VING子句

7、在试图定义中使用了WITH CHECK OPTION,插入时将检查是否符合定义

视图中SELECT语句所设置的条件

在更新时:

1、修改视图中的数据时,不能同时修改两个或多个基表

2、当视图来自多个基表时,通常只能对非主属性进行修改

3、试图中被修改的列必须直接引用基表中的列,不能通过聚合函数或计算等方式

派生

在删除时:

试图只能引用一个基表的列,且删除操作必须满足基表中定义的约束条件

第八章习题

选择题

1. 以下描述不正确的是( D )

A.存储过程能够实现较快的执行速度。

B.内嵌表值型函数相当于一个带参数的视图。

C.不指定所有者时,调用标量函数会出错。

D.可以通过视图更改任意基表

2. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。

A. sp_dbhelp

B. sp_db

C. sp_help

D. sp_helpdb

3. 触发器可以创建在( AC )中。

A. 表

B. 过程

C. 数据库

D. 函数

4. 以下触发器是当对[表1]进行( D )操作时触发。

Create Trigger abc on 表1

For insert , update , delete

As ……

A.只是修改

B.只是插入

C.只是删除

D.修改、插入、删除

5. 执行带参数的过程,正确的方法为( A)。

A. 过程名参数

B. 过程名(参数)

C.过程名=参数,B,C三种都可以

6. 执行带参数的过程,正确的方法为( A )。

A. 过程名参数

B. 过程名(参数)

C.过程名=参数,B,C三种都可以

7. 触发器可引用视图或临时表,并产生两个特殊的表是(A )。A.Deleted、Inserted B. Delete、Insert C. View、Table D. View1、table1

8. 在SQL Server 数据库中,下面调用存储过程的语句错误的是(B)。

A. EXEC proc_stu @sum OUTPUT,64,78

B. EXEC proc_stu @sum OUTPUT,@total output,78

C. EXEC proc_stu @sum OUTPUT,604

D. EXEC Calculate @sum OUTPUT,@total output

9. 在SQL SERVER中,声明并创建以下存储过程,正确调用该存储过程的的语句是(BC)。

CREATE PROCEDURE PRO

@passNum int OUTPUT,

@passPoint int=60

AS

Select @passNum=count(*) From stuTable Where point >@passPoint

GO

A. Declare @sum int

EXEC PRO @passNum,70

B. Declare @sum int

EXEC PRO @sum output,70

C. Declare @sum int

EXEC PRO @sum output

D. EXEC PRO 70

10. 在SQL Server中,创建如下存储过程:

create proc stu_exam

@writtenExam int=null

a s

if @writtenExam is null

begin

print '请输入笔试成绩及格线'

return

end

select * from student where stu_id in

(select stu_id from stu_marks

where writtenExam>@writtenExam)

GO

下列选项正确的是(C)。

A. 执行EXEC stu_exam语句,控制台显示所有笔试成绩及格的学生信息记录集

B. 存储过程(stu_exam)代码存在语法错误

C. 执行EXEC stu_exam语句,控制台显示“请输入笔试成绩及格线”

D. 执行EXEC stu_exam 75语句,控制台显示“请输入笔试成绩及格线”

11. 在SQL语言中,如果要建立一个工资表包含职工号,姓名,职称。工资等字段。若要保证工资字段的取值不低于800元,最合适的实现方法是:(B)

A.在创建工资表时为”工资“字段建立缺省

B.在创建工资表时为”工资“字段建立检查约束

C.在工资表建立一个触发器

D.为工资表数据输入编写一个程序进行控制

12. 你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情况建立了如下的存储过程:

CREATE PROCEDURE get_sales_for_title

title varchar(80), @ytd_sales int OUTPUT

AS

SELECT @ytd_sales = ytd_sales

FROM titles

WHERE title = @title

IF @@ROWCOUNT = 0

RETURN(-1)

ELSE

RETURN(0)

另外建立了一个脚本执行这个存储过程,如果执行成功,将返回对应于书名的每天的销售情况的报表,如果执行失败,将返回“No Sales Found”,怎样建立这个脚本?( C)

A. DECLARE @retval int

DECLARE @ytd int

EXEC get_sales_for_title ‘Net Etiquette’, @ytd

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’ + STR (@ytd)

GO

B. DECLARE @retval int

DECLARE @ytd int

EXEC get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’ + STR (@ytd)

GO

C. DECLARE @retval int

DECLARE @ytd int

EXEC get_sales_for_tit le ‘Net Etiquette’,@retval OUTPUT

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’ + STR (@ytd)

GO

D. DECLARE @retval int

DECLARE @ytd int

EXEC @retval = get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT

IF @retval < 0

PRINT ‘No sales found’

ELSE

PRINT ‘Year to date sales: ’ + STR (@ytd)

GO

13. 假定你是一个保险公司的数据库开发人员,公司的保单信息存储在SQL Server 2000数据库中,你使用以下脚本建立了一个名为Policy的表:

CREATE TABLE Policy

(

PolicyNumber int NOT NULL DEFAULT (0),

InsuredLastName char (30) NOT NULL,

InsuredFirstName char (20) NOT NULL,

InsuredBirthDate datetime NOT NULL,

PolicyDate datetime NOT NULL,

FaceAmount money NOT NULL,

CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber)

)

13.每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做?( A )

A.建立一个INSTEAD OF INSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。

B.建立一个INSTEAD OF UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。

C.建立一个AFTER UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。

D.用AFTER UPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将

相关文档