SQL练习题.docx

上传人:b****5 文档编号:7365112 上传时间:2023-01-23 格式:DOCX 页数:25 大小:122.64KB
下载 相关 举报
SQL练习题.docx_第1页
第1页 / 共25页
SQL练习题.docx_第2页
第2页 / 共25页
SQL练习题.docx_第3页
第3页 / 共25页
SQL练习题.docx_第4页
第4页 / 共25页
SQL练习题.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

SQL练习题.docx

《SQL练习题.docx》由会员分享,可在线阅读,更多相关《SQL练习题.docx(25页珍藏版)》请在冰豆网上搜索。

SQL练习题.docx

SQL练习题

(1)在VisualFoxPro中,下列关于删除记录的描述中正确的是(A)。

A)SQL的DELETE命令在删除数据库表中的记录之前,不需要用USE命令打开表

B)SQL的DELETE命令和传统VisualFoxPro的DELETE命令在删除数据库表中的记录之前,都需要用USE命令打开表

C)SQL的DELETE命令可以物理地删除数据库表中的记录,而传统VisualFoxPro的DELETE命令只能逻辑删除数据库表中的记录

D)传统VisualFoxPro的DELETE命令在删除数据库表中的记录之前不需要用USE命令打开表

(2)在VisualFoxPro中,下列关于查询和视图的描述中正确的是(A)。

A)查询是一个预先定义好的SQLSELECT语句文件

B)视图是一个预先定义好的SQLSELECT语句文件

C)查询和视图是同一种文件,只是名称不同

D)查询和视图都是一个存储数据的表

(3)在VisualFoxPro中,下列关于视图描述中错误的是(D)。

A)通过视图可以对表进行查询

B)通过视图可以对表进行更新

C)视图是一个虚表

D)视图就是一种查询

(4)使用SQL语句将学生表S中年龄(AGE)大于30岁的记录删除,正确的命令是(B)。

A)DELETEFORAGE>30

B)DELETEFROMSWHEREAGE>30

C)DELETESFORAGE>30

D)DELETESWHEREAGE>30

(5)在VisualFoxPro中,删除数据库表S的SQL命令是(A)。

A)DROPTABLESB)DELETETABLES

C)DELETETABLES.DBFD)ERASETABLES

(6)使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确命令是(C)。

A)APPENDINTOS(SNO,SN,SEX,AGE)VALUES(′0401′,′王芳′,′女′,18)

B)APPENDSVALUES(′0401′,′王芳′,18,′女′)

C)INSERTINTOS(SNO,SN,SEX,AGE)VALUES(′0401′,′王芳′,′女′,18)

D)INSERTSVALUES(′0401′,′王芳′,18,′女′)

(7)在SQL的SELECT查询结果中,消除重复记录的方法是(C)。

A)通过指定主关键字B)通过指定惟一索引

C)使用DISTINCT子句D)使用HAVING子句

(8)在VisualFoxPro中,以下关于SQL的SELECT语句的描述中错误的是(D)。

A)SELECT子句中可以包含表中的列和表达式B)SELECT子句中可以使用别名

C)SELECT子句规定了结果集中的列顺序

D)SELECT子句中列的顺序应该与表中列的顺序一致

(9)下列关于SQL的HAVING子句的描述中错误的是(B)。

A)HAVING子句必须与GROUPBY子句同时使用

B)HAVING子句与GROUPBY子句无关

C)使用WHERE子句的同时可以使用HAVING子句

D)使用HAVING子句的作用是限定分组的条件

(10)~(11)题使用如下三个数据库表:

学生表:

S(学号,姓名,性别,出生日期,院系)

课程表:

C(课程号,课程名,学时)

选课成绩表:

SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

(10)用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是(A)。

A)SELECT学号,姓名FROMSWHERENOTEXISTS;

(SELECT*FROMSCWHERESC.学号=S.学号AND成绩<85)

B)SELECT学号,姓名FROMSWHERENOTEXISTS;

(SELECT*FROMSCWHERESC.学号=S.学号AND成绩>=85)

C)SELECT学号,姓名FROMS,SC

WHERES.学号=SC.学号AND成绩>=85

D)SELECT学号,姓名FROMS,SC

WHERES.学号=SC.学号ANDALL成绩>=85

(11)用SQL语句检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是(D)。

A)SELECTS.学号,姓名,平均成绩FROMS,SC;

WHERES.学号=SC.学号;

GROUPBYS.学号HAVINGCOUNT(*)>=5ORDERBY平均成绩DESC

B)SELECT学号,姓名,AVG(成绩)FROMS,SC;

WHERES.学号=SC.学号ANDCOUNT(*)>=5;

GROUPBY学号ORDERBY3DESC

C)SELECTS.学号,姓名(成绩)平均成绩FROMS,SC;

WHERES.学号=SC.学号ANDCOUNT(*)>=5;

GROUPBYS.学号ORDERBY平均成绩DESC

D)SELECTS.学号,姓名,AVG(成绩)平均成绩FROMS,SC;

WHERES.学号=SC.学号;

GROUPBYS.学号HAVINGCOUNT(*)>=5ORDERBY3DESC

(12)下列关于视图的描述中正确的是(B)。

A)视图保存在项目文件中B)视图保存在数据库文件中

C)视图保存在表文件中D)视图保存在视图文件中

(13)在VisualFoxPro中,要运行查询文件query1.qpr,可以使用命令(B)。

A)DOquery1B)DOquery1.qprC)DOQUERYquery1D)RUNquery1

(14)~(20)题使用如下三个数据库表:

职员.dbf:

职员号C(3),姓名C(6),性别C

(2),组号N

(1),职务C(10)

客户.dbf:

客户号C(4),客户名C(36),地址C(36),所在城市C(36)

订单.dbf:

订单号C(4),客户名C(4),职员号C(3),签订日期D,金额N(6.2)

(14)查询金额最大的10%订单的信息,正确的SQL语句是(D)。

A)SELECT*TOP10PERCENTFROM订单

B)SELECTTOP10%*FROM订单ORDERBY金额

C)SELECT*TOP10PERCENTFROM订单ORDERBY金额

D)SELECTTOP10PERCENT*FROM订单ORDERBY金额DESC

(15)查询订单数在3个以上、订单的平均金额在200元以上的职员号,正确的SQL语句是(B)。

A)SELECT职员号FROM订单GROUPBY职员号HAVINGCOUNT(*)>3ANDAVG_金额>200

B)SELECT职员号FROM订单GROUPBY职员号HAVINGCOUNT(*)>3ANDAVG(金额)>200

C)SELECT职员号FROM订单GROUPBY职员号HAVINGCOUNT(*)>3ANDWHEREAVG(金额)>200

D)SELECT职员号FROM订单GROUPBY职员号WHERECOUNT(*)>3ANDAVG_金额>200

(16)查询2005年1月1日后签订的订单,显示订单的订单号、客户名以及签订日期,正确的SQL语句是(A)。

A)SELECT订单号,客户名,签订日期FROM订单JOIN客户;

ON订单.客户号=客户.客户号WHERE签订日期>{^2005-1-1}

B)SELECT订单号,客户名,签订日期FROM订单JOIN客户;

WHERE订单.客户号=客户.客户号AND签订日期>{^2005-1-1}

C)SELECT订单号,客户名,签订日期FROM订单,客户;

WHERE订单.客户号=客户.客户号AND签订日期<{^2005-1-1}

D)SELECT订单号,客户名,签订日期FROM订单,客户;

ON订单.客户号=客户.客户号AND签订日期<{^2005-1-1}

(17)查询没有签订任何订单的职员信息(职员号和姓名),正确的SQL语句是(C)。

A)SELECT职员.职员号,姓名FROM职员JOIN订单;

ON订单.职员号=职员.职员号GROUPBY职员.职员号HAVINGCOUNT(*)=0

B)SELECT职员.职员号,姓名FROM职员LEFTJOIN订单;

ON订单.职员号=职员.职员号GROUPBY职员.职员号HAVINGCOUNT(*)=0

C)SELECT职员号,姓名FROM职员;

WHERE职员号NOTIN(SELECT职员号FROM订单)

D)SELECT职员.职员号,姓名FROM职员;

WHERE职员.职员号<>(SELECT订单.职员号FROM订单)

(18)有如下SQL语句:

SELECT订单号,签订日期,金额FROM订单,职员;

WHERE订单.职员号=职员.职员号AND姓名="李二"

与如上语句功能相同的SQL语句是(B)。

A)SELECT订单号,签订日期,金额FROM订单;

WHEREEXISTS(SELECT*FROM职员WHERE姓名="李二")

B)SELECT订单号,签订日期,金额FROM订单WHERE;

EXISTS(SELECT*FROM职员WHERE职员号=订单.职员号AND姓名="李二")

C)SELECT订单号,签订日期,金额FROM订单;

WHEREIN(SELECT职员号FROM职员WHERE姓名="李二")

D)SELECT订单号,签订日期,金额FROM订单WHEREIN;

(SELECT职员号FROM职员WHERE职员号=订单.职员号AND姓名="李二")

(19)从订单表中删除客户号为“1001”的订单记录,正确的SQL语句是(C)。

A)DROPFROM订单WHERE客户号="1001"

B)DROPFROM订单FOR客户号="1001"

C)DELETEFROM订单WHERE客户号="1001"

D)DELETEFROM订单FOR客户号="1001"

(20)将订单号为“0060”的订单金额改为169元,正确的SQL语句是(A)。

A)UPDATE订单SET金额=169WHERE订单号="0060"

B)UPDATE订单SET金额WITH169WHERE订单号="0060"

C)UPDATEFROM订单SET金额=169WHERE订单号="0060"

D)UPDATEFROM订单SET金额WITH169WHERE订单号="0060"

(21)在VisualFoxPro中,下列描述正确的是(A)。

A)利用视图可以修改数据B)利用查询可以修改数据

C)查询和视图具有相同的作用D)视图可以定义输出去向

(22)SQL的数据操作语句不包括(D)。

A)INSERTB)UPDATEC)DELETED)CHANGE

(23)“图书”表中有字符型字段“图书号”,要求用SQLDELETE命令将图书号以字母A开头的图书记录全部打上删除标记,正确的命令是(D)。

A)DELETEFROM图书FOR图书号LIKE"A%"

B)DELETEFROM图书WHILE图书号LIKE"A%"

C)DELETEFROM图书WHERE图书号="A*"

D)DELETEFROM图书WHERE图书号LIKE"A%"

(24)SQL语句中修改表结构的命令是(A)。

A)ALTERTABLEB)MODIFYTABLE

C)ALTERSTRUCTURD)MODIFYSTRUCTURE

(25)假设“订单”表中有订单号、职员号、客户号和金额字段,正确的SQL语句只能是(B)。

A)SELECT职员号FROM订单;

GROUPBY职员号HAVINGCOUNT(*)>3ANDAVG_金额>200

B)SELECT职员号FROM订单;

GROUPBY职员号HAVINGCOUNT(*)>3ANDAVG(金额)>200

C)SELECT职员号FROM订单;

GROUPBY职员号HAVINGCOUNT(*)>3WHEREAVG(金额)>200

D)SELECT职员号FROM订单;

GROUPBY职员号WHERECOUNT(*)>3ANDAVG_金额>200

(26)要使“产品”表中所有产品的单价上浮8%,正确的SQL语句是(D)。

A)UPDATE产品SET单价=单价+单价*8%FORALL

B)UPDATE产品SET单价=单价*1.08FORALL

C)UPDATE产品SET单价=单价+单价*8%

D)UPDATE产品SET单价=单价*1.08

(27)假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的SQL语句是(D)。

A)SELECT产品名称,AVG(单价)FROM产品GROUPBY单价

B)SELECT产品名称,AVG(单价)FROM产品ORDERBY单价

C)SELECT产品名称,AVG(单价)FROM产品ORDERBY产品名称

D)SELECT产品名称,AVG(单价)FROM产品GROUPBY产品名称

(28)设有S(学号,姓名,性别)和SC(学号,课程号,成绩)两个表,用下列SQL语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别,正确的是(D)。

A)SELECT学号,姓名,性别FROMsWHEREEXISTS;

(SELECT*FROMscWHEREsc.学号=s.学号AND成绩<=85)

B)SELECT学号,姓名,性别FROMsWHERENOTEXISTS;

(SELECT*FROMscWHEREsc.学号=s.学号AND成绩<=85)

C)SELECT学号,姓名,性别FROMsWHEREEXISTS;

(SELECT*FROMscWHEREsc.学号=s.学号AND成绩>85)

D)SELECT学号,姓名,性别FROMsWHERENOTEXISTS;

(SELECT*FROMscWHEREsc.学号=s.学号AND成绩<85)

(29)从“订单”表中删除签订日期为2004年1月10日之前(含)的订单记录,正确的SQL语句是(C)。

A)DROPFROM订单WHERE签订日期<={^2004-1-10}

B)DROPFROM订单FOR签订日期<={^2004-1-10}

C)DELETEFROM订单WHERE签订日期<={^2004-1-10}

D)DELETEFROM订单FOR签订日期<={^2004-1-10}

30)在SQLSELECT语句的ORDERBY短语中如果指定了多个字段,则

A)无法进行排序B)只按第一个字段排序

C)按从左至右优先依次排序D)按字段排序优先级依次排序答案:

C

31)

A)ALTERTABLE歌手ADD最后得分F(6,2)

B)ALTERDBF歌手ADD最后得分F6,2

C)CHANGETABLE歌手ADD最后得分F(6,2)

D)CHANGETABLE学院INSERT最后得分F6,2答案:

A

32)

A)INSERTVALUES("1001",9.9,"105")INTO评分(歌手号,分数,评委号)

B)INSERTTO评分(歌手号,分数,评委号)VALUES("1001",9.9,"105")

C)INSERTINTO评分(歌手号,分数,评委号)VALUES("1001",9.9,"105")

D)INSERTVALUES("1001",9.9,"105")TO评分(歌手号,分数,评委号)答案:

C

33)

A)SELECT歌手号,(COUNT(分数)-MAX(分数)-MIN(分数))/(SUM(*)-2)最后得分;

FROM评分INTODBFTEMPGROUPBY歌手号ORDERBY最后得分DESC

B)SELECT歌手号,(COUNT(分数)-MAX(分数)-MIN(分数))/(SUM(*)-2)最后得分;

FROM评分INTODBFTEMPGROUPBY评委号ORDERBY最后得分DESC

C)SELECT歌手号,(SUM(分数)-MAX(分数)-MIN(分数))/(COUNT(*)-2)最后得分;

FROM评分INTODBFTEMPGROUPBY评委号ORDERBY最后得分DESC

D)SELECT歌手号,(SUM(分数)-MAX(分数)-MIN(分数))/(COUNT(*)-2)最后得分;

FROM评分INTODBFTEMPGROUPBY歌手号ORDERBY最后得分DESC答案:

D

34)

A)SELECT*FROM歌手WHERE最后得分BETWEEN9.00AND8.00

B)SELECT*FROM歌手WHERE最后得分>=8.00AND最后得分<=9.00

C)SELECT*FROM歌手WHERE最后得分>9.00OR最后得分<8.00

D)SELECT*FROM歌手WHERE最后得分<=8.00AND最后得分>=9.00答案:

B

35)

A)CHANGETABLE评分ALTER分数SETCHECK分数>=0AND分数<=10

B)ALTERTABLE评分ALTER分数SETCHECK分数>=0AND分数<=10

C)ALTERTABLE评分ALTER分数CHECK分数>=0AND分数<=10

D)CHANGETABLE评分ALTER分数SETCHECK分数>=0OR分数<=10答案:

B

36)

A)CREATEVIEWmyviewASSELECT*FROM歌手WHERELEFT(歌手号,1)="1"

B)CREATEVIEWmyviewASSELECT*FROM歌手WHERELIKE("1",歌手号)

C)CREATEVIEWmyviewSELECT*FROM歌手WHERELEFT(歌手号,1)="1"

D)CREATEVIEWmyviewSELECT*FROM歌手WHERELIKE("1",歌手号)答案:

A

37)

A)DELETEmyviewVIEWB)DELETEmyview

C)DROPmyviewVIEWD)DROPVIEWmyview答案:

D

38)

A)SELECT*FROMtempWHEREtemp.歌手号=歌手.歌手号TOARRAYa

B)SELECT*FROMtempWHEREtemp.歌手号=歌手.歌手号INTOARRAYa

C)SELECT*FROMtempWHEREtemp.歌手号=歌手.歌手号TOFILEa

D)SELECT*FROMtempWHEREtemp.歌手号=歌手.歌手号INTOFILEa答案:

B

39)

A)SELECTDISTINCT歌手号FROM歌手WHERE最后得分>=;

(SELECTMAX(最后得分)FROM歌手WHERESUBSTR(歌手号,1,1)="2")

B)SELECTDISTINCT歌手号FROM歌手WHERE最后得分>=;

(SELECTMIN(最后得分)FROM歌手WHERESUBSTR(歌手号,1,1)="2")

C)SELECTDISTINCT歌手号FROM歌手WHERE最后得分>=ANY;

(SELECT最后得分FROM歌手WHERESUBSTR(歌手号,1,1)="2")

D)SELECTDISTINCT歌手号FROM歌手WHERE最后得分>=SOME;

(SELECT最后得分FROM歌手WHERESUBSTR(歌手号,1,1)="2")答案:

A

40)以下关于“视图”的描述正确的是

A)视图保存在项目文件中B)视图保存在数据库中

C)视图保存在表文件中D)视图保存在视图文件中答案:

B

41)以下不属于SQL数据操作命令的是A

A)MODIFYB)INSERTC)UPDATED)DELETE

42)SQL的SELECT语句中,“HAVING<条件表达式>”用来筛选满足条件的D

A)列B)行C)关系D)分组

43)设有关系SC(SNO,CNO,GRADE),其中SNO、CNO分别表示学号和课程号(两者均为字符型),GRADE表示成绩(数值型)。

若要把学号为“S101”的同学,选修课程号为“C11”,成绩为98分的记录插入到表SC中,正确的语句是D

A)INSERTINTOSC(SNO,CNO,GRADE)VALUES('S101','C11','98')

B)INSERTINTOSC(SNO,CNO,GRADE)VALUES(S101,C11,98)

C)INSERT('S101','C11','98')INTOSC

D)INSERTINTOSCVALUES('S101','C11',98)

44)以下有关SELECT短语的叙述中错误的是B

A)SELECT短语中可以使用别名

B)SELECT短语中只能包含表中的列及其构成的表达式

C)SELECT短语规定了结果集中的列顺序

D)如果FROM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定

45)在SQL语句中,与表达式“年龄BETWEEN12AND46”功能相同的表达式是D

A)年龄>=12OR<=46B)年龄>=12AND<=46

C)年龄>=12OR年龄<=46D)年龄>=12AND年龄<=46

46)在SELECT语句中,以下有关HAVING短语的正确叙述是A

A)HAVING短语必须与GROUPBY短语同时使用

B)使用HAVING短语的同时不能使

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1