第一部分 简答题
1、列举出你知道的ORM框架?
2、描述EF的几种开发模式。
3、如何如何获取EF生成的Sql脚本?
4、请说明在哪些类型额项目中你会选择EF? 为什么?
5、请说明EF中映射实体对象的几种状态?
6、请说明在EF中生成的映射实体中有哪些验证特性?
7、如果实体名称和数据库表名不一致,该如何处理?
8、请说明使用EF如何实现级联删除?
9、什么叫做SQL注入,如何防止?请举例说明。
10、 浅谈EF的延迟加载。
第二部分 选择题
1.在SQL Server中,( )语句是用来创建表的。 (选择一项)
A:CREATE TABLE 表名
B:DROP TABLE 表名
C:ALTER TABLE 表名
D:DELETE TABLE 表名
2.在SQL Server中,以下用于更改数据库名称的存储过程是( )。(选择一项)
A:sp_renamedatabase
B:sp_alterdb
C:sp_renamedb
D:sp_helpdb
3.在SQL Server中,关于视图的说法不正确的是( )。 (选择一项)
A:视图是一种虚拟表,通常是作为执行查询的结果而创建的
B:使用CREATE VIEW语句创建视图
C:使用SELECT语句查看视图的查询结果
D:定义视图的查询可以基于一个或多个表,但不可以基于其他视图
4.在SQL Server中,下面( )语句用于提交事务。 (选择一项)
A:COMMIT TRANSACTION
B:BEGIN TRANSACTION
C:ROLLBACK TRANSACTION
D:SAVE TRANSACTION
5.在SQL Server中,关于存储过程的说法不正确的是( )。(选择一项)
A:存储过程一般分为系统存储过程、扩展存储过程和用户自定义存储过程
B:存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的SQL程序
C:存储过程帮助实现了模块化编程
D:用户在创建自定义存储过程后不能再被修改
6.在SQL Server中,使用if...else语句时,( )可以作为条件表达式。(选择一项)
A:true
B:false
C:1>0
D:1==1
7.关于SQL Server中的视图,以下说法错误的是( )。 (选择一项)
A:视图是一种虚拟的表,通常是作为执行查询的结果而创建的
B:视图充当着对查询中指定的表的筛选器
C:更改视图中的数据,原始表中的数据不会随之更改
D:视图的结构和数据是建立在对表的查询基础上的
8.如下图所示,查询参加考试学员的姓名、学号、家庭地址,其中错误的T-SQL语句为( )。 (选择一项)
A:select stuname as 姓名,stuInfo.stuId as 学号,stuaddress as 家庭地址from stuInfo inner join stuMarks on stuInfo.stuId=stuMarks.stuId
B:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuMarks left join stuInfo on stuMarks.stuId=stuInfo.stuId
C:select stuname as 姓名,stuid as 学号,stuaddress as 家庭地址from stuInfo where stuid in (select * from stuMarks)
D:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuInfo right join stuMarks on stuMarks.stuId=stuInfo.stuId
9.SQL SERVER中,在绘制E-R图时,菱形和椭圆分别表示( )。 (选择一项)
A:属性、实体
B:实体、关系集
C:关系集、属性
D:实体、属性
10.在T-SQL中给变量赋值可以用( )。 (选择一项)
A:给局部变量赋值用set,给全局变量赋值用select
B:给局部变量赋值用set或select,不能给全局变量赋值
C:给局部变量赋值用select,给全局变量赋值用set
D:给局部变量赋值用set或select,给全局变量赋值用系统存储过程sp_setvalue
11.在SQL Server中,下列关于索引的描述错误的是( )。(选择一项)
A:一张表中主键索引最多只能有一个
B:一张表中可以有多个非聚集索引
C:应该在字节数大的列上建立索引
D:索引应该创建在经常用作查询的列
·
12.在SQL Server中,索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。 (选择一项)
A:插入
B:修改
C:查询
D:删除
13.下面所示的T-SQL语句使用内连接实现多表查询,查询返回多行数据:SELECT SName FORM Students INNER JOIN Score on Students.SCode = Score.StudentID WHERE Score>=60选项中可以替换上述语句实现该查询的语句是( )。 (选择一项)
A:SELECT SName from StudentsWHERE SCode = (SELECT StudentID from Score WHERE Score>=60)
B:SELECT SName from StudentsWHERE SCode IN (SELECT StudentID from Score WHERE Score>=60)
C:SELECT SName from Students WHERE SCode NOT IN (SELECT StudentID from Score WHERE Score<60)
D:SELECT SName from Students WHERE SCode != (SELECT StudentID from Score WHERE Score<60)
14.在SQL Server中,执行下面存储过程,语句正确的是( )。create proc proc_score(@stuid char(10),@score int output)asselect @score=score from scorewhere stuId=@stuIdgo (选择一项)
A:exec proc_score '2011001',output
B:declare @score int exec proc_score ‘2011001',@score
·
C:declare @score int exec proc_score ‘2011001',@score output
D:declare @score int exec proc_score @score output ,'2011001'
·
15.SQL Server中,在绘制E-R图时,( )表示关系。 (选择一项)
A:椭圆
B:矩形
C:菱形
D:多边形
16.在SQL Server 数据库,数据库系统中的编程语言是T-SQL,T-SQL语言中用于显示处理的数据结果的输出语句有两种,它们的语法分别是( )。 (选择二项)
A:put 局部变量或字符串
B:print 局部变量或字符串
C:SELECT 局部变量 AS 自定义列名
D:SELECT 局部变量 FOR 自定义列名
17.在SQL Server中,以下关于数据库设计范式的描述中,错误的是( )。 (选择一项)
A:第一范式的目标是确保每列的原子性
B:数据库如果满足第三范式,则肯定满足第二范式
C:三大范式是用来帮助数据库设计者设计结构良好的数据库
D:设计数据库时,满足的范式级别越高,系统性能越好
18.在SQL Server 数据库中,对存储过程的描述错误的是( )。 (选择一项)
A:存储过程可以重复调用
B:存储过程是自动执行的
C:存储过程是SQL语句的预编译集合
D:存储过程比一般SQL语句执行速度更快
20.在SQL Server中有一个存储图书基本信息的表book,其中有书名bookName、价格price、作者author等字段,下面代码是查询出价格比图书 “Flash开发”高的图书信息,横线处应填写的代码是( )。(选择一项)
declare @avgPrice numeric________________________________________________select * from book where price>@avgPricego (选择一项)
A:select @avgPrice =avg(price) from book
B:select @avgPrice=price from book where bookName like '%FLash开发%'
C:select @avgPrice=price from book where bookName='FLash开发'
D:select @avgPrice as price from book where bookName like '%FLash开发%'
·
20.在SQL Server中,有关下列语句的实际功能,描述正确的是( )。(选择两项)
WHILE EXISTS(SELECT examResult FROM Result WHERE examResult <60)BEGIN UPDATE Result SET examResult = examResult +5IF (SELECT MAX(examResult) FROM Result)>=90BREAKELSECONTINUEEND (选择二项)
A:当有考试成绩不到60分时,循环加分
B:当成绩平均分不到60分时,循环加分
C:当最高分大于等于90时,停止加分
D:以上都是错的
21.在SQL Server中,关于子查询描述错误的是( )。 (选择一项)
A:相对于表连接,子查询更适合于作为查询的筛选条件
B:使用EXISTS关键字引入一个子查询,子查询产生查询结果集
C:使用IN子查询返回的查询结果是一列零值或更多值。子查询返回结果后,外部查询可以使用这些查询结果
D:子查询可由一个比较运算符引入。比较运算符可以是=、<>、>、<、>=、<=等
22.在SQL Server中,给定如下SQL代码,执行结果为( )。INSERT INTO student (StudentID,StudentName,Age,ClassID) VALUES(227,'马达',23,3)DECLARE @age INTDECLARE @cid INTWHILE(1=1) BEGIN SELECT @age=Age,@cid=ClassID FROM student WHERE StudentName='马达' IF(@age<24 and @cid<>2) BEGIN UPDATE student SET ClassID=2 WHERE StudentName='马达' SELECT @cid=ClassID FROM student WHERE StudentName='马达' END ELSE BREAK ENDPRINT '姓名:马达 年龄:'+LTRIM(STR(@age))+' 班级:'+LITRIM(STR(@cid)) (选择一项)
A:姓名:马达 年龄:23 班级:3
B:姓名:马达 年龄:23 班级:2
C:姓名:马达 年龄:3 班级:2
D:姓名:马达 年龄:2 班级:3
23.在SQL Server中,( )包含了一组数据库操作命令,并且所有的命令作为一个整体一起向系统提交或撤销操作请求。 (选择一项)
A:事务
B:视图
C:索引
D:子查询
24.在SQL Server中,变量@avg为一个整型变量,其中下列数据类型转换错误的是( )。 (选择一项)
A:Convert(varchar(20),@avg)
B:Cast(@avg as varchar(20))
C:Convert(nvarchar(20),@avg,100)
D:Cast(varchar(20) as @avg,100)
25.在SQL SERVER中,关于聚集索引和非聚集索引的区别有( )。(选择二项)
A:一个表可以有多个非聚集索引,但只能有一个聚集索引
B:聚集索引的查询速度要比非聚集索引速度快
C:在建立聚集索引的列上不允许有重复的值
D:非聚集索引的查询速度要比聚集索引速度快
26.在进行数据库设计时,设计者应当按照数据库的设计范式进行数据库设计。以下关于三大范式说法错误的是( )。 (选择一项)
A:第一范式的目标是确保每列的原子性
B:第三范式在第二范式的基础上,确保表中的每行都和主键相关
C:第二范式在第一范式的基础上,确保表中的每列都和主键相关
D:第三范式在第二范式的基础上,确保表中的每列都和主键直接相关,而不是间接相关
27.在SQL Server中,执行以下存储过程,语句正确的是( )。CREATE PROC proc_student (@stuID INT,@sex BIT OUTPUT) AS SELECT @sex=sex FROM student WHERE stuID=@stuID (选择一项)
A:DECLARE @sex BIT EXEC proc_student OUTPUT @sex,1
B:DECLARE @sex BIT EXEC proc_student @sex OUTPUT,1
C:DECLARE @sex BIT EXEC proc_student 1,OUTPUT @sex
D:DECLARE @sex BIT EXEC proc_student 1,@sex OUTPUT
28.SQL SERVER数据库中,运行如下代码,输出结果为( )。CREATE PROCEDURE test@m VARCHAR(20)=nullASif @m = null BEGIN print 'A' return ENDif @m is null BEGIN print 'B' ENDselect * from sysobjects where name=@mGOEXEC test (选择一项)
A:A
B:B并显示空的表sysobject的记录集
C:A并显示空的表sysobject的记录集
D:B
29.以下T-SQL代码,说法不正确的是( )。SELECT 学号 = StudentNo, 成绩 = CASE WHEN StudentResult < 60 THEN 'E' WHEN StudentResult BETWEEN 60 AND 69 THEN 'D' WHEN StudentResult BETWEEN 70 AND 79 THEN 'C' WHEN StudentResult BETWEEN 80 AND 89 THEN 'B' WHEN ELSE 'A'FROM Result (选择二项)
A:ELSE前面不用写WHEN
B:缺少END关键字
C:在每一个WHEN的条件表达式后面缺少逗号
D:缺少break关键字
30.在SQL Server中,下列关于索引的描述错误的是( )。 (选择一项)
A:一张表中主键索引最多只能有一个
B:一张表中可以有多个非聚集索引
C:聚集索引和主键索引必须同时存在
D:一般会给经常用作查询的列建立索引
31.在SQL Server中,当查询某种型号的手机的详细信息时,下划线处应填写( )。SELECT * FROM mobilePhone WHERE phoneNo ___ (此处为返回多个phoneNo的SQL语句)(选择一项)
A:IN
B:LIKE
C:=
D:>=
32.关于SQL Server中的事务,以下说法错误的是( )。(选择一项)
A:事务中的所有元素必须作为一个整体提交或回滚
B:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务
C:SQL Server中不能使用事务日志保存受到故障影响的事务
D:当事务成功完成时,数据必须再次回到已知的一致状态
33.在SQL Server中,下面的( )语句是正确的。(选择一项)
A:CREATE VIEW view1AS SELECT * INTO #S1 FROM DEPTGO
B:CREATE VIEW view1AS SELECT * FROM DEPT ORDER BY DEPTIDGO
C:CREATE VIEW view1AS SELECT TOP 5 * FROM DEPT ORDER BY DEPTIDGO
D:CREATE VIEW view1ASDECLARE did intSET @did=10SELECT * FROM DEPT WHERE DEPTID =@didGO
34.在SQL Server中,以下关于视图描述错误的是( )。(选择两项)
A:定义视图的查询可以基于一个或多个表
B:定义视图的查询不可以基于其它视图
C:视图通常在查询数据时使用
D:视图一旦被删除,视图中的数据也同时被删除。
35.在SQL Server中,关于变量描述,不正确的是( )。(选择一项)
A:变量可分为全局变量和局部变量两大类
B:全局变量是由系统提供且预先声明,通过在名称前加两个“@”符号区别于局部变量
C:不能使用SELECT语句给变量赋值
D:可使用DECLARE语句声明局部变量
36.在SQL Server中,下面选项可以正确实现对变量赋值的是( )。(选择两项)
A:declare @name char(10)set @name='小强'
B:declare @age int(4)
select @age=18
C:declare @sex bitset @sex=0
D:declare @money money(4)set @money=4
37.在SQL SERVER中,关于用户定义的存储过程说法正确的是( )。(选择一项)
A:使用create procedure语句来创建存储过程
B:存储过程必须带参数
C:存储过程如果有输入参数,则输入参数不能设置默认值
D:存储过程可以没有输出参数,但是必须有输入参数
38.在SQL SERVER中,图书信息表Book中有图书编号id、书名BookName、价格BookPrice、出版日期Tdate等字段,关于下面的代码说法正确的是( )。(选择一项)
declare @avgPrice floatselect @avgPrice=AVG(BookPrice) from Book if(@avgPrice>80) begin select top 10 * from Book order by BookPrice desc endelse begin select top 10 * from Book order by BookPrice asc end
A:如果图书的平均价格高于80,则查出价格最高的10本图书信息
B:如果图书的平均价格高于80,则查出价格最低的10本图书信息
C:如果图书的最高价格高于80,则查出价格最高的10本图书信息
D:如果图书的最高价格高于80,则查出价格最低的10本图书信息
39.在SQL Server中,运行以下T-SQL语句,输出的结果是( )。(选择一项)
CREATE PROC usp_selectStu@stuNo varchar(8)=NULL AS IF @stuNo IS NULL Begin Print '请输入学号' RETURN End SELECT * FROM stuInfo WHERE stuNo=@stuNoGOEXEC usp_selectStu
A:编译错误
B:调用存储过程usp_ selectStu出错
C:显示空的学员信息记录集
D:显示“请输入学号”
40.在SQL Server中,以下关于常用的系统存储过程的说法正确的是( )。(选择一项)
A:sp_databases用于列出数据库服务器中的所有数据库信息
B:sp_helpconstraint用于查看某个表的索引
C:sp_procedures用于显示存储过程的列表
D:sp_tables用于查看系统中存在的表的个数
1、列举出你知道的ORM框架?
2、描述EF的几种开发模式。
3、如何如何获取EF生成的Sql脚本?
4、请说明在哪些类型额项目中你会选择EF? 为什么?
5、请说明EF中映射实体对象的几种状态?
6、请说明在EF中生成的映射实体中有哪些验证特性?
7、如果实体名称和数据库表名不一致,该如何处理?
8、请说明使用EF如何实现级联删除?
9、什么叫做SQL注入,如何防止?请举例说明。
10、 浅谈EF的延迟加载。
第二部分 选择题
1.在SQL Server中,( )语句是用来创建表的。 (选择一项)
A:CREATE TABLE 表名
B:DROP TABLE 表名
C:ALTER TABLE 表名
D:DELETE TABLE 表名
2.在SQL Server中,以下用于更改数据库名称的存储过程是( )。(选择一项)
A:sp_renamedatabase
B:sp_alterdb
C:sp_renamedb
D:sp_helpdb
3.在SQL Server中,关于视图的说法不正确的是( )。 (选择一项)
A:视图是一种虚拟表,通常是作为执行查询的结果而创建的
B:使用CREATE VIEW语句创建视图
C:使用SELECT语句查看视图的查询结果
D:定义视图的查询可以基于一个或多个表,但不可以基于其他视图
4.在SQL Server中,下面( )语句用于提交事务。 (选择一项)
A:COMMIT TRANSACTION
B:BEGIN TRANSACTION
C:ROLLBACK TRANSACTION
D:SAVE TRANSACTION
5.在SQL Server中,关于存储过程的说法不正确的是( )。(选择一项)
A:存储过程一般分为系统存储过程、扩展存储过程和用户自定义存储过程
B:存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的SQL程序
C:存储过程帮助实现了模块化编程
D:用户在创建自定义存储过程后不能再被修改
6.在SQL Server中,使用if...else语句时,( )可以作为条件表达式。(选择一项)
A:true
B:false
C:1>0
D:1==1
7.关于SQL Server中的视图,以下说法错误的是( )。 (选择一项)
A:视图是一种虚拟的表,通常是作为执行查询的结果而创建的
B:视图充当着对查询中指定的表的筛选器
C:更改视图中的数据,原始表中的数据不会随之更改
D:视图的结构和数据是建立在对表的查询基础上的
8.如下图所示,查询参加考试学员的姓名、学号、家庭地址,其中错误的T-SQL语句为( )。 (选择一项)
A:select stuname as 姓名,stuInfo.stuId as 学号,stuaddress as 家庭地址from stuInfo inner join stuMarks on stuInfo.stuId=stuMarks.stuId
B:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuMarks left join stuInfo on stuMarks.stuId=stuInfo.stuId
C:select stuname as 姓名,stuid as 学号,stuaddress as 家庭地址from stuInfo where stuid in (select * from stuMarks)
D:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuInfo right join stuMarks on stuMarks.stuId=stuInfo.stuId
9.SQL SERVER中,在绘制E-R图时,菱形和椭圆分别表示( )。 (选择一项)
A:属性、实体
B:实体、关系集
C:关系集、属性
D:实体、属性
10.在T-SQL中给变量赋值可以用( )。 (选择一项)
A:给局部变量赋值用set,给全局变量赋值用select
B:给局部变量赋值用set或select,不能给全局变量赋值
C:给局部变量赋值用select,给全局变量赋值用set
D:给局部变量赋值用set或select,给全局变量赋值用系统存储过程sp_setvalue
11.在SQL Server中,下列关于索引的描述错误的是( )。(选择一项)
A:一张表中主键索引最多只能有一个
B:一张表中可以有多个非聚集索引
C:应该在字节数大的列上建立索引
D:索引应该创建在经常用作查询的列
·
12.在SQL Server中,索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。 (选择一项)
A:插入
B:修改
C:查询
D:删除
13.下面所示的T-SQL语句使用内连接实现多表查询,查询返回多行数据:SELECT SName FORM Students INNER JOIN Score on Students.SCode = Score.StudentID WHERE Score>=60选项中可以替换上述语句实现该查询的语句是( )。 (选择一项)
A:SELECT SName from StudentsWHERE SCode = (SELECT StudentID from Score WHERE Score>=60)
B:SELECT SName from StudentsWHERE SCode IN (SELECT StudentID from Score WHERE Score>=60)
C:SELECT SName from Students WHERE SCode NOT IN (SELECT StudentID from Score WHERE Score<60)
D:SELECT SName from Students WHERE SCode != (SELECT StudentID from Score WHERE Score<60)
14.在SQL Server中,执行下面存储过程,语句正确的是( )。create proc proc_score(@stuid char(10),@score int output)asselect @score=score from scorewhere stuId=@stuIdgo (选择一项)
A:exec proc_score '2011001',output
B:declare @score int exec proc_score ‘2011001',@score
·
C:declare @score int exec proc_score ‘2011001',@score output
D:declare @score int exec proc_score @score output ,'2011001'
·
15.SQL Server中,在绘制E-R图时,( )表示关系。 (选择一项)
A:椭圆
B:矩形
C:菱形
D:多边形
16.在SQL Server 数据库,数据库系统中的编程语言是T-SQL,T-SQL语言中用于显示处理的数据结果的输出语句有两种,它们的语法分别是( )。 (选择二项)
A:put 局部变量或字符串
B:print 局部变量或字符串
C:SELECT 局部变量 AS 自定义列名
D:SELECT 局部变量 FOR 自定义列名
17.在SQL Server中,以下关于数据库设计范式的描述中,错误的是( )。 (选择一项)
A:第一范式的目标是确保每列的原子性
B:数据库如果满足第三范式,则肯定满足第二范式
C:三大范式是用来帮助数据库设计者设计结构良好的数据库
D:设计数据库时,满足的范式级别越高,系统性能越好
18.在SQL Server 数据库中,对存储过程的描述错误的是( )。 (选择一项)
A:存储过程可以重复调用
B:存储过程是自动执行的
C:存储过程是SQL语句的预编译集合
D:存储过程比一般SQL语句执行速度更快
20.在SQL Server中有一个存储图书基本信息的表book,其中有书名bookName、价格price、作者author等字段,下面代码是查询出价格比图书 “Flash开发”高的图书信息,横线处应填写的代码是( )。(选择一项)
declare @avgPrice numeric________________________________________________select * from book where price>@avgPricego (选择一项)
A:select @avgPrice =avg(price) from book
B:select @avgPrice=price from book where bookName like '%FLash开发%'
C:select @avgPrice=price from book where bookName='FLash开发'
D:select @avgPrice as price from book where bookName like '%FLash开发%'
·
20.在SQL Server中,有关下列语句的实际功能,描述正确的是( )。(选择两项)
WHILE EXISTS(SELECT examResult FROM Result WHERE examResult <60)BEGIN UPDATE Result SET examResult = examResult +5IF (SELECT MAX(examResult) FROM Result)>=90BREAKELSECONTINUEEND (选择二项)
A:当有考试成绩不到60分时,循环加分
B:当成绩平均分不到60分时,循环加分
C:当最高分大于等于90时,停止加分
D:以上都是错的
21.在SQL Server中,关于子查询描述错误的是( )。 (选择一项)
A:相对于表连接,子查询更适合于作为查询的筛选条件
B:使用EXISTS关键字引入一个子查询,子查询产生查询结果集
C:使用IN子查询返回的查询结果是一列零值或更多值。子查询返回结果后,外部查询可以使用这些查询结果
D:子查询可由一个比较运算符引入。比较运算符可以是=、<>、>、<、>=、<=等
22.在SQL Server中,给定如下SQL代码,执行结果为( )。INSERT INTO student (StudentID,StudentName,Age,ClassID) VALUES(227,'马达',23,3)DECLARE @age INTDECLARE @cid INTWHILE(1=1) BEGIN SELECT @age=Age,@cid=ClassID FROM student WHERE StudentName='马达' IF(@age<24 and @cid<>2) BEGIN UPDATE student SET ClassID=2 WHERE StudentName='马达' SELECT @cid=ClassID FROM student WHERE StudentName='马达' END ELSE BREAK ENDPRINT '姓名:马达 年龄:'+LTRIM(STR(@age))+' 班级:'+LITRIM(STR(@cid)) (选择一项)
A:姓名:马达 年龄:23 班级:3
B:姓名:马达 年龄:23 班级:2
C:姓名:马达 年龄:3 班级:2
D:姓名:马达 年龄:2 班级:3
23.在SQL Server中,( )包含了一组数据库操作命令,并且所有的命令作为一个整体一起向系统提交或撤销操作请求。 (选择一项)
A:事务
B:视图
C:索引
D:子查询
24.在SQL Server中,变量@avg为一个整型变量,其中下列数据类型转换错误的是( )。 (选择一项)
A:Convert(varchar(20),@avg)
B:Cast(@avg as varchar(20))
C:Convert(nvarchar(20),@avg,100)
D:Cast(varchar(20) as @avg,100)
25.在SQL SERVER中,关于聚集索引和非聚集索引的区别有( )。(选择二项)
A:一个表可以有多个非聚集索引,但只能有一个聚集索引
B:聚集索引的查询速度要比非聚集索引速度快
C:在建立聚集索引的列上不允许有重复的值
D:非聚集索引的查询速度要比聚集索引速度快
26.在进行数据库设计时,设计者应当按照数据库的设计范式进行数据库设计。以下关于三大范式说法错误的是( )。 (选择一项)
A:第一范式的目标是确保每列的原子性
B:第三范式在第二范式的基础上,确保表中的每行都和主键相关
C:第二范式在第一范式的基础上,确保表中的每列都和主键相关
D:第三范式在第二范式的基础上,确保表中的每列都和主键直接相关,而不是间接相关
27.在SQL Server中,执行以下存储过程,语句正确的是( )。CREATE PROC proc_student (@stuID INT,@sex BIT OUTPUT) AS SELECT @sex=sex FROM student WHERE stuID=@stuID (选择一项)
A:DECLARE @sex BIT EXEC proc_student OUTPUT @sex,1
B:DECLARE @sex BIT EXEC proc_student @sex OUTPUT,1
C:DECLARE @sex BIT EXEC proc_student 1,OUTPUT @sex
D:DECLARE @sex BIT EXEC proc_student 1,@sex OUTPUT
28.SQL SERVER数据库中,运行如下代码,输出结果为( )。CREATE PROCEDURE test@m VARCHAR(20)=nullASif @m = null BEGIN print 'A' return ENDif @m is null BEGIN print 'B' ENDselect * from sysobjects where name=@mGOEXEC test (选择一项)
A:A
B:B并显示空的表sysobject的记录集
C:A并显示空的表sysobject的记录集
D:B
29.以下T-SQL代码,说法不正确的是( )。SELECT 学号 = StudentNo, 成绩 = CASE WHEN StudentResult < 60 THEN 'E' WHEN StudentResult BETWEEN 60 AND 69 THEN 'D' WHEN StudentResult BETWEEN 70 AND 79 THEN 'C' WHEN StudentResult BETWEEN 80 AND 89 THEN 'B' WHEN ELSE 'A'FROM Result (选择二项)
A:ELSE前面不用写WHEN
B:缺少END关键字
C:在每一个WHEN的条件表达式后面缺少逗号
D:缺少break关键字
30.在SQL Server中,下列关于索引的描述错误的是( )。 (选择一项)
A:一张表中主键索引最多只能有一个
B:一张表中可以有多个非聚集索引
C:聚集索引和主键索引必须同时存在
D:一般会给经常用作查询的列建立索引
31.在SQL Server中,当查询某种型号的手机的详细信息时,下划线处应填写( )。SELECT * FROM mobilePhone WHERE phoneNo ___ (此处为返回多个phoneNo的SQL语句)(选择一项)
A:IN
B:LIKE
C:=
D:>=
32.关于SQL Server中的事务,以下说法错误的是( )。(选择一项)
A:事务中的所有元素必须作为一个整体提交或回滚
B:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务
C:SQL Server中不能使用事务日志保存受到故障影响的事务
D:当事务成功完成时,数据必须再次回到已知的一致状态
33.在SQL Server中,下面的( )语句是正确的。(选择一项)
A:CREATE VIEW view1AS SELECT * INTO #S1 FROM DEPTGO
B:CREATE VIEW view1AS SELECT * FROM DEPT ORDER BY DEPTIDGO
C:CREATE VIEW view1AS SELECT TOP 5 * FROM DEPT ORDER BY DEPTIDGO
D:CREATE VIEW view1ASDECLARE did intSET @did=10SELECT * FROM DEPT WHERE DEPTID =@didGO
34.在SQL Server中,以下关于视图描述错误的是( )。(选择两项)
A:定义视图的查询可以基于一个或多个表
B:定义视图的查询不可以基于其它视图
C:视图通常在查询数据时使用
D:视图一旦被删除,视图中的数据也同时被删除。
35.在SQL Server中,关于变量描述,不正确的是( )。(选择一项)
A:变量可分为全局变量和局部变量两大类
B:全局变量是由系统提供且预先声明,通过在名称前加两个“@”符号区别于局部变量
C:不能使用SELECT语句给变量赋值
D:可使用DECLARE语句声明局部变量
36.在SQL Server中,下面选项可以正确实现对变量赋值的是( )。(选择两项)
A:declare @name char(10)set @name='小强'
B:declare @age int(4)
select @age=18
C:declare @sex bitset @sex=0
D:declare @money money(4)set @money=4
37.在SQL SERVER中,关于用户定义的存储过程说法正确的是( )。(选择一项)
A:使用create procedure语句来创建存储过程
B:存储过程必须带参数
C:存储过程如果有输入参数,则输入参数不能设置默认值
D:存储过程可以没有输出参数,但是必须有输入参数
38.在SQL SERVER中,图书信息表Book中有图书编号id、书名BookName、价格BookPrice、出版日期Tdate等字段,关于下面的代码说法正确的是( )。(选择一项)
declare @avgPrice floatselect @avgPrice=AVG(BookPrice) from Book if(@avgPrice>80) begin select top 10 * from Book order by BookPrice desc endelse begin select top 10 * from Book order by BookPrice asc end
A:如果图书的平均价格高于80,则查出价格最高的10本图书信息
B:如果图书的平均价格高于80,则查出价格最低的10本图书信息
C:如果图书的最高价格高于80,则查出价格最高的10本图书信息
D:如果图书的最高价格高于80,则查出价格最低的10本图书信息
39.在SQL Server中,运行以下T-SQL语句,输出的结果是( )。(选择一项)
CREATE PROC usp_selectStu@stuNo varchar(8)=NULL AS IF @stuNo IS NULL Begin Print '请输入学号' RETURN End SELECT * FROM stuInfo WHERE stuNo=@stuNoGOEXEC usp_selectStu
A:编译错误
B:调用存储过程usp_ selectStu出错
C:显示空的学员信息记录集
D:显示“请输入学号”
40.在SQL Server中,以下关于常用的系统存储过程的说法正确的是( )。(选择一项)
A:sp_databases用于列出数据库服务器中的所有数据库信息
B:sp_helpconstraint用于查看某个表的索引
C:sp_procedures用于显示存储过程的列表
D:sp_tables用于查看系统中存在的表的个数
