SQLServer数据库笔试题.docx
- 文档编号:18592933
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:40
- 大小:36.78KB
SQLServer数据库笔试题.docx
《SQLServer数据库笔试题.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库笔试题.docx(40页珍藏版)》请在冰点文库上搜索。
SQLServer数据库笔试题
SQL测试-笔试试卷
1)在SQLServer中,为数据库表建立索引能够()。
A.防止非法的删除操作
B.防止非法的插入操作
C.提高查询性能
D.节约数据库的磁盘空间
2)在SQLSERVER中,创建一个表使用()语句。
A.INSERT
B.DROP
C.CREATE
D.ALERT
3)在SQLSERVER中,下面关于视图说法错误的是()。
A.对查询执行的大多数操作也可以在视图上进行
B.使用视图可以增加数据库的安全性
C.不能利用视图增加,删除,修改数据库中的数据
D.视图使用户更灵活的访问所需要的数据
4)在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的()阶段。
A.需求分析
B.概要设计
C.逻辑设计
D.物理设计
5)在SQLServer数据库中,如果强制要求grades表中的学员必须是Students表中存在的学员,以下描述正确的是()。
A.在grades表中创建外键约束
B.在grades表中创建检查约束
C.在grades表中创建唯一约束
D.在grades表中创建默认约束
6)在SQLServer数据库中,下面的T-SQL语句段执行第三句时出现错误,数据库中的内容修改情况是()。
BEGINTRANSACTION
updateAccountsetbalance=7800whereid=1
updateAccountsetbalance=9000whereid=1
检查上一句错误则执行
IF@@error<>0
ROLLBACKTRANSACTION
ELSE
COMMITTRANSACTION
A.Account表中id为1的记录中balance字段的值被修改为7800
B.Account表中id为1的记录中balance字段的值被修改为9000
C.Account表中id为1的记录中balance字段的值不变
D.不可能发生这种情况
7)在SQLServer数据库中,有关下列T-SQL语句的功能,说法正确的是()。
DECLARE@Iint,@Jint
SET@I=0
WHILE(@I<2)
BEGIN
SELECT@J=COUNT(*)FROMstuMarksWHEREwrittenExam<60
IF(@J>0)
UPDATEstuMarksSETwrittenExam=writtenExam+5WHEREwrittenExam<60
ELSE
BREAK
SET@I=@I+1
END
SELECTstuNo,成绩=CASE
WHENwrittenExam<60THEN'不及格'
ELSE'及格'
END
FROMstuMarks
A.给不及格的学员反复提5分直到通过为止,最后展示所有学员是否及格的情况信息
B.给不及格的学员提10分,最后展示所有学员是否及格的情况信息
C.给不及格的学员提5分,提分后仍不及格的学员再提5分,最后展示所有学员是否及格的情况信息
D.给不及格的学员提5分,最后展示所有学员是否及格的情况信息
8)在SQLServer数据库中,下面调用存储过程的语句错误的是()。
A.EXECproc_stu@sumOUTPUT,64,78
B.EXECproc_stu@sumOUTPUT,@totaloutput,78
C.EXECproc_stu@sumOUTPUT,604
D.EXECCalculate@sumOUTPUT,@totaloutput
9)在SQLSERVER中,下面关于子查询的说法你认为正确的是()。
A.应用简单子查询的SQL语句的执行效率比采用SQL变量的实现方案要低
B.带子查询的查询执行顺序是,先执行父查询,再执行子查询
C.表连接一般都可以用子查询替换,但有的子查询不能用表连接替换
D.如果一个子查询语句一次返回二个字段的值,那么父查询的where子句中应该使用NOTEXISTS关键字
10)在SQLSERVER中,按以下要求创建学员表正确的SQL语句是()。
学员表(stuTable)的要求是:
学号为5位数字,自动编号;姓名最多为4个汉字,身份证号码最多为18位数字。
A.CREATETABLEstuTable(
IDNUMERIC(6,0)NOTNULL,
NameVARCHAR(4),
CardINT
)
B.CREATETABLEstuTable
(
IDINTIDENTITY(10000,1),
NameVARCHAR(4),
CardDECIMAL(18,0)
)
C.IFEXISTS(SELECT*FROMsysobjectsWHEREname='stuTable')
DROPTABLEstuTable
GO
CREATETABLEstuTable
(
IDNUMERIC(4,0)NOTNULL,
NameVARCHAR(4),
CardINT
)
D.IFEXISTS(SELECT*FROMsysobjectsWHEREname='stuTable')
DROPTABLEstuTable
GO
CREATETABLEstuTable
(
IDINTIDENTITY(10000,1),
NameVARCHAR(8),
CardNUMERIC(18,0)
)
11)在SQLSERVER中,声明并创建以下存储过程,正确调用该存储过程的的语句是()。
CREATE PROCEDUREPRO
@passNumintOUTPUT,
@passPointint=60
AS
Select@passNum=count(*)FromstuTableWherepoint>@passPoint
GO
A.Declare@sumint
EXECPRO@passNum,70
B.Declare@sumint
EXECPRO@sumoutput,70
C.Declare@sumint
EXECPRO@sumoutput
D.EXECPRO70
12)下面描述的四个阶段中,不是数据库设计过程中经历的阶段是()。
A.需求分析阶段
B.概要设计阶段
C.详细设计阶段
D.代码设计阶段
13)在SQLServer中,对IN语句取反的方法是,在IN前面添加()。
A.NONE
B.NOT
C.!
D.NO
14)在SQLServer数据库中,以下对变量的定义错误的是()。
A.DECLARE@usernamevarchar(10)
B.DECLARE@RowCountvarchar(30)
C.DECLARE@@usernamevarchar(10)
D.DECLARE@@RowCountvarchar(30)
15)在SQLServer中,绘制E-R图时一般使用()表示实体的属性。
A.矩形
B.椭圆
C.菱形
D.三角形
16)在SQLSERVER中,运行下列语句,输出结果是()。
Createprocproc_Search
@myStunovarchar(8)(输入参数)isnull应该是赋值
as
if@myStuno=null
begin
print'你忘记了传递学号'
return
end
Select*fromstuinfowherestuno=@myStuno
go
execproc_Search
A.你忘记了传递学号
B.编译错误
C.显示空的记录
D.调用存储过程proc_Search出错
17)下面关于SQLServer中变量的操作正确的是()。
A.DECLARE@namevarchar(8)
SET@name='lkl'
print'姓名是'+@name
B.DECLAREnamevarchar(8)
SETname='lkl'
print'姓名是'+name
C.print@@VERSIONAS'版本',,应该用“+”@@SERVERNAMEAS'服务器'
D.SELECT@@VERSIONAS'版本',@@SERVERNAMEAS'服务器'
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.SELECTempno,enameFROMemp
WHEREempno=(SELECTempnoFROMdeptWHEREdname="研发部")
B.SELECTempno,enameFROMemp
WHEREdeptno=(SELECTdeptnoFROMdeptWHEREdname='研发部')
C.SELECTempno,enameFROMemp
WHEREdeptno=(SELECT*FROMdeptWHEREdname='研发部')
D.SELECTempno,enameFROMdept
WHEREdeptno=(SELECTdeptnoFROMempWHEREdname="研发部")
20)在SQLServer中,下面关于视图的描述,说法正确的是()。
A.使用视图可以筛选原始物理表中的数据,增加了数据访问的安全性
B.视图是一种虚拟表,数据只能来自一个原始物理表
C.CREATEVIEW语句中只可以有select语句
D.为了安全起见,一般只对视图执行查询操作,不推荐在视图上执行修改操作
21)在SQLServer中,创建如下存储过程:
createprocstu_exam
@writtenExamint=null
as
if@writtenExamisnull
begin
print'请输入笔试成绩及格线'
return
end
select*fromstudentwherestu_idin
(selectstu_idfromstu_marks
wherewrittenExam>@writtenExam)
GO
下列选项正确的是()。
A.执行EXECstu_exam语句,控制台显示所有笔试成绩及格的学生信息记录集
B.存储过程(stu_exam)代码存在语法错误
C.执行EXECstu_exam语句,控制台显示“请输入笔试成绩及格线”
D.执行EXECstu_exam75语句,控制台显示“请输入笔试成绩及格线”
22)下列选项中不属于SQLServer的逻辑控制语句的是()。
A.IF-ELSE语句
B.FOR循环语句
C.CASE子句
D.WHILE循环语句
23)在SQLSERVER中,关于聚集索引和非聚集索引的描述错误的是()。
A.一个表可以有多个非聚集索引,但只能有一个聚集索引
B.聚集索引的值顺序与数据表中记录的物理顺序完全相同√主键索引也是唯一但主键字段是可以跨多个列
C.在建立聚集索引的列上不允许有重复的值
D.使用聚集索引查询的速度要比非聚集索引速度快
24)在SQLSERVER中,关于系统存储过程以下说法错误的是()。
A.系统存储过程提供了管理数据库和更新表的机制
B.所有系统存储过程都以sp_开头还有xp_开头
C.所有系统存储过程都存放在master数据库中
D.用户不能使用系统存储过程更新系统表,只能查询系统表×
25)在SQLServer数据库中,从product表里查询出price(价格)高于pName(产品名称)为“一次性纸杯”所有记录中最高价格的产品的查询语句为()。
A.SELECT*FROMproductWHEREmax(price)>'一次性纸杯'
B.SELECT*FROMproductWHEREprice>(SELECTmax(*)FROMproductWHEREpName='一次性纸杯')
C.SELECT*FROMproductWHEREEXISTSpName='一次性纸杯'
D.SELECT*FROMproductWHEREprice>(SELECTmax(price)FROMproductWHEREpName='一次性纸杯')
SQLServer笔试题(Sql2008常见笔试题)
一单词解释(2分/个)34分
Data数据Database数据库RDBMS关系数据库管理系统GRANT授权
REVOKE取消权限DENY拒绝权限DECLARE定义变量PROCEDURE存储过程
事务Transaction触发器TRIGGER继续 continue唯一unqiue
主键primarykey 标识列identity外键foreignkey 检查check
约束constraint
二编写SQL语句(5分/题)50分(包含笔试题问题和解答答案)
1)创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话
Createtablestu(学号int,
姓名varchar(8),
年龄int,
性别varchar(4),
家庭地址varchar(50),
联系电话int
);
2)修改学生表的结构,添加一列信息,学历
Altertablestuadd学历varchar(6);
3)修改学生表的结构,删除一列信息,家庭住址
Altertablestudropcolumn家庭地址
4)向学生表添加如下信息:
学号姓名年龄性别联系电话学历
1A22男小学
2B21男119中学
3C23男110高中
4D18女114大学
Insertintostuvalues(1,’A’,22,’男’,,’小学’)
Insertintostuvalues(2,’B’,21,’男’,119,’中学’)
Insertintostuvalues(3,’C’,23,’男’,110,’高中’)
Insertintostuvalues(4,’D’,18,’女’,114,’大学’)
5)修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”
Updatestuset学历=’大专’where联系电话like‘11%’
6)删除学生表的数据,姓名以C开头,性别为‘男’的记录删除
Deletefromstuwhere性别=’男’and姓名like‘c%’
7)查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来
Select姓名,学号fromstuwhere年龄<22and学历=’大专’
8)查询学生表的数据,查询所有信息,列出前25%的记录
Selecttop25percent*fromstu
9)查询出所有学生的姓名,性别,年龄降序排列
Select姓名,性别fromstuorderby年龄desc
10)按照性别分组查询所有的平均年龄
Selectavg(年龄)fromstugroupby性别
三填空(3分/题)36分(包含笔试题问题和解答答案)
1)索引分为__聚集索引___和__非聚集索引__在一张表上最多可以创建1个聚集索引_索引。
但是可以创建_249个非聚集索引索引。
2)系统存储过程_sp-helptext__是用来显示规则,默认值,未加密的存储过程,用户定义函数,触发或视图的文本
3)事务开始:
beginTransction
提交事务:
commitTransction
回滚事务:
rollbackTransction
四问答题(5分/题)60分(包含笔试题问题和解答答案)
1)数据库包含哪些那几种后缀名的文件必须,这些文件分别存放在什么的信息?
主要数据文件(.mdf)包含数据用户收集的信息,还有数据库其他相关的信息,
日志数据文件(.ndf)存放用户对数据库的增删改查的信息,用于备份恢复使用
2)TRUNCATETABLE命令是什么含义?
和Deletefrom表名有什么区?
TRUNCATETABLE:
提供了一种删除表中所有记录的快速方法
Deletefrom表名:
可以删除表的一个或多条记录
3)说出以下聚合数的含义:
avg,sum,max,min,count,count(*)
AVG:
求平均值
SUM:
求和
MAX:
求最大值
MIN:
求最小值
COUNT(*):
返回所有行数
COUNT返回满足指定条件的记录值
4)innerjoin是什么意思?
作用是什么?
写出基本语法结构
INNERJOIN内联接,用于返回两个表中要查询的列数据通信
Select*from表名1innerjoin表名2on条件表达式
5)左向外联接,右向外联接,全联接的关健字如何写?
Leftouterjoin左向外联接
Rightouterjoin右向外联接
Fullouterjoin全联接
6)子查询分为几类,说明相互之间的别
了查询分三种基本子查询:
1.使用in查询返回一列或更多值
2.比较运算符,返回单个值勤做为外查询的参数
3.用exists查询时相当于进行一次数据测试
7)实现实体完整性,实现域完整性,实现完整性(引用完整性),实现自定义完整性分别使用什么手段?
实现实体完整性:
主键约束唯一约束标识列
实现域完整性:
默认值约束检查约束非空属性
引和完整性:
外键引用
8)视图可以更新吗?
会影响到实际表吗?
视图是可以更新的,视图只是基于基本表上的虚拟表,对视图的更新会直接影响到实际表
9)谈谈这样几个角色,dbo,Sysadminpublic
Dbo:
是数据库的拥有者,对数据库拥有所有操作的权限
Sysadmin:
可以对SQLSERVER执行任何活动
Public:
自动创建的,能捕获数据库中用户的所有默认权限
10)何为动态游标?
何为静态游标?
动态游标与静态游标相对,反映结果集中所做的所有更改,
静态游标的结果集在游标打开时,建立在tempdb中,总按照游标打开时的原样显示
11)什么是存储过程?
为什么存储过程要比单纯的Sql语句执行起来要快?
存储过程:
是一组预先编译好的T-SQL代码
在创建存储过程时经过了语法和性能优化,执行不必重复的步骤,使用存储过程可提高运行效率
12)什么是Inserted表?
什么是Deleted表?
Inserted表用于存储inserted和update语句影响的副本
Deleted表用于存储delect和update语句影响的行的副本
选择题:
(20分)
1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:
(__B_)
A、只存在一对多的实体关系,以图形方式来表示。
B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C、能体现一对多、多对多的关系,但不能体现一对一的关系。
D、关系模型数据库是数据库发展的最初阶段。
2、在“连接”组中有两种连接认证方式,其中在(__B_)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证B、SQLServer身份验证
C、以超级用户身份登录时D、其他方式登录时
3、SQLServer2000在安装之前,应注意的事项:
(_C__)
A、SQLServer2000的任何版本在安装时都不用考虑操作系统的制约。
B、SQLServer2000的安装对硬件的要求不作任何限制。
C、SQLServer2000在安装之前,必须在操作系统级启用TCP/IP。
D、在WindowsNTServer4.0上安装SQLServer2000时,最低的要求是必须安装ServicePack4(SP4)以上。
4、关系数据库中,主键是(1__A_),主键的建立有(2_C__)种方法,当运用Transact-SQL语句创建主键时,可以是(3B___)。
⑴A、为标识表中唯一的实体
B、创建唯一的索引,允许空值
C、只允许以表中第一字段建立
D、允许有多个主键的
⑵A、一B、二C、三D、四
⑶A、createtabletable1
(column1char(13)notnullprimary,
column2intnot)onprimary;
B、altertabletable1withnotcheckadd
constraint[PK_table1]primarykeynonclustered
(column1)onprimary;
C、altertabletable1column1primarykey;
5、表在数据库中是一个非常重要的数据对象,它是用来(1C___)各种数据内容的,数据库创建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 数据库 笔试