关系数据库标准语言SQL三.docx
《关系数据库标准语言SQL三.docx》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQL三.docx(17页珍藏版)》请在冰豆网上搜索。
关系数据库标准语言SQL三
关系数据库标准语言SQL(三)
(总分:
88.00,做题时间:
90分钟)
一、
(总题数:
35,分数:
88.00)
1.查询单价在600元以上的主机板和硬盘的正确命令是______。
A)SELECT*FROM产品WHERE单价>600AND(名称='主机板'AND名称='硬盘')
B)SELECT*FROM产品WHERE单价>600AND(名称='主机板'OR名称='硬盘')
C)SELECT*FROM产品FOR单价>600AND(名称='主机板'AND名称='硬盘')
D)SELECT*FROM产品FOR单价>600AND(名称='主机板'OR名称='硬盘')
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]VisualFoxPro的SQLSELECT命令的语法格式中WHERE说明查询条件,即选择元组的条件。
逻辑运算AND表示“和”。
故本题选项B正确。
2.“教师表”中有“职工号”、“姓名”和“工龄”字段,其中“职工号”为主关键字,建立“教师表”的SQL命令是______。
A)CREATETABLE教师表(职工号C(10)PRIMARY,姓名C(20),工龄I)
B)CREATETABLE教师表(职工号C(10)FOREING,姓名C(20),工龄I)
C)CREATETABLE教师表(职工号C(10)FOREINGKEY,姓名C(20),工龄I)
D)CREATETABLE教师表(职工号C(10)PRIMARYKEY,姓名C(20),工龄I)
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]关键字的设置应该使用PRIMARYKEY。
PRIMARYKEY列约束表明表中的一个列/字段只能包含唯一的(不重复)、非空的数值。
在该列/字段的PRIMARYKEY约束定义中不需要显式地包括NOTNULL约束。
一个表只能声明一个PRIMARYKEY。
3.在SQL的SELECT查询中,HAVING子句不可以单独使用,总是跟在1子句之后一起使用。
(分数:
2.00)
填空项1:
__________________ (正确答案:
GROUPBY)
解析:
[解析]HAVING子句必须跟随GROUPBY使用,它用来限定分组必须满足的条件。
使用如下数据表:
学生.DBF:
学号(C,8)、姓名(C,6)、性别(C,2)、出生日期(D)
选课.DBF:
学号(C,8)、课程号(C,3)、成绩(N,5,1)
(分数:
12.00)
(1).查询所有1982年3月20日以后(含)出生、性别为男的学生,正确的SQL语句是______。
A.SELECT*FROM学生WHERE出生日期>={^1982-03-20}AND性别="男"
B.SELECT*FROM学生WHERE出生日期<={^1982-03-20}AND性别="男"
C.SELECT*FROM学生WHERE出生日期>={^1982-03-20}OR性别="男"
D.SELECT*FROM学生WHERE出生日期<={^1982-03-20}OR性别="男/(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]查询所有1982年3月20日后(含)出生的学生,WHERE条件应是出生日期>={^1982-03-20},并且性别为男,所以中间应用AND短语连接。
(2).计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是______。
A.SELECTAVG(成绩)FROM选课WHERE姓名="刘明"
B.SELECTAVG(成绩)FROM学生,选课WHERE姓名="刘明"
C.SELECTAVG(成绩)FROM学生,选课WHERE学生.姓名="刘明"
D.SELECTATG(成绩)FRON学生,选课WHERE学生.学号=选课.学号AND姓名="刘明/(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]计算刘明同学选修的所有课程的平均成绩,涉及学生表和选课表,并且通过相同的字段“学号”将两表连接起来,所以选D。
(3).假定学号的第3、4位为专业代码。
要计算各专业学生选修课程号为"101"课程的平均成绩,正确的SQL语句是______。
A.SELECT专业ASSUBS(学号,3,2),平均分ASAVG(成绩)FROM选课WHERE课程号="101"GROUPBY专业
B.SELECTSUBS(学号,3,2)AS专业,AVG(成绩)AS平均分FRON选课WHERE课程号="101"GROUPBY1
C.SELECTSUBS(学号,3,2)AS专业,AVG(成绩)AS平均分FRON选课WHERE课程号="101"ORDERBY专业
D.SELECT专业ASSUBS(学号,3,2),平均分ASAVG(成绩)FRON选课WHERE课程号="101"ORDERBY1(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]SUBS(学号,3,2)AS专业表示截取学号的第3和第4位来代表专业代码,计算平均分用AVG()短语,计算各专业学生选修课程号为"101"课程的平均成绩,应以专业为分组依据,分组用GROUPBY短语。
(4).查询选修课程号为"101"课程得分最高的同学,正确的SQL语句是______。
A.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号
AND课程号="101"AND成绩>=ALL(SELECT成绩FROM选课)
B.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号
AND成绩>=ALL(SELECT成绩FRON选课WHERE课程号="101")
C.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号
AND成绩>=ANY(SELECT成绩FRON选课WHERE课程号="101")
D.SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND
课程号="101"AND成绩>=(SELECT成绩FROM选课WHERE课程号="101")(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]这是一个使用量词和谓语的查询,ALL表示所有子查询中的所有行都使结果为真时,结果才为真:
而ANY表示子查询中有一行能使结果为真,则结果就为真,要求查询选修课程号为"101"课程得分最高的同学,所以应该选B。
(5).插入一条记录到“选课”表中,学号、课程号和成绩分别是"02080111"、"103"和80,正确的SQL语句是______。
A.INSERTINTO选课VALUES("02080111","103",80)
B.INSERTVALUES("02080111","103",80)TO选课(学号,课程号,成绩)
C.INSERTVALUES("02080111","1013",80)INTO选课(学号,课程号,成绩)
D.INSERTINTO选课(学号,课程号,成绩)FROMVALUES("02080111","103",80)(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]插入记录的命令是INSERTINTO…VALUES…。
(6).将学号为“02080110”、课程号为“102”的选课记录的成绩改为92,正确的SQL语句是______。
A.UPDATE选课SET成绩WITH92WHERE学号="02080110"AND课程号="102"
B.UPDATE选课SET成绩=92WHERE学号="02080110"AND课程号="102"
C.UPDATEFROM选课SET成绩WITH92WHERE学号="02080110"AND课程号="102"
D.UPDATEFROM选课SET成绩=92WHERE学号="02080110"AND课程号="102/(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]数据更新的命令是UPDATE…SET…WHERE…。
4.“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,计算“计算机”系教师总数的命令是______。
A)SELECTCOUNT(*)FROM教师表INNERJOIN学院表;ON教师表.系号=学院表.系号WHERE系名="计算机"
B)SELECTCOUNT(*)FROM教师表INNERJOIN学院表;ON教师表.系号=学院表.系号ORDERBY教师表.系号;HAVING学院表系名="计算机"
C)SELECTSUM(*)FROM教师表INNERJOIN学院表;ON教师表.系号=学院表.系号GROUPBY教师表.系号;HAVING学院表系名="计算机"
D)SELECTSUM(*)FROM教师表INNERJOIN学院表;ON教师表.系号=学院表.系号ORDERBY教师表.系号;HAVING学院表系名="计算机/
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]HAVING指定包括在查询结果中的组必须满足的筛选条件,HAVING应该同GROUPBY一起使用。
本题不需要分组,也不需要排序,只需要汁算“计算机”系教师总数,因此使用计数函数COUNT()即可。
5.SQL的SELECT语句中,“HAVING<条件表达式>”用来筛选满足条件的______。
A)列B)行C)关系D)分组
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]HAVING子句与GROUPBY子句同时使用,用来限定分组必须满足的条件。
可见选项D是正确的。
6.SQL语言的更新命令的关键词是______。
A)INSERTB)UPDATE
C)CREATED)SELECT
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]本题考查的知识点是SQL语言。
INSERT用于插入一条新记录,UPDATE用于更新,CREATE用于创建表等,SELECT用于查询。
即本题的答案为B。
7.SQL语言的查询语句是______。
A)INSERTB)UPDATE
C)DELETED)SELECT
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]INSERT是数据插入语句,UPDATE是数据更新语句,DELETE是数据删除语句。
8.在SQL语句中,与表达式“年龄BETWEEN12AND46”功能相同的表达式是______。
A)年龄>-12OR<=46
B)年龄>-12AND<=46
C)年龄>=12OR年龄<=46
D)年龄>=12AND年龄<=46
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]“BETWEEN…AND…”意思是“…和…之间”,包括两个端点在内。
9.在SQLSELECT语句中与INTOTABLE等价的短语是______。
A)INTODBFB)TOTABLE
C)INTOFORMD)INTOFILE
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]将查询结果存放到永久表中用短语INTODBF或INTOTABLE,将查询结果存放到数组中用短语INTOARRAY,将查询结果存放在临时文件中用短语INTOCURSOR,将查询结果存放到文本文件中用短语TOFILE。
10.在SQL语言中,用于对查询结果计数的函数是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
COUNT())
解析:
[解析]本题考查的知识点是统计函数。
在SQL语言中,常使用COUNT()函数查询结果计数,SUM()函数求和,AVG()函数求平均值。
11.在SQL的ALTERTABLE语句中,为了增加一个新的字段应该使用短语______。
A)CREATB)APPEND
C)COLUMND)ADD
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]在SQL的ALTERTABLE语句中,ADD可以添加新的字段,ALTER可以修改已有的字段。
12.在查询设计器环境中,“查询”菜单下的“查询去向”命令指定了查询结果的输出去向,输出去向不包括______。
A)临时表B)表
C)文本文件D)屏幕
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]查询去向共有7个,分别是浏览、临时表、表、图形、屏幕、报表和标签。
13.以下有关SELECT语句的叙述中错误的是______。
A)SELECT语句中可以使用别名
B)SELECT语句中只能包含表中的列及其构成的表达式
C)SELECT语句规定了结果集中的顺序
D)如果FORM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]SELECT语句中除了包含表中的列及其构成的表达式外,还可以包含常量等其他元素;SELECT语句中可以使用别名;SELECT语句规定了结果集中的顺序;如果FORM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定。
14.为“成绩”表中“总分”字段增加有效性规则:
“总分必须大于等于0并且小于等于750”,正确的SQL语句是:
______TABLE成绩ALTER总分______总分>=0AND总分<=750
(分数:
2.00)
填空项1:
__________________ (正确答案:
ALTERSETCHECK)
解析:
[解析]用于定义、修改和删除有效性规则和默认值定义的ALTER命令格式为
ALTERTABLETableNamelALTER[COLUMN]FieldName2[NULL|NOTNULL]
[SETDEFAULTeExpression2][SETCHECK1Expression2[ERRORcMessageText2]][DROPDEFAULT][DROPCHECK]
“SETDEFAULTeExpression2”用于设置或修改默认值,“SETCHECK1Expression2”用于为字段增加或修改有效性规则,“DROPDEFAULT”用于删除默认值,“DROPCHECK”用于删除有效性规则。
15.设有学生表S(学号,姓名,性别,年龄),查询所有年龄小于等于18岁的女同学,并按年龄进行降序生成新的表WS,正确的SQL命令是______。
A)SELECT*FROMSWHERE性别="女"AND年龄<=18ORDERBY4DESCINTOTABLEWS
B)SELECT*FROMSWHERE性别="女"AND年龄<=18ORDERBY年龄INTOTABLEWS
C)SELECT*FROMSWHERE性别="女"AND年龄<=18ORDERBY"年龄"DESCINTOTKBLEWS
D)SELECT*FROMSWHERE性别="女"OR年龄<=18ORDERBY"年龄"SCINTOTABLEWS
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]按年龄降序排列先用DESC短语,对字段的排序有两种表示方式,分别是按列号和字段名排序,字段名是变量名所以不应加引号,故C选项错误。
16.在SQL的SELECT查询中,使用1关键词消除查询结果中的重复记录。
(分数:
2.00)
填空项1:
__________________ (正确答案:
DISTINCT)
解析:
[解析]本题考查的知识点是SQL查询。
在SQL的查询中,通常使用DISTINCT关键词消除查询结果中的重复记录。
17.在SQL中,要查询表s在AGE字段上取空值的记录,正确的SQL语句为
SELECT*FROMsWHERE______
(分数:
2.00)
填空项1:
__________________ (正确答案:
AGEISNULL)
解析:
[解析]=“NULL”表示和NULL值进行比较,使用关键字“ISNULL”判断字段是否为空。
18.在VisualFoxPro中,假设教师表T(教师号,姓名,性别,职称,研究生导师)中的性别是C型字段,研究生导师是L型字段。
若要查询“是研究生导师的女老师”信息,那么SQL语句“SELECT*FROMTWHERE<逻辑表达式>”中的<逻辑表达式>应是______。
A)研究生导师AND性别="女"
B)研究生导师OR性别="女"
C)性别="女"AND研究生导师=.F.
D)研究生导师=.T.OR性别=女
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]题目中要查询的信息是“是研究生导师的女老师”,可以知道要查询的是女老师,并且该老师是研究生导师,这之间的关系就是“与”的关系,因此答案选A。
19.若SQL语句中的ORDERBY短语中指定了多个字段,则______。
A)依次按自右至左的字段顺序排序
B)只按第一个字段排序
C)依次按自左至右的字段顺序排序
D)无法排序
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]SQLSELECT命令可以将查询结果排序,实现该排序的短语是ORDERBY。
具体格式如下:
ORDERBYOrder_Item[ASC|DESC][,Order_Item[ASC|DESC]…]
根据列的数据对查询结果进行排序,每个Order_Item都必须对应查询结果中的一列。
可以按升序(ASC)或降序(DESC)排序,可以按一列或多列排序。
如果指定了多个字段,则按自左至右的字段顺序排序。
20.在使用查询设计器创建查询时,为了指定在查询结果中是否包含重复记录(对应于DISTINCT),应使用的选项卡是______。
A)排序依据B)连接
C)筛选D)杂项
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]DISTINCT短语是去掉查询结果中的重复值,对应于“杂项”选项卡。
21.SQL的数据操作语句不包括______。
A)INSERTB)UPDATE
C)DELETED)CHANGE
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]SQL的数据操作包括数据插入(INSERT)、数据删除(DELETE)和数据更新(UPDATE)。
下列各题使用如下数据表:
学生.DBF:
学号(C,8),姓名(C,6),性别(C,2)
选课.DBF:
学号(C,8),课程号(C,3),成绩(N,3)
(分数:
10.00)
(1).从“选课”表中检索成绩大于等于60并且小于90的记录信息,正确的SQL命令是______。
A.SELECT*FROM选课WHERE成绩BETWEEN60AND89
B.SELECT*FROM选课WHERE成绩BETWEEN60TO89
C.SELECT*FROM选课WHERE成绩BETWEEN60AND90
D.SELECT*FROM选课WHERE成绩BETWEEN60TO90(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]本题考查的知识点是SQL查询。
“BETWEEN…AND”是SQL语句特殊的运输符表示在“…和…之间”两边的数值也包括。
即本题的答案为A。
(2).检索还未确定成绩的学生选课信息,正确的SQL命令是______。
A.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
WHERE学生.学号=选课.学号AND选课.成绩ISNULL
B.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
WHERE学生.学号=选课.学号AND选课.成绩=NULL
C.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
ON学生.学号=选课.学号WHERE选课.成绩ISNULL
D.SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课
ON学生.学号=选课.学号WHERE选课.成绩=NULL(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]本题考查的知识点是SQL查询。
首先,本题的关键点在两个问题上“WHERE”和“ON”的选择,“ISNULL”和“=NULL”的选择。
首先,由超链接形式为“SELECT…FROM表名1JOIN表名2ON连接条件WHERE选择元组条件”可知,A、B选项错误。
其次空值不是一个确定的值,所以不能用“=”进行比较,C选项也错误。
即本题的答案为A。
(3).假设所有的选课成绩都已确定。
显示“101”号课程成绩中最高的10%记录信息,正确的SQL命令是______。
A.SELECT*TOP10FROM选课ORDERBY成绩WHERE课程号="101"
B.SELECT*PERCENT10FROM选课ORDERBY成绩DESCWHERE课程号="101"
C.SELECT*TOP140PERCENTFROM选课ORDERBY成绩WHERE课程号="101"
D.SELECT*TOP10PERCENTFROM选课ORDERBY成绩DESCWHERE课程号="101/(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]本题考查的知识点是SQL基本语法格式。
其语法格式为”SELECT数据TOP表达式PERCENTFROM表WHERE查询条件ORDERBY排序列ASC|DESC”,如果ORDERBY后省略,则为升序排列。
即本题的答案为D。
(4).假设