SQL高级复习题笔试.docx
《SQL高级复习题笔试.docx》由会员分享,可在线阅读,更多相关《SQL高级复习题笔试.docx(21页珍藏版)》请在冰豆网上搜索。
![SQL高级复习题笔试.docx](https://file1.bdocx.com/fileroot1/2023-1/21/db3679de-d95e-409c-b077-b498baf6568a/db3679de-d95e-409c-b077-b498baf6568a1.gif)
SQL高级复习题笔试
SQL高级复习题
类型:
(笔试)
范围:
内测/月考
日期:
时长:
1小时
总分数:
100分
姓名:
准考证号:
证件号码:
理论部分
注意:
考试结束试卷必须交回,答案填写在答题卡上
1.()不属于任何文件组。
(选一项)
A、次数据文件
B、主数据文件
C、日志文件
D、其他
2.E-R图中,关系集用下面()来表示。
(选一项)
A、矩形
B、椭圆形
C、菱形
D、圆形
3.SQLServer数据库有2种登录认证方式。
其中在()方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
(选一项)
A、Windows身份验证。
B、以超级用户身份登录时。
C、SQLServer身份验证。
D、以系统身份登录时。
4.SQLServer数据库中,下列不属于T-SQL事务管理语句的是(选一项)
A、BEGINTRANSACTION;
B、ENDTRANSACTION;
C、COMMITTRANSACTION;
D、ROLLBACKTRANSACTION;
5.Sqlserver中,()命令用来删除表对象。
(选一项)
A、Drop
B、Remove
C、Truncate
D、Delete
6.SQLServer2005中,已知执行语句:
selectcount(score),sum(score)fromscore返回的结果是10和750,那么执行语句:
selectavg(score)fromscore,返回的结果是(选一项)
A、10
B、75
C、750
D、7500
7.SQLSever2005中数据库中,关键字()标志着批处理的结束。
(选一项)
A、END
B、GO
C、FINISH
D、PRINT
8.UNIQUE约束和主键约束也是哪种完整性的体现(选一项)
A、域完整性
B、引用完整性
C、实体完整性
D、其他
9.对于下面的存储过程:
CREATEPROCEDUREMyp1@pIntAs
SelectStudentname,AgefromStudentswhereAge=@p
假如你要在Students表中查找年龄是18岁的学生,()可以正确的调用这个存储过。
(选一项)
A、EXECMyp1@p='18'
B、EXECMyp1@p=18
C、EXECMyp1p='18'
D、EXECMyp1p=18
10.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型是(选一项)
A、多对多
B、一对一
C、多对一
D、一对多
11.关于存储过程,以下说法正确的是(选一项)
A、不能在存储过程中使用CREATEVIEW命令。
B、T-SQL批代码的执行速度要快于存储过程。
C、存储过程必须带有参数。
D、存储过程不能返回结果集。
12.关于视图,下列说法正确的是(选一项)
A、视图是用来简化复杂查询语句的良好手段,但不能嵌套
B、视图和索引都不是真实存在的数据,因为不是对象,所以关于他的定义不是保存在sysobjects表,而是sysviews表
C、要想让别人不知道建立视图的命令,就在建立时添加withencryption
D、视图无法用drop命令删除,应使用delete命令
13.关于数据库三大范式,以下说法错误的是(选一项)
A、数据库设计满足的范式级别越高,数据库性能越好
B、数据库的设计范式有助于规范数据库的设计
C、数据库的设计范式有助于减少数据冗余
D、一个好的数据库设计可以不满足某条范式
14.关于子查询,以下说法正确的是(选两项)
A、一般来说,表连接都可以用子查询替换。
B、一般来说,子查询都可以用表连接替换。
C、相对于表连接,子查询适合于作为查询的筛选条件。
D、相对于表连接,子查询适合于查看多表的数据。
15.关于子查询下列说法中正确的是(选一项)
A、子查询中的条件可以有变量
B、子查询可以放在父查询的where后,但无法放在select和from中间
C、如果子查询放在父查询中对父查询的语法结构不产生影响,那么子查询可以省略外面的小括号
D、子查询可以嵌套,但最多不能超过3层
16.假定一位教师可讲授多门课程,一门课程可由多位教师讲授,教师与课程之间是(选一项)
A、一对一的关系
B、一对多的关系
C、多对一的关系
D、多对多的关系
17.假设order表中存在orderid等于1的记录,执行下面T-SQL:
BEGINTRANSACTION
DeletefromOrderwhereorderid=1
IF(@@Error<>0)
ROLLBACKTRANSACTION
ROLLBACKTRANSACTION
以下说法正确的是(选一项)
A、执行成功,Orderid为1的记录被永久删除。
B、执行成功,Order表没有任何变化。
C、执行时出现错误。
D、执行成功,但事务处理并没有结束。
18.假设需要设计一个表,记录各个作者著作的所有图书信息,表结构设计如下:
作者(作者名称、图书1、版本1、书价1、图书2、版本2、书价2、……),该表最高符合第()范式。
(选一项)
A、一
B、二
C、三
D、未规范化的
19.假设有表student的设计如下:
ID(学号),Name(姓名),Address(家庭住址),Department(所在系),DepartmentHead(系主任).该表最高满足第()范式。
(选一项)
A、一
B、二
C、三
D、不满足任何范式;
20.建立一张员工表(employee),当向表中插入数据时,若不提供入职时间(beginTime),就把系统当前时间自动作为员工入职时间插入数据库中,以下说法正确的是(选一项)
A、约束中不能使用各种函数,所以只能使用触发器来实现。
B、可以使用CHECK约束实现,默认值采用日期函数getDate()。
C、入职时间必须设为日期类型。
D、可以使用DEFAULT约束实现,默认值采用日期函数getDate()。
21.将E-R图转换为表的过程中,如果实体之间存在多对多的关系,通常的做法是(选一项)
A、在两个实体间建立主外键关系。
B、在两个实体间建立关联表,把一个多对多的关系分解成两个一对多的关系。
C、在两个实体间建立关联表,把一个多对多的关系分解成两个一对一的关系。
D、在两个实体间不建立任何关系。
22.命令SELECT学号,AVG(成绩)AS'平均成绩'FROMXS_KCGROUPBY学号HAVINGAVG(成绩)>=85,表示(选一项)
A、查找XS_KC表中平均成绩在85分以上的学生的学号和平均成绩
B、查找平均成绩在85分以上的学生
C、查找XS_KC表中各科成绩在85分以上的学生
D、查找XS_KC表中各科成绩在85分以上的学生的学号和平均成绩
23.模式查找like'_a%',下面哪个结果是可能的(选一项)
A、aili
B、bai
C、bba
D、cca
24.某表stuinfo只有2行记录,并且stuname是主键列,则下列语句Select@name=stunamefromstuinfo执行结果说法正确的是(选一项)
A、出现错误
B、没有错误,但@name中没有存储任何值
C、@name存储的是第一行的stuname
D、@name存储的是第二行的stuname
25.某数据库表里的studentID列被定义为studentIDintidentity(50,2),首先你添加了3条记录,然后你把第二条记录删除掉,此时,若增加另外一条记录,studentID的值将是(选一项)
A、8
B、54
C、56
D、58
26.如果要确保一个表中的非主键列不输入重复值,应在该列上定义(选一项)
A、PRIMARYKEY
B、UNIQUEKEY
C、CHECK
D、FOREIGNKEY
27.设计用户表时,身份证号为固定18位长,对该字段最好采用()数据类型。
(选一项)
A、int
B、char
C、varchar
D、text
28.使用T-SQL定义两个局部变量AA和BB,正确语句是(选一项)
A、DECLARE@AA,@BB
B、PRIVATE@AA,@BB
C、PUBLIC@AA,BB
D、DECLARE@AA,BB
29.为表userinfo添加约束,语法如下:
altertableuserinfoaddconstraintuq_useridunique(userid)执行成功后,为userinfo表的()字段添加了()约束。
(选一项)
A、Userid;主键
B、Userid;唯一
C、Uq_userid;外键
D、Uq_userid;检查
30.为了加快对某表的访问速度,应对此表建立(选一项)
A、约束
B、存储过程
C、规则
D、索引
31.为数据库中一个或多个表中的数据提供另一种查看方式的逻辑表被称为(选一项)
A、存储过程
B、触发器
C、视图
D、表
32.下列包含groupby的语句正确的是(选一项)
A、Selectstuid,stunamefromstuinfogroupbystuid
B、Selectstuidfromstuinfowherestuid<1000groupbystuid
C、Selectcount(stuid),stunamefromstuinfogroupbystuid
D、Selectstuid,count(stuname)fromstuinfogroupbystuname
33.下列标识符可以作为局部变量使用(选一项)
A、yvar
B、Myvar
C、@Myvar
D、@Myvar
34.下列哪种操作能够得到学生表的最详细信息(选一项)
A、execsp_helpstudent
B、execsp_helptextstudent
C、execsp_helptablestudent
D、execsp_tablesstudent
35.下列行为中,()定义了一个存储过程。
(选一项)
A、如果没有提供其他值,则使用此列中定义的值
B、定义了一个有相关列的行的集合
C、当用户修改数据时,一种特殊形式的存储过程被自动执行
D、SQL语句的预编译集合
36.下面()不是数据库规范化要达到的效果。
(选一项)
A、改善数据库的设计
B、实现最小的数据冗余
C、可以用一个表来存储所有数据,使设计及存贮更加简化
D、防止更新、插入及删除的时候,产生数据丢失
37.下面T-SQL代码运行完的结果是(选一项)
declare@counterint
set@counter=1
while@counter<3
begin
set@counter=@counter+1
print@counter
break
print'loop'
end
A、2loop
B、2
C、2loop3loop
D、23
38.下面关于引用完整性约束的说法正确的是(选二项)
A、违反引用完整性约束时,不能对引用表进行插入操作
B、当建立引用表时被引用的表必须已经存在
C、当建立引用表时被引用的列不用已经存在
D、被引用的列不必是主键或者唯一约束
39.项目开发需要经过几个阶段,绘制数据库的E-R图应该在()阶段进行(选一项)
A、需求分析
B、概要设计
C、详细设计
D、代码编写
40.要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用(选一项)
A、SELECT*FROMCPWHERE产品名称LIKE‘冰箱’
B、SELECT*FROMXSHWHERE产品名称LIKE‘冰箱’
C、SELECT*FROMCPWHERE产品名称LIKE‘%冰箱%’
D、SELECT*FROMCPWHERE产品名称=‘%冰箱%’
41.要建立一个教师表,包含姓名、职称、级别等字段。
若插入数据时,级别字段如果不输入,缺省值为‘讲师’,最合适的实现方法是(选一项)
A、为“级别”字段建立default约束。
B、为“级别”字段建立check约束。
C、在教师表上建立一个触发器(trigger)。
D、为教师表数据输入编写一个存储过程进行控制。
42.要建立一个约束,保证用户表(user)中年龄(age)必须在16岁以上,下面语句正确的是(选一项)
A、Altertableuseraddconstraintck_ageCHECK(age>16)
B、Altertableuseraddconstraintdf_ageDEFAULT(16)forage。
C、Altertableuseraddconstraintuq_ageUNIQUE(age>16)。
D、Altertableuseraddconstraintdf_ageDEFAULT(age>16)。
43.一般情况下,关系数据模型与对象模型之间有哪些匹配关系(选三项)
A、表对应类
B、记录对应对象
C、表的字段对应类的属性
D、表之间的参考关系对应类之间的依赖关系
44.一个学生只能就读于一个班级,而一个班级可以同时容纳多个学生,学生与班级之间是()关系。
(选一项)
A、一对一
B、一对多
C、多对一
D、多对多
45.已知employee表中具有默认约束df_email,删除该约束的语句为(选一项)
A、Altertableemployeedropconstraintdf_email
B、Altertableemployeeremoveconstraintdf_email
C、Altertableemployeedeleteconstraintdf_email
D、Removeconstraintdf_emailfromtableemployee
46.已知表A的列amount是int类型,表A的数据如下:
Amount
1
2
3
现有如下语句,
Declare@oneint
Select@one=amountfromA
则变量@one的结果是(选一项)
A、1
B、2
C、3
D、错误
47.已知有student表,studentid为主键,现在表中共有10行记录,studentid列值从1
到10。
创建试图:
CREATEVIEWdbo.VIEW_student
AS
SELECT*FROMdbo.student
GO
接着执行如下命令:
DELETEFROMVIEW_studentWHERE(studentid=8);
然后执行查询命令:
SELECT*FROMstudent;
SELECT*FROMVIEW_student;
假定上述命令全部执行成功,将各自返回()()行记录。
(选一项)
A、10,10
B、10,9
C、9,10
D、9,9
48.以下代码能输出"OK"的代码是(选一项)
A、declare@numnvarchar(10)@num=‘OK’Print@num
B、declare@numnvarchar(10)@num=‘OK’Select@num
C、If(true)Print‘OK’
D、If(1=1)Select‘OK’
49.以下关于规范设计的描述正确的是(选两项)
A、规范设计的主要目的是消除数据冗余。
B、规范设计往往会增加数据库的性能。
C、设计数据库时,规范化程度越高越好。
D、在规范化数据库中,易于维护数据完整性。
50.以下关于外键和相应的主键之间的关系,正确的是(选一项)
A、外键并不一定要与相应的主键同名
B、外键一定要与相应的主键同名
C、外键一定要与相应的主键同名而且唯一
D、外键一定要与相应的主键同名,但并不一定唯一
51.银行系统中有帐户表和交易表,帐户表中存储了各存款人的帐户余额,交易表中存储了各存款人每次的存取款金额。
为保证存款人每进行一次存、取款交易,都正确的更新了该存款人的帐户余额,以下选项中正确的做法是(选一项)
A、在帐户表上创建insert触发器。
B、在交易表上创建insert触发器。
C、在帐户表上创建检查约束。
D、在交易表上创建检查约束。
52.有关T-SQL中变量的使用,以下说法错误的是(选一项)
A、变量的使用必须先声明,后使用。
B、变量的赋值只能使用set语句。
C、可以使用print语句和select语句输出结果。
D、局部变量的命名必须以@打头。
53.有一张销售表(orders),包含销售员编号(salepersonID)、地区编号(regionID)、销售额(orderamount)三列,其中销售员编号为主键,现希望统计各地区销售总额以及所有销售之和,下面()语句可以实现这一愿望。
(选一项)
A、SELECTregionID,SUM(orderamount)Fromorders
B、SELECTregionID,SUM(orderamount)FromordersGROUPBYregionID
C、SELECTregionID,orderamountFromorders
D、SELECT*FROMorders
54.阅读下面T-SQL代码:
USEmaster
GO
CREATEDATEBASEMyDB2
ON
(
……;
SIZE=2.
MAXSIZE=5.
FILEGROWTH=1
)
GO
以下说法正确的是(选一项)
A、创建成功,数据文件的初始大小为50KB,最大允许增加到1000KB
B、创建成功,数据文件每次增长以1M作为单位
C、创建失败,因为必须至少要指定数据文件所在的物理文件的位置
D、创建失败,因为必须要指定数据库的日志文件名称
55.阅读下面T-SQL语句,对变量赋值时存在错误的是(选一项)
A、DECLARE@idINT,@priceMONEYset@id=100set@price=$2.21
B、DECLARE@idINT,@priceMONEYselect@id=100,@price=2.21
C、DECLARE@idINT,@priceMONEYset@id=100,@price=2.21
D、DECLARE@idINT,@priceMONEYselect@id=100select@price=$2.21
56.运行如下T-SQL,结果返回包含()的记录集。
(选一项)
createtablescores
(
scoreidintidentity(1,2),
scorenumeric(4,2)notnull,
courseidint
)
insertintoscoresvalues(90.5,null);
insertintoscoresvalues(100,2);
select*fromscores;
A、1、90.5、null3、100、2
B、1、100、2l
C、1、90.50、null
D、1、90.5、null3、100.0、2
57.运行以下语句,输出结果是(选一项)
CREATEPROCproc_lookup
@mystuNovarchar(8)=NULL
AS
IF@mystuNoISNULL
BEGIN
Print'您忘记了传递学号参数'
RETURN
END
SELECT*FROMstuInfoWHEREstuNO=@mystuNo
GO
ExecProc_lookup
A、编译错误
B、调用存储过程Proc_lookup出错
C、显示:
您忘记了传递学号参数
D、显示空的学员信息记录集
58.在()子查询中,内层查询要处理多次,内层查询的条件依赖于外层查询中的某些值(选一项)
A、IN子查询
B、EXIST子查询
C、JOIN子查询
D、NOTIN子查询
59.在MSSQLServer中,用来显示数据库信息的系统存储过程是(选一项)
A、sp_dbhelp
B、sp_db
C、sp_help
D、sp_helpdb
60.在score表上创建一个触发器:
createtriggertri_score
onscoreforupdate,delete
as
if(selectcount(*)frominserted)>0
print('success')
go
在查询分析器上执行以下()语句,可能会输出“success”。
(选一项)
A、Updatescoresetscore=20
B、Deletefromscorewherescore<60
C、Insertintoscorevalues(此处省略)
D、Select*fromscore
61.在SQLServer2005的查询分析器中运行以下的T-SQL:
USEPUBS
GO
SELECTDISTNCTQTYFROMSALES
WHEREQTY>=ALL(SELECTMAX(QTY)FROMSALES),结果(选一项)
A、正确查询,并返回Sales表中的所有的数据行
B、正确查询,并返回一行数据
C、提示子查询中因缺少GROUP或者GROUPBY子句而产生语法错误
D、提示错误,因为在子查询中使用父查询中的同一张数据库表时,要求使用
62.在SQLServer2005中,给定如下的T-SQL代码,以下说法正确的是(选一项)
Createprocedureprice_proc(@countintoutput,@avg_pricemoneyoutput,@typeChar(12)=’business’)as
Select@Count=count(*),@avg_price=Avg(price)fromtitleswheretype=@type
A、建立了存储过程price_price,所有参数都是输出参数
B、建立了存储过程price_price,返回的是用户指定图书种类的数量及平均价格
C、@Count=count(*)也可以使用@Count=count()代替
D、创建存储过程失败,因为Select语句中使用了聚合函数,因此必须使用GroupBy进行分组
63.在SQLServer2005的安全类模型中,提供了“服务器”和()两种类型的角色。
(选一项)
A、客户端
B、数据库
C、操作系统
D、数据对象
64.在SQLServer2005的查询分析器中运行以下T-SQL:
USEPUB