SQLA摸底测试题02
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明:选择题每题2分,共60分,没有注明的是单选题。编程题每题8分,共40分。
一、选择题(共60分)
1)假设需要设计一个表,记录各个作者著作的所有图书信息,表结构设计如下:
作者(作者名称、图书1、版本1、书价1、图书2、版本2、书价2、……),该表最高符合第()范式。
a)一
b)二
c)三
d)未规范化的
2)画ER图在以下()哪个阶段。
a)概要设计
b)详细设计
c)编码
d)以上都不对
3)E-R图中,关系用下面()来表示。
a)矩形
b)椭圆形
c)菱形
d)圆形
4)以下关于规范设计的描述正确的是()。(选择两项)
a)规范设计的主要目的是消除数据冗余。
b)规范设计往往会增加数据库的性能。
c)设计数据库时,规范化程度越高越好。
d)在规范化数据库中,易于维护数据完整性。
5)关于触发器,()说法是错误的。(选择两项)
a)触发器是一种特殊类型的存储过程。
b)可以使用触发器来响应对数据的select,insert,update,delete 操作。
c)一个表上的触发器不可以包含对另外一个表的数据操作,以免造成死循环。
d)触发器和触发它的语句构成一个事务。
6)在score表上创建一个触发器:
create trigger tri_score
on score
for update,delete
as
if (select count(*) from inserted)>0
print('success')
go
在查询分析器上执行以下()语句,可能会输出“success”。
a)Update score set score=20
b)Delete from score where score<60
c)Insert into score values ( 此处省略)
d)Select * from score
7)关于局部变量,下列说法错误的是()
a)局部变量只在当前批处理中有效
b)局部变量只能通过set语句赋值
c)可以修改局部变量的值
d)局部变量只有一个@符号
8)下面关于IN与Exists子查询的说法错误的是()
a)IN与Exists子查询的共同点就是查询的结果都返回布尔值。
b)IN必须有字段与字查询的行进行比较,子查询中的值与IN左边的值进行比较,相等则返回真。
c)Exists左边必须有字段,只查询子查询的行,若存在这样的行,就返回真。
d)exists是关于存在性的查询。
9)关于表联接与子查询的关系,说法错误的是()
a)一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换
b)子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据
c)表连接更适合于查看多表的数据
d)子查询过多,不会比相同效果的表连接占用的系统资源多。
10)假设有表score,表示学生成绩,表student表示学生信息(学生编号、姓名等),两表通过外键stuId关联下面()可实现将学生张三的JAVA成绩增加10分。
a)update score set grade=grade+10 where subject=’java’ and stuid=(select stuid from student where stuname=’张三’) b)update score set grade=grade+10 where stuid in(select stuid from student where stuname=’张三’)
c)update score set grade=grade+10 where subject=’java’
d)update student set stuname=’张三’ where stuid=(select stuid from score where subject=’java’)
11)关于在子查询中使用any/all,以下说法正确的是()
a)any和All差不多,都是只要符合返回值中的任一个数据
b)Any是只有符合返回值中的所有数据
c)All必须要符合查询中返回值的任何一个数据
d)二者一般不与关系运算符一起使用
12)有关联合(Union)、子查询与联接,下面说法错误的是()
a)联合主要用于合并多个数据表中的行,合并过程中的每个select 语句不一定有相同的结构
b)子查询是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询
c)联接主要用于合并多个表中的列
d)通常情况下,若查询数据来源于多张表,可以采取上述3种方式查询
13)关于子查询和连接说法错误的是()。
a)子查询可以代替连接
b)连接代替所有的子查询,所以一般优先采用子查询
c)如果只是作为查询的条件部分,一般考虑子查询
d)如果要显示多表数据,优先考虑连接
14)下面T-SQL代码运行完的结果是()。
declare @x int
set @x=1
while @x<3
begin
print ‘x still less than 3’
set @x=@x+1
end
break
print ‘this statement will not execute’
a)x still less than 3
b)x still less than 3
x still less than 3
x still less than 3
c)x still less than 3
this statement will not execute
d)x still less than 3
x still less than 3
x still less than 3
this statement will not execute
15)下面使用print 打印信息正确的是()。(选择两项)
a)Print ‘SQL SERVER’