SQLbase综合测试题SCME.docx
《SQLbase综合测试题SCME.docx》由会员分享,可在线阅读,更多相关《SQLbase综合测试题SCME.docx(14页珍藏版)》请在冰豆网上搜索。
SQLbase综合测试题SCME
**学院课程考试试卷
课程名称:
《SQLServer:
使用SQLServer管理和查询数据》(A)卷
年级:
班级:
姓名:
_______________学号:
_________________考试(考查)闭卷
题号
1-20
21-40
41-50
总分
分数
选择题(每题2分,共计100分)
1.关于标识列,以下说法正确的是()。
A.使用sql语句插入数据时,可以为标识列指定要插入的值。
B.设定标识时,必须同时指定标识种子和标识递增量。
C.若设定标识时,未指定标识递增量,那么使用sql语句插入数据时可以为标识列指定递增值。
D.把主键设定为标识列。
2.以下关于外键的说法正确的是()。
[选两项]
A.外键的数据在主表中必须存在
B.外键的数据可以为空
C.外键中引用的数据,主表可以更改
D.外键的数据在主表中可以没有
3.SQL数据库可以没有()。
[选两项]
A.日志文件
B.主要数据文件
C.次要数据文件
D.帮助文档
4.数据完整性是指()。
A.数据库中的数据不存在重复
B.数据库中所有的数据格式是一样的
C.所有的数据全部保存在数据库中
D.数据库中的数据能够正确反应实际情况
5.表ABC有int型三列A,B,C其中B是自动增长型,C的默认值为‘100’,执行语句insertintoABCvalues(200,300)以下说法正确的是()。
A.C的值为100
B.A的值为200
C.B的值为300
D.语法错误,不能正常执行
6.SQLServer中自己建立的ACCP数据库属于()。
A.用户数据库
B.系统数据库
C.数据库模版
D.数据库管理系统
7.假定有一个用户表,表中包含字段:
userid(int)、username(varchar)、password(varchar)、等,该表需要设置主键,以下说法正确的是()。
[选两项]
A.如果不能有同时重复的username和password,那么username和password可以组合在一起作为主键。
B.此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。
C.此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。
D.如果采用userid作为主键,那么在userid列输入的数值,允许为空。
8.数据冗余指的是()。
A.数据和数据之间没有联系
B.数据有丢失
C.数据量太大
D.存在重复的数据
9.SQLServer数据库主数据文件的扩展名是()。
A..sql
B..mdf
C..mdb
D..ndf
10.在SQLServer2005数据库中,有students(学生)表,包含字段:
SID(学号),Sname(姓名),Gread(成绩).现查找所有学员中成绩最高的前5名学员.下列SQL语句正确的是()。
A.SELECTTOP5FROMstudentsORDERBYGradeDESC
B.SELECTTOP5FROMstudentsORDERBYGrade
C.SELECTTOP5*FROMstudentsORDERBYGrade
D.SELECTTOP5*FROMstudentsORDERBYGradeDESC
11.电话号码应当采用()格式的数据类型来存储。
A.字符
B.整数
C.浮点数
D.Bit
12.以下()语句从表TABLE_NAME中提取前10条记录。
A.select*fromTABLE_NAMEwhererowcount=10
B.selectTOP10*fromTABLE_NAME
C.selectTOPof10*fromTABLE_NAME
D.select*fromTABLE_NAMEwhererowcount<=10
13.在表Student中有一列为stuName,执行删除语句
DELETEFROMStudentWHEREstuNameLIKE‘_[ae]%’
下面包含stuName列的()值的数据行可能被删除。
A.Whyte
B.Carson
C.Annet
D.Hunyer
14.现有表book,字段:
id(int),title(varchar),price(float);其中id字段设为标识,使用insert语句向book表中插入数据,以下语句错误的是()。
A.insertintobook(id,title,price)values(1,'java',100)
B.insertintobook(title,price)values('java',100)
C.insertintobookvalues('java',100)
D.insertbookvalues('java',100)
15.若要删除book表中所有数据,以下语句错误的是()。
[选两项]
A.truncatetablebook
B.delete*frombook
C.droptablebook
D.deletefrombook
16.学生成绩表grade中有字段score(float),现在要把所有在55分至60之间的分数提高5分,以下sql语句正确的是()。
[选两项]
A.Updategradesetscore=score+5
B.Updategradesetscore=score+5wherescore>=55orscore<=60
C.Updategradesetscore=score+5wherescorebetween55and60
D.Updategradesetscore=score+5wherescore>=55andscore<=60
17.假设Employee表有三列EmpID,EmpGrade,EmpSalaryGrade,并且列值都是整数数据类型,则以下哪行查询语句能正确执行()。
A.SELECTEmpIDFROMEmployeeORDERByEmpIdwhereEmpID=EmpGrade
B.SELECTEmpIDFROMEmployeewhereEmpID=EmpGrade=EmpSalaryGrade
C.SELECTEmpIDFROMEmployeeorderbyEmpGrade+EmpSalaryGrade
D.SELECTEmpID,EmpGradeFROMEmployeewhereEmpGrade+EmpSalaryGrade
18.若student表中包含主键sudentid,则执行语句:
updatestudentsetstudentid=100wherestudentid=101,结果可能是()。
[选三项]
A.错误提示:
主键列不能更新。
B.更新了一条数据。
C.错误提示:
违反主键约束。
D.既不提示错误,也不更新数据。
19.在SQL2005数据库中,可以使用()关键字来限制返回的数据行数。
A.LIMIT
B.TOP
C.COUNT
D.SUM
20.查询student表中的所有非空email列的信息,以下语句正确的是()。
A.Selectemailfromstudentwhereemail!
=null
B.Selectemailfromstudentwhereemailnotisnull
C.Selectemailfromstudentwhereemail<>null
D.Selectemailfromstudentwhereemailisnotnull
21.执行以下SQL语句
SELECTTOP40PERCENTSName,SAddressFROM Students
结果返回了20行数据,则()。
A.表Students中只有40行数据
B.表Students中只有20行数据
C.表Students中大约有50行数据
D.表Students中大约有100行数据
22.成绩表grade中字段score代表分数,以下()语句返回成绩表中的最低分。
[选两项]
A.selectmax(score)fromgrade
B.selecttop1scorefromgradeorderbyscoreasc
C.Selectmin(score)fromgrade
D.selecttop1scorefromgradeorderbyscoredesc
23.关于聚合函数,以下说法错误的是()。
A.Sum返回表达式中所有数的总合,因此只能用于数字类型的列。
B.Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。
C.Max和Min可以用于字符型的列。
D.Count可以用于字符型的列。
24.Sqlserver提供了一些日期函数,以下说法错误的是()。
[选三项]
A.selectdateadd(mm,4,’01/01/99’)返回值为:
05/01/99
B.selectdatediff(mm,'03/06/2003','03/09/2003')返回值为:
3
C.selectdatepart(day,'03/06/2003')返回值为:
6
D.selectdatename(dw,'03/06/2003')返回值为:
6
25.查询年龄为16,17,18岁的学生姓名的语句是()。
[选两项]
A.Select*fromstudentwherest_agebetween16and18
B.Selectst_namefromstudentwherest_agebetween(16,18)
C.Selectfromstudentwherest_agein(16,17,18)
D.Selectst_namefromstudentwherest_agein(16,17,18)
26.使用以下()可以进行模糊查询。
A.ORB.Notbetween…and
C.NotIND.Like
27.关于分组查询,以下()描述是错误的。
[选两项]
A.使用groupby进行分组查询
B.对分组后的条件的筛选必须使用Having子句
C.Having子句不能与where子句同时出现在一个select语句中
D.在使用分组查询时,在select列表中只能出现被分组的列。
如:
selectcourseidfromgradegroupbycourseid.
28.以下()语句的返回值不是22。
A.Selectabs(-22)B.Selectabs(22)
C.Selectceiling(22.1)D.Selectfloor(22.9)
29.Sql语句:
select*fromstudentswhereSNOlike‘010[^0]%[A,B,C]%’,可能会查询出的SNO是()。
[选两项]
A.01053090A
B.01003090A01
C.01053090D09
D.0101A01
30.关于Truncatetable,以下()描述是错误的。
[选两项]
A.Truncatetable可跟Where从句,根据条件进行删除。
B.Truncatetable用来删除表中所有数据。
C.Truncatetable标识列将会重置为初始。
D.delete比Truncatetable速度快。
31.以下()说明了代码:
not(付款方式=’信用卡’)or(信用卡<>’阳光卡’)的含义。
A.付款方式不能是信用卡。
B.付款方式不能是信用卡,或者信用卡是阳光卡。
C.如果付款方式是信用卡,那么信用卡不能是阳光卡。
D.付款方式是信用卡,并且信用卡不能是阳光卡。
32.执行Sql语句:
select*,score*0.5+20as加权成绩fromgradewhere(score*0.5+20)<60orderbyscore*0.5+20,以下()描述是正确的。
A.错误提示:
orderby子句中不能出现表达式。
B.正确执行,显示grade表中各列值,按照score由低到高排序。
C.正确执行,显示grade表中各列值,以及加权成绩列,按照score由低到高排序。
D.错误提示:
where子句中不能出现表达式。
33.创建一个名为‘Customers’的新表,同时要求新表中包含表‘clients’的所有记录,sql语句是()。
A.Select*intocustomersfromclients
B.Selectintocustomersfromclients
C.Insertintocustomersselect*fromclients
D.Insertcustomersselect*fromclients
34.关于主键,以下()说法是错误的。
[选两项]
A.主键可以用来确保表中不存在重复的数据行。
B.一个表必须有一个主键。
C.一个表只能有一个主键。
D.只能对整数型列设置主键。
35.表book中包含三个字段:
title(varchar),author(varchar),price(float)。
Author的默认值是’UNKNOW’,执行sql语句:
insertbook(title,price)values(‘jsp’,50)。
以下结果正确的是()。
A.插入失败,sql语句有错
B.插入成功,author列的数据是UNKNOW
C.插入成功,author列的数据是NULL
D.插入成功,author列的数据是50
36.定义列中可以接受的数据值或格式,称为()。
A.唯一性约束
B.检查约束
C.主键约束
D.默认约束
37.以下关键字的顺序正确的是()。
A.Selectfromhavinggroupbywhereorderby
B.Selectfromwheregroupbyorderbyhaving
C.Selectfromorderbywherehavinggroupby
D.Selectfromwheregroupbyhavingorderby
38.Sqlserver提供了一些系统函数,以下说法错误的是()。
[选两项]
A.selectdatalength(‘abcde’)返回值为:
5
B.selectconvert(char(3),12345)返回值为:
123
C.selectdatalength(‘abcde’)返回值为:
5
D.selectconvert(char(5),12345)返回值为:
12345
39.现有客户表customers(主键:
客户编号cid),包含10行数据,订单表orders(外键:
客户编号cid),包含6条数据。
执行sql语句:
select*fromcustomersrightouterjoinordersoncustomers.cid=orders.cid。
最多返回()条记录。
A.10
B.6
C.4
D.0
40.假设一系统原来使用Access数据库,现要使用sqlserver数据库,采用()方法可以完成两个数据库之间的数据转换工作。
A.Sqlserver的附加数据库功能
B.Sqlserver的还原数据库功能
C.在Sqlserver中可直接打开Access数据库,另存即可。
D.Sqlserver的导入\导出功能
41.假设Student表中有4行数据,Score表中3行数据,如果执行以下T-SQL:
SELECTStudentINNERJOINScoreONStudent.ID=Score.ID返回4行数据,而执行以下的T-SQL:
SELECTStudentINNERJOINScoreONStudent.ID<>Score.ID将返回
()行数据。
A.0B.4C.8D.12
42.现有书目表book,包含字段:
price(float);现在查询一条书价最高的书目的详细信息,以下语句正确的是()。
[选两项]
A.selecttop1*frombookorderbypriceasc
B.selecttop1*frombookorderbypricedesc
C.selecttop1*frombookwhereprice=(selectmax(price)frombook)
D.selecttop1*frombookwhereprice=max(price)
43.现有书目表book,包含字段:
价格price(float),类别type(char);现在查询各个类别的平均价格、类别名称,以下语句正确的是()。
A.selectavg(price),typefrombookgroupbytype
B.selectcount(price),typefrombookgroupbyprice
C.selectavg(price),typefrombookgroupbyprice
D.selectcount(price),typefrombookgroupbytype
44.有如下数据
1张三22
2李四20河南郑州
3王五19四川绵阳
4赵六22湖北襄阳
5赵七22NULL
查询地址不为NULL的学员信息()
A.select*fromtb_studentwherestuAddressnotnull
B.select*fromtb_studentwherestuAddress=null
C.select*fromtb_studentwherestuAddressisnotnull
D.select*fromtb_studentwherestuAddress=''
45.现有顾客表customers,包含数据如下表,若执行sql语句:
selectavg(discount)fromcustomers,以下输出结果是()。
cid
cname
discount
1
jack
null
2
lee
8
3
tom
7
4
chen
1
A.错误提示:
不能对null进行avg操作B.16
C.8D.5
46.现有表Employee,字段:
id(int),firstname(varchar),lastname(varchar);以下sql语句错误的是()。
A.selectfirstname+'.'+lastnameas'name'fromemployee
B.selectfirstname+'.'+lastname='name'fromemployee
C.select'name'=firstname+'.'+lastnamefromemployee
D.selectfirstname,lastnamefromemployee
47.现有顾客表customers,包含数据如下表,若执行sql语句:
selectcount(city)fromcustomers,以下()是输出结果。
cid
cname
city
1
jack
null
2
lee
beijing
3
tom
4
chen
beijing
A.1B.2C.3D.4
48.现有学生表student(主键:
学生编号sid),成绩表score(外键:
学生编号sid),
两表中的数据如下。
执行sql语句:
select*fromstudentleftouterjoinscoresc
onst.sid=sc.sid。
正确的返回结果是()条记录。
student
Sid
sname
1
Lee
2
Chen
3
Jack
4
rose
score
sid
score
1
80
2
75
A.0B.2C.4D.6
49.在SQLServer2005数据库中,多表间进行联接查询时需要使用()关键字进行表之间的关联。
A.INNERJOINB.LINK
C.JOININNERD.JOINON
50.假设订单表orders用来存储订单信息,cid代表客户编号,money代表单次订购额,现要查询每个客户的订购次数和每个客户的订购总金额,下面()sql语句可以返回正确结果。
A.selectcid,count(distinct(cid)),sum(money)fromordersgroupbycid
B.selectcid,count(distinct(cid)),sum(money)fromordersorderbycid
C.selectcid,count(cid),sum(money)fromordersorderbycid
D.selectcid,count(cid),sum(money)fromordersgroupbycid
友情提示:
部分文档来自网络整理,供您参考!
文档可复制、编辑,期待您的好评与关注!