SQLA摸底测试题答案 联系客服

发布时间 : 星期二 文章SQLA摸底测试题答案更新完毕开始阅读a9ab0cb11a37f111f1855bca

说明:选择题每题2分,共60分,没有注明的是单选题。编程题每题10分,共40分。

一、选择题(共60分)

1)假设需要设计一个表,记录各个作者著作的所有图书信息,表结构设计如下: 作者(作者名称、图书1、版本1、书价1、图书2、版本2、书价2、??), 该表最高符合第(d)范式。 a)一 b)二 c)三

d)未规范化的

2)一个学生只能就读于一个班级,而一个班级可以同时容纳多个学生,学生与班级之间是(c)关系。 a)一对一 b)一对多 c)多对一 d)多对多

3)E-R图中,关系用下面(c)来表示。 a)矩形 b)椭圆形 c)菱形 d)圆形

4)以下关于规范设计的描述正确的是(ad)。(选择两项) a)规范设计的主要目的是消除数据冗余。 b)规范设计往往会增加数据库的性能。 c)设计数据库时,规范化程度越高越好。 d)在规范化数据库中,易于维护数据完整性。

5)关于触发器,(bc)说法是错误的。(选择两项) 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

在查询分析器上执行以下(a)语句,可能会输出“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) a)通过All/Any/Compute修改的比较运算符

b)通过未修改的比较运算符引入且必须返回单个值的子查询 c)通过Exists引入的存在查询

d)嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询

8)下面关于IN与Exists子查询的说法错误的是(c)

a)IN与Exists子查询的共同点就是查询的结果都返回布尔值。 b)IN必须有字段与字查询的行进行比较,子查询中的值与IN左边的值进行比较,相等则返回真。

c)Exists左边必须有字段,只查询子查询的行,若存在这样的行,就返回真。 d)exists是关于存在性的查询。

9)关于表联接与子查询的关系,说法错误的是(d)

a)一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换 b)子查询比较灵活、方便,常作为增删改查的筛选条件,适合于操纵一个表的数据

c)表连接更适合于查看多表的数据

d)子查询过多,不会比相同效果的表连接占用的系统资源多。

10)假设有表score,表示学生成绩,表student表示学生信息(学生编号、姓名等),两表通过外键stuId关联下面(a)可实现将学生张三的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,以下说法正确的是(c) a)any和All差不多,都是只要符合返回值中的任一个数据 b)Any是只有符合返回值中的所有数据

c)All必须要符合查询中返回值的任何一个数据 d)二者一般不与关系运算符一起使用

12)有关联合(Union)、子查询与联接,下面说法错误的是(a) a)联合主要用于合并多个数据表中的行,合并过程中的每个select语句不一定有相同的结构

b)子查询是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询 c)联接主要用于合并多个表中的列

d)通常情况下,若查询数据来源于多张表,可以采取上述3种方式查询

13)关于子查询和连接说法错误的是(b)。 a)子查询可以代替连接

b)连接代替所有的子查询,所以一般优先采用子查询 c)如果只是作为查询的条件部分,一般考虑子查询 d)如果要显示多表数据,优先考虑连接

14)下面T-SQL代码运行完的结果是(a)。 declare @x int set @x=1 while @x<3 begin

print ‘x still less than 3’ set @x=@x+1 break

print ‘this statement will not execute’ end

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 打印信息正确的是(ad)。(选择两项) a)Print ‘SQL SERVER’

b)Print ‘张三的年龄是’+22 c)Declare @var int Set @var=21

Print ‘张三的年龄是’+@var d)Declare @var char(10) Select @var=’ACCP’

Print ‘编号为001的学生姓名是’+@var

16) 下面的几个选项中声明两个变量语法正确的是(bd)。(选择两项) a)declare num1 int declare num2 int b)declare @num1 int declare @num2 int

c)declare @num1,@num2 int d)declare @num1 int,@num2 int

17)下面变量中属于T-SQL中用户自定义的变量的是(b) a)@@error b)@number c)abc d)num1 18)

while (1=1) begin

update stuMarks set labExam=labExam+1

if((select max(labExam) from stuMarks)>=97) break end

以上程序的运行结果是(c)。 a)死循环,程序一直执行下去

b)在stuMarks 表中将机试成绩加1分

c)给stuMarks 表中给机试成绩加分,直到有人达到97分结束 d)在stuMarks表中,机试成绩肯定不会有人超过97分

19)下面关于函数说法正确的是(AC)(选择两项) a)表值函数分为多语句表值函数和内联表值函数 b)标量值函数能返回多个值。

c)多语句表值函数体一定要有begin 和end d)内联表值函数体一定要有begin和end

20)下面关于表值函数说法正确的是(BC)(选择两项) a)多语句表值函数在返回值的时候不必定义表的结构。 b)内联表值函数在放回值的时候不必定义表的结构 c)多语句表值函数中最后一条必须是return语句 d)内联表值函数的语句可以有多条