SQL Server数据库试卷6
一、单项选择题(每题2分,共15题) 1、DBMS是什么?( )
(A)操作系统 (B)数据库管理系统 (C)数据库 (D) 数据库管理员 2 、SQL Server 2000是一个( )的数据库系统。
(A)网状型 (B)层次型 (C)关系型 (D)以上都不是 3、SQL Server 2000 采用的身份验证模式有( )。 (A)仅Windows身份验证模式 (B)仅SQL Server身份验证模式 (C)仅混合模式
(D)Windows身份验证模式和混合模式 4、关于主键描述正确的是:( )
(A)包含一列 (B)包含两列 (C)包含一列或者多列 (D) 以上都不正确 5、下列( )数据库不属于SQL Server 2000在安装时创建的系统数据库。 (A)master (B)NorthWind (C)model (D)bookdb 6、在SQL SERVER中局部变量前面的字符为:( ) (A)* (B)# (C)@@ (D) @
7、在SQL Server 2000中,当数据表被修改时,系统自动执行的数据库对象是( )。 (A)存储过程 (B)触发器 (C)视图 (D)其他数据库对象 8、SQL Server的字符型系统数据类型主要包括( )。
(A) Int、money、char (B) char、varchar、text (C) datetime、binary、int (D) char、varchar、int
9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是( )
(A) * (B)% (C)- (D)? 10、在WHILE循环语句中,如果循环体语句条数多于一条,必须使用: (A) BEGIN……END (B) CASE……END (C) IF…………THEN (D) GOTO
11、SELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是:
(A)ORDER BY (B)WHERE (C)GROUP BY (D)HAVING 12、要删除视图myview,可以使用( )语句。 (A) DROP myview
(B)DROP TABLE myview
(C) DROP INDEX myview (D)DROP VIEW myview 13、对视图的描述错误的是:( ) (A) 是一张虚拟的表
(B) 在存储视图时存储的是视图的定义 (C) 在存储视图时存储的是视图中的数据
(D) 可以像查询表一样来查询视图
14、SQL Server提供的单行注释语句是使用( )开始的一行内容。 (A) “/*” (B) “--” (C) “{” (D) “/” 15、假如有两个表的连接是这样的: table_a inner join table_b 其中table_a和table_b是两个具有公共属性的表,这种连接会生成哪种结果集? (A) 包括table_a中的所有行,不包括table_b的不匹配行 (B) 包括table_b中的所有行,不包括table_a的不匹配行 (C) 包括和两个表的所有行
(D) 只包括table_a和table_b满足条件的行 二、填空题(每空2分,共15空)
1、可以将数据库管理系统分为4种网络结构:MAIN FRAME大型数据库、本地小型数据库、
分布式数据库、__________。
2、在一个表中主键的个数为:__________。
3、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是_____________。 4、角色是一组用户所构成的组,可以分为服务器角色和__________角色。 5、触发器有3种类型,即INSERT类型、 和 。 6、如果要计算表中的行数,可以使用聚合函数____________。 7、
SQL Server 2000
和 。
8、在SQL Server 2000中修改表的结构应使用关键字____________,修改表中的数据应使用关键字___________ 。
9、在使用一个游标的时候可以分为以下几步:___________、打开游标、从打开的游标中提取行、____________、释放游标。
10、一个事务的操作必须是具备以下四个属性:原子性、 、隔离性和_____________。
三、简答(20分)
1、为什么要创建索引(4分)
2、简述INSERT触发器的工作原理(6分)
3、根据表回答以下问题
两个表是先建关系,然后才输入数据,其中的关系为:book表中author_id作为外键关联到authors表的主键author_id上。 book表 列名 book_id book_name author_id
authors表 列名 数据类型 长度 允许空 int varchar int 数据类型 4 50 4 长度 允许空 提供备份数据库的两种方式是
author_id author_name int varchar 4 30 (1)用Transact-SQL语句建立authors表(包括建立主键,列取值非空)(6分)
(2)根据参照完整性在两个表都要输入第一个记录时一般应先输入哪个表的数据?为什么?(4分)
四、编程题(共4题)(20分) student表(学生表) 学号 1 2 3
course表(课程表) 课程号 1 2 3 课程名 SQL Server VB 专业英语 学分 4 3 2 姓名 李明 张然 许晴 性别 男 女 女 年龄 20 19 18 系别 计算机系 经管系 电子系 sc表(选课表) 学号 1 2 2 3 课程号 1 1 2 3 成绩 90 85 76 70 1、 把course表中课程号为2的课程的学分修改为4。(4分)
2、 在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。(5分) 3、 在以上三个表中查询选的课程的“学分”为4,并且成绩大于80的学生的学号、姓名和性别。(6分)
4、 创建一存储过程getDetailByName,通过输入参数学生姓名(如“张然\),筛选出该学
生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。(5分)