温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
SQL
内部
测试
笔试
答案
《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
A. Account表中id为1的记录中balance字段的值被修改为7800
B. Account表中id为1的记录中balance字段的值被修改为9000
C. Account表中id为1的记录中balance字段的值不变
D. 不可能发生这种情况
7) 在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分,最后展示所有学员是否及格的情况信息
8) 在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
9) 在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'
print '姓名是'+@name
B. DECLARE name varchar(8)
SET name='lkl'
print '姓名是'+name
C. print @@VERSION AS '版本', @@SERVERNAME AS '服务器'
D. SELECT @@VERSION AS '版本', @@SERVERNAME AS '服务器'
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
下列选项正确的是( )。
A. 执行EXEC stu_exam语句,控制台显示所有笔试成绩及格的学生信息记录集
B. 存储过程(stu_exam)代码存在语法错误
C. 执行EXEC stu_exam语句,控制台显示“请输入笔试成绩及格线”
D. 执行EXEC stu_exam 75语句,控制台显示“请输入笔试成绩及格线”
22) 下列选项中不属于SQL Server的逻辑控制语句的是( )。
A. IF-ELSE语句
B. FOR循环语句
C. CASE子句
D. WHILE循环语句
23) 在SQL SERVER中,关于聚集索引和非聚集索引的描述错误的是( )。
A. 一个表可以有多个非聚集索引,但只能有一个聚集索引
B. 非聚集索引的值顺序与数据表中记录的物理顺序完全相同
C. 在建立聚集索引的列上不允许有重复的值
D. 使用聚集索引查询的速度要比非聚集索引速度快
24) 在SQL SERVER中,关于系统存储过程以下说法错误的是( )。
A. 系统存储过程提供了管理数据库和更新表的机制
B. 所有系统存储过程都以sp_开头
C. 所有系统存储过程都存放在master数据库中
D. 用户不能使用系统存储过程更新系统表,只能查询系统表
25) 在SQL Server 数据库中,从product表里查询出price(价格)高于pName(产品名称)为“一次性纸杯”所有记录中最高价格的产品的查询语句为( )。
A. SELECT * FROM product WHERE max(price)>'一次性纸杯'
B. SELECT * FROM product WHERE price>(SELECT max(*) FROM product WHERE pName= '一次性纸杯')
C. SELECT * FROM product WHERE EXISTS pName='一次性纸杯'
D. SELECT * FROM product WHERE price>(SELECT max(price) FROM product WHERE pName='一次性纸杯')
《MySchool数据库设计优化》内部测试-笔试试卷答案
一、选择题
1.C 2.C 3. C 4.B 5.A
6.C 7.C 8.B 9. CD 10. D
11. BC 12.D 13. B 14. D 15.B
16.B 17.AD 18. A 19.B 20.AD
21.C 22.B 23. B 24.D 25.D
考试时间 50分钟