关系数据库标准语言SQL真题及解析洞庭软件园培训专用资料.docx
- 文档编号:6461095
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:56
- 大小:65.91KB
关系数据库标准语言SQL真题及解析洞庭软件园培训专用资料.docx
《关系数据库标准语言SQL真题及解析洞庭软件园培训专用资料.docx》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQL真题及解析洞庭软件园培训专用资料.docx(56页珍藏版)》请在冰豆网上搜索。
关系数据库标准语言SQL真题及解析洞庭软件园培训专用资料
第四章关系数据库标准语言SQL
4.12005年笔试真题
(1)在VisualFoxPro中,下列关于删除记录的描述中正确的是()[2005年4月选择题17]
A)SQL的DELETE命令在删除数据库表中的记录之前,不需要用USE命令打开表
B)SQL的DELETE命令和传统VisualFoxPro的DELETE命令在删除数据库表中的记录之前,都需要用USE命令打开表
C)SQL的DELETE命令可以物理地删除数据库表中的记录,而传统VisualFoxPro的DELETE命令只能逻辑删除数据库表中的记录
D)传统VisualFoxPro的DELETE命令在删除数据库表中的记录之前不需要用USE命令打开表
(2)使用SQL语句将学生表S中年龄(AGE)大于30岁的记录删除,正确的命令是()2005年4月选择题24]
A)DELETEFORAGE>30B)DELETEFROMSWHEREAGE>30
C)DELETESFORAGE>30D)DELETESWHEREAGE>30
(3)在VisualFoxPro中,删除数据库表S的SQL命令是()[2005年4月选择题26]
A)DROPTABLESB)DELETETABLES
C)DELETETABLES.DBFD)DRASETABLES
(4)使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确命令是()[2005年4月选择题28]
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,'女')
(5)在SQL的SELECT查询结果中,消除重复记录的方法是()[2005年4月选择题30]
A)通过指定主关键字B)通过指定惟一索引
C)使用DISTINCT子句D)使用HAVING子句
(6)在VisualFoxPro中,以下关于SQL的SELECT语句的描述中错误的是()[2005年4月选择题31]
A)SELECT子句中可以包含表中的列和表达式
B)SELECT子句中可以使用别名
C)SELECT子句规定了结果集中的列顺序
D)SELECT子句中列的顺序应该与表中列的顺序一致
(7)下列关于SQL的HAVING子句的描述中错误的是()[2005年4月选择题32]
A)HAVING子句必须与GROUPBY子句同时使用
B)HAVING子句与GROUPBY子句无关
C)使用WHERE子句的同时可以使用HAVING子句
D)使用HAVING子句的作用是限定分组的条件
(8)使用如下三个数据库表:
学生表:
S(学号,姓名,性别,出生日期,院系)
课程表:
C(课程号,课程名,学时)
选课成绩表:
SC(学号,课程号,成绩)
在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。
[2005年4月选择题34]用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是()
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
[2005年4月选择题35]用SQL语句检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是()
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
(9)使用如下三个数据库表:
金牌榜.dbf:
国家代码C(3),金牌数I,银牌数I,铜牌数I
获奖牌情况.dbf:
国家代码C(3),运动员名称C(20),项目名称C(30),名次I
国家.dbf:
国家代码C(3),国家名称C(20)
"金牌榜"表中一个国家一条记录;"获奖牌情况"表中每个项目中的各个名次都有一条记录,名次只取前3名,例如:
国家代码
运动员名称
项目名称
名次
001
刘翔
男子110米栏
1
001
李小鹏
男子双杠
3
002
菲尔普斯
游泳男子200米自由泳
3
002
菲尔普斯
游泳男子400米个人混合泳
1
001
郭晶晶
女子三米板跳板
1
001
李婷/孙甜甜
网球女子双打
1
[2005年4月填空题11]为表"金牌榜"增加一个字段"奖牌总数",同时为该字段设置有效性规则:
奖牌总数>=0,应使用SQL语句:
ALTERTABLE金牌榜奖牌总数I奖牌总数>=0。
[2005年4月填空题12]使用"获奖牌情况"和"国家"两个表查询"中国"所获金牌(名次为1)的数量,应使用SQL语句:
SELECTCOUNT(*)FROM国家INNERJOIN获奖牌情况;
国家.国家代码=获奖牌情况.国家代码;
WHERE国家.国家名称="中国"AND名次=1
[2005年4月填空题13]将金牌榜.dbf中的新增加的字段奖牌总数设置为金牌数、银牌数、铜牌数三项的和,应使用SQL语句:
金牌榜奖牌总数=金牌数+银牌数+铜牌数
(10)使用如下三个数据库表:
职员.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)
[2005年9月选择题29]查询金额最大的10%订单的信息,正确的SQL语句是()
A)SELECT*TOP10PERCENTFROM订单
B)SELECTTOP10%*FROM订单ORDERBY金额
C)SELECT*TOP10PERCENTFROM订单ORDERBY金额
D)SELECTTOP10PERCENT*FROM订单ORDERBY金额DESC
[2005年9月选择题30]查询订单数在3个以上、订单的平均金额在200元以上的职员号,正确的SQL语句是()
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
[2005年9月选择题31]查询2005年1月1日后签订的订单,显示订单的订单号、客户名以及签订日期,正确的SQL语句是()
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}
[2005年9月选择题32]查询没有签订任何订单的职员信息(职员号和姓名),正确的SQL语句是()
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订单)
[2005年9月选择题33]有如下SQL语句:
SELECT订单号,签订日期,金额FROM订单,职员;
WHERE订单.职员号=职员.职员号AND姓名="李二"
与如上语句功能相同的SQL语句是()
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姓名="李二")
[2005年9月选择题34]从订单表中删除客户号为"1001"的订单记录,正确的SQL语句是()
A)DROPFROM订单WHERE客户号="1001"
B)DROPFROM订单FOR客户号="1001"
C)DELETEFROM订单WHERE客户号="1001"
D)DELETEFROM订单FOR客户号="1001"
[2005年9月选择题35]将订单号为"0060"的订单金额改为169元,正确的SQL语句是()
A)UPDATE订单SET金额=169WHERE订单号="0060"
B)UPDATE订单SET金额WITH169WHERE订单号="0060"
C)UPDATEFROM订单SET金额=169WHERE订单号="0060"
D)UPDATEFROM订单SET金额WITH169WHERE订单号="0060"
(11)在SQL的SELECT查询中使用子句消除查询结果中的重复记录。
[2005年9月填空题9]
(12)在VisualFoxPro中,使用SQL的SELECT语句将查询结果存储在一个临时表中,应该使用子句。
[2005年9月填空题11]
(13)在VisualFoxPro中,使用SQL的CREATETABLE语句建立数据库表时,使用子句说明主索引。
[2005年9月填空题12]
(14)在VisualFoxPro中,使用SQL的CREATETABLE语句建立数据库表时,使用子句说明有效性规则(域完整性规则或字段取值范围)。
[2005年9月填空题13]
(15)在SQL的SELECT语句进行分组计算查询时,可以使用子句来去掉不满足条件的分组。
[2005年9月填空题14]
(16)设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。
[2005年9月填空题15]
SELECT学号,姓名,性别FROMs;
WHERE(SELECT*FROMscWHEREsc.学号=s.学号AND成绩<85)
4.22006年笔试真题
(1)SQL的数据操作语句不包括()[2006年4月选择题22]
A)INSERTB)UPDATE
C)DELETED)CHANGE
(2)"图书"表中有字符型字段"图书号",要求用SQLDELETE命令将图书号以字母A开头的图书记录全部打上删除标记,正确的命令是()[2006年4月选择题25]
A)DELETEFROM图书FOR图书号LIKE"A%"
B)DELETEFROM图书WHILE图书号LIKE"A%"
C)DELETEFROM图书WHERE图书号="A*"
D)DELETEFROM图书WHERE图书号LIKE"A%"
(3)SQL语句中修改表结构的命令是()[2006年4月选择题29]
A)ALTERTABLEB)MODIFYTABLE
C)ALTERSTRUCTURED)MODIFYSTRUCTURE
(4)假设"订单"表中有订单号、职员号、客户号和金额字段,正确的SQL语句只能是()[2006年4月选择题30]
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
(5)要使"产品"表中所有产品的单价上浮8%,正确的SQL语句是()[2006年4月选择题31]
A)UPDATE产品SET单价=单价+单价*8%FORALL
B)UPDATE产品SET单价=单价*1.08FORALL
C)UPDATE产品SET单价=单价+单价*8%
D)UPDATE产品SET单价=单价*1.08
(6)假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的SQL语句是()[2006年4月选择题32]
A)SELECT产品名称,AVG(单价)FROM产品GROUPBY单价
B)SELECT产品名称,AVG(单价)FROM产品ORDERBY单价
C)SELECT产品名称,AVG(单价)FROM产品ORDERBY产品名称
D)SELECT产品名称,AVG(单价)FROM产品GROUPBY产品名称
(7)设有S(学号,姓名,性别)和SC(学号,课程号,成绩)两个表,用下列SQL语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别,正确的是()[2006年4月选择题34]
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)
(8)从"订单"表中删除签订日期为2004年1月10日之前(含)的订单记录,正确的SQL语句是()[2006年4月选择题35]
A)DROPFROM订单WHERE签订日期<={^2004-1-10}
B)DROPFROM订单FOR签订日期<={^2004-1-10}
C)DELETEFROM订单WHERE签订日期<={^2004-1-10}
D)DELETEFROM订单FOR签订日期<={^2004-1-10}
(9)SQL支持集合的并运算,运算符是。
[2006年4月选填空题11]
(10)SQLSELECT语句的功能是。
[2006年4月选填空题12]
(11)"职工"表有工资字段,计算工资合计的SQL语句是:
SELECTFROM职工[2006年4月选填空题13]
(12)要在"成绩"表中插入一条记录,应该使用的SQL语句是:
[2006年4月选填空题14]
成绩(学号,英语,数学,语文)VALUES("2001100111",91,78,86)
(13)在SQLSELECT语句的ORDERBY短语中如果指定了多个字段,则[2006年9月选择题19]
A)无法进行排序B)只按第一个字段排序
C)按从左至右优先依次排序D)按字段排序优先级依次排序
(14)25~33题使用的数据表如下:
当前盘当前目录下有数据库:
大奖赛.dbc,其中有数据表“歌手.dbf”、“评分.dbf”。
“歌手”表:
歌手号
姓名
1001
王蓉
2001
许巍
3001
周杰伦
4001
林俊杰
…
[2006年9月选择题25]为“歌手”表增加一个字段“最后得分”的SQL语句是()
A)ALTERTABLE歌手ADD最后得分F(6,2)
B)ALTERDBF歌手ADD最后得分F6,2
C)CHANGETABLE歌手ADD最后得分F(6,2)
D)CHANGETABLE学院INSERT最后得分F6,2
[2006年9月选择题26]插入一条记录到“评分”表中,歌手号、分数和评委会分别是“1001”、9.9和“105”,正确的SQL语句是()
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评分(歌手号,分数,评委号)
[2006年9月选择题27]假设每个歌手的“最后得分”的计算方法是:
去掉一个最高分和一个最低分,取剩下分数的平均分。
根据“评分”表求每个歌手的“最后得分”并存储于表TEMP中,表TEMP中有两个字段:
“歌手号”和“最后得分”,并且按最后得分降序排列,生成表TEMP的SQL语句是:
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
[2006年9月选择题28]与“SELECT*FROM歌手WHERENOT(最后得分>9.00)OR最后得分<8.00)”等价的语句是()
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
[2006年9月选择题29]为“评分”表的“分数”字段添加有效性规则:
“分数必须大于等于0并且小于等于10”,正确的SQL语句是()
A)CHANGETABLE评分ALTER分数SETCHECK分数>=0AND分数<=10
B)ALTERTABLE评分ALTER分数SETCHECK分数>=0AND分数<=10
C)ALTERTABLE评分ALTER分数CHECK分数>=0AND分数<=10
D)CHANGETABLE评分ALTER分数SETCHECK分数>=0OR分数<=10
[2006年9月选择题30]根据“歌手”表建立视图myview,视图中含有包括了“歌手号”左边第一位是“1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 标准 语言 SQL 解析 软件园 培训 专用 资料