T-SQL内部测试笔试题和答案1 下载本文

内容发布更新时间 : 2024/5/24 3:38:43星期一 下面是文章的全部内容请认真阅读。

《MySchool数据库设计优化》内部测试-笔试试卷

1) 在SQL Server 中,为数据库表建立索引能够( )。 A. 防止非法的删除操作 B. 防止非法的插入操作 C. 提高查询性能 D. 节约数据库的磁盘空间

2) 在SQL SERVER中,创建一个表使用( )语句。 A. INSERT B. DROP C. CREATE D. ALERT

3) 在SQL SERVER中,下面关于视图说法错误的是( )。 A. 对查询执行的大多数操作也可以在视图上进行 B. 使用视图可以增加数据库的安全性 C. 不能利用视图增加,删除,修改数据库中的数据 D. 视图使用户更灵活的访问所需要的数据

4) 在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据

库设计的( )阶段。 A. 需求分析 B. 概要设计 C. 逻辑设计 D. 物理设计

5) 在SQL Server 数据库中,如果强制要求grades表中的学员必须是Students表中存在

的学员,以下描述正确的是( )。 A. 在grades表中创建外键约束 B. 在grades表中创建检查约束 C. 在grades表中创建唯一约束 D. 在grades表中创建默认约束

6) 在SQL Server 数据库中,下面的T-SQL语句段执行第三句时出现错误,数据库中的内

容修改情况是( )。 BEGIN TRANSACTION

update Account set balance=7800 where id=1 update Account set balance=9000 where id=1 IF @@error <> 0

ROLLBACK TRANSACTION

ELSE

COMMIT TRANSACTION

7)

A. B. C. D. Account表中id为1的记录中balance字段的值被修改为7800 Account表中id为1的记录中balance字段的值被修改为9000 Account表中id为1的记录中balance字段的值不变 不可能发生这种情况

8) 9)

在SQL Server 数据库中,有关下列T-SQL语句的功能,说法正确的是( )。 DECLARE @I int, @J int SET @I=0

WHILE (@I < 2) BEGIN

SELECT @J=COUNT(*) FROM stuMarks WHERE writtenExam<60 IF(@J>0)

UPDATE stuMarks SET writtenExam=writtenExam+5 WHERE writtenExam<60 ELSE BREAK

SET @I = @I + 1 END

SELECT stuNo,成绩=CASE

WHEN writtenExam<60 THEN '不及格' ELSE '及格' END FROM stuMarks

A. 给不及格的学员反复提5分直到通过为止,最后展示所有学员是否及格的情况信息 B. 给不及格的学员提10分,最后展示所有学员是否及格的情况信息 C. 给不及格的学员提5分,提分后仍不及格的学员再提5分,最后展示所有学员是否

及格的情况信息

D. 给不及格的学员提5分,最后展示所有学员是否及格的情况信息 在SQL Server 数据库中,下面调用存储过程的语句错误的是( )。 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

在SQL SERVER中,下面关于子查询的说法你认为正确的是( )。

A. 应用简单子查询的SQL语句的执行效率比采用SQL变量的实现方案要低 B. 带子查询的查询执行顺序是,先执行父查询,再执行子查询

C. 表连接一般都可以用子查询替换,但有的子查询不能用表连接替换 D. 如果一个子查询语句一次返回二个字段的值,那么父查询的where子句中应该使用

NOT EXISTS关键字

10) 在SQL SERVER中,按以下要求创建学员表正确的SQL语句是( )。

学员表(stuTable)的要求是:学号为5位数字,自动编号;姓名最多为4个汉字,身份证号码最多为18位数字。

A. CREATE TABLE stuTable ( ID NUMERIC(6,0) NOT NULL, Name VARCHAR(4),

Card INT )

B. CREATE TABLE stuTable

( ID INT IDENTITY(10000,1), Name VARCHAR(4), Card DECIMAL(18,0) )

C. IF EXISTS(SELECT * FROM sysobjects WHERE name=' stuTable ')

DROP TABLE stuTable GO

CREATE TABLE stuTable ( ID NUMERIC(4,0) NOT NULL, Name VARCHAR(4), Card INT )

D. IF EXISTS(SELECT * FROM sysobjects WHERE name=' stuTable ')

DROP TABLE stuTable GO

CREATE TABLE stuTable ( ID INT IDENTITY(10000,1), Name VARCHAR(8), Card NUMERIC(18,0) )

11) 在SQL SERVER中,声明并创建以下存储过程,正确调用该存储过程的的语句是(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

12) 下面描述的四个阶段中,不是数据库设计过程中经历的阶段是( )。 A. 需求分析阶段 B. 概要设计阶段

C. 详细设计阶段 D. 代码设计阶段

13) 在SQL Server 中,对IN语句取反的方法是,在IN前面添加( )。 A. NONE B. NOT C. ! D. NO

14) 在SQL Server 数据库中,以下对变量的定义错误的是( )。 A. DECLARE @username varchar(10) B. DECLARE @RowCount varchar(30) C. DECLARE @@username varchar(10) D. DECLARE @@RowCount varchar(30)

15) 在SQL Server中,绘制E-R图时一般使用( )表示实体的属性。 A. 矩形

B. 椭圆 C. 菱形 D. 三角形

16) 在SQL SERVER中,运行下列语句,输出结果是( )。

Create proc proc_Search @myStuno varchar(8) is null as

if @myStuno = null begin

print '你忘记了传递学号' return end

Select * from stuinfo where stuno=@myStuno go

exec proc_Search A. 你忘记了传递学号 B. 编译错误 C. 显示空的记录 D. 调用存储过程proc_Search出错

17) 下面关于SQL Server中变量的操作正确的是( )。 A. DECLARE @name varchar(8)

SET @name='lkl'

18) 下面选项中关于在SQL语句中使用的逻辑控制语句的说法正确的是( )。

A. 在IF-ELSE 条件语句中,IF为必选,而ELSE为可选 B. 在IF-ELSE 条件语句中,语句块使用{ }括起来 C. 在CASE多分支语句中不可以出现ELSE分支

D. 在WHILE循环语句中条件为false,就重复执行循环语句

19) 已知dept表有部门编号字段deptno、部门名称字段dname,员工表emp具有员工编号

字段empno、员工姓名字段ename、电话字段phone和所属部门编号字段deptno,该字段参考dept表的deptno字段,要使用SQL语句查询 “研发部”部门所有员工的编号和姓名信息,下面选项中正确的是( )。 A. SELECT empno,ename FROM emp

WHERE empno=(SELECT empno FROM dept WHERE dname=\研发部\B. SELECT empno,ename FROM emp

WHERE deptno=(SELECT deptno FROM dept WHERE dname='研发部') C. SELECT empno,ename FROM emp

WHERE deptno=(SELECT * FROM dept WHERE dname='研发部') D. SELECT empno,ename FROM dept

WHERE deptno=(SELECT deptno FROM emp WHERE dname=\研发部\

20) 在SQL Server中,下面关于视图的描述,说法正确的是( )。 A. 使用视图可以筛选原始物理表中的数据,增加了数据访问的安全性 B. 视图是一种虚拟表,数据只能来自一个原始物理表 C. CREATE VIEW语句中可以包含UPDATE语句 D. 为了安全起见,一般只对视图执行查询操作,不推荐在视图上执行修改操作

21) 在SQL Server中,创建如下存储过程:

create proc stu_exam @writtenExam int=null as

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

print '姓名是'+@name

B. DECLARE name varchar(8)

SET name='lkl'

print '姓名是'+name

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