国家二级VF机试(关系数据库标准语言SQL)模拟试卷22
选择题
1.使用如下关系:
客户(客户号,名称,联系人,邮政编码,电话号码)
产品(产品号,名称,规格说明,单价)
订购单(订单号,客户号,订购日期)
订购单明细(订单号,序号,产品号,数量)
查询尚未最后确定订购单的有关信息的正确命令是(A)
A. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 WHERE 客户.客户号=订购单.客户号 AND 订购日期 IS NULL
B. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 WHERE 客户.客户号=订购单.客户号 AND 订购日期=NULL
C. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR 客户.客户号=订购单.客户号 AND 订购日期 IS NULL
D. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 FOR 客户.客户号=订购单.客户号 AND 订购日期=NULL
解析:在SQL SELECT查询语句中,用WHERE说明查询条件。在表中尚未确定的值用。NULL值表示,而SQL中查询空值时要用IS NULL,不能用“=”。
2.与“SELECT*FROM 教师表INTO BDF A”等价的语句是(C)
A. SELECT*FROM 教师表 To DBF A
B. SELECT*FROM 教师表 To TABLE A
C. SELECT*FROM 教师表 INTO TABLE A
D. SELECT*FROM 教师表 INTO A
解析:在select语句中使用INTO DBF|TABLE TableName可以将查询的结果存放到永久表中(.dbf文件)。与题目含义相同应该是选项C)。
3.使用如下三个数据库表:
学生表:student(学号,姓名,性别,出生日期,院系)
课程表:course(课程号,课程名,学时)
选课成绩表:score(学号,课程号,成绩)
其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。
查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是(C)
A. SELECT s.学号,姓名,课程名,成绩 FROM student s,score sc,course c WHERE s.学号=sc.学号,sc.课程号=c.课程号,院系=’计算机系’
B. SELECT s.学号,姓名,课程名,成绩 FROM student s,score sc,course c WHERE s.学号=sc.学号 AND sc.课程号=c.课程号 AND 院系=’计算机系’
C. SELECT s.学号,姓名,课程名,成绩 FROM (student s JOIN score sc NO s.学号=SC.学号 JOIN course c ON sc.课程号=c.课程号 WHERE 院系=’计算机系’
D. SELECT 学号,姓名,课程名,成绩 FROM (student s JOIN score sc NO s.学号=sc.学号 JOIN course c ON sc.课程号=c.课程号 WHERE 院系=’计算机系’
解析:本题考察的知识点是SQL,连接查询。本题三个表格均使用到了,所以需要两个连接条件,选项A)使用WHERE引出连接条件,但是多个条件间没有使用AND连接,选项B)和选项D)没有指明“学号”字段选自哪些表格。所以选项C)为正确答案。
4.使用如下三个数据库表:
图书(索书号,书名,出版社,定价,ISBN)
借书证(借书证号,姓名,性别,专业,所在单位)
借书记录(借阅号,索书号,借书证号,借书日期,还书目期)
其中:定价是货币型,借书日期和还书日期是日期型,其他是字符型。
查询所有借阅过“中国出版社”图书的读者的姓名和所在单位(A)
A. SELECT 姓名,所在单位 FORM 借书证,图书,借书记录 WHERE 图书.索引号=借书记录.索书号 AND 借书证.借书证号=借书记录.借书证号 AND 出版社:\\
B. SELECT 姓名,所在单位 FORM 借书证,图书 WHERE 图书.索引号=借书证.借书证号 AND 出版社=\\
C. SELECT 姓名,所在单位 FORM 借书记录,图书 WHERE 图书.索引号=借书记录.索书号 AND 出版社=\\
D. SELECT 姓名,所在单位FORM借书证,借书记录 WHERE 借书证.借书证号=借书记录.借书证号 AND 出版社=\\
解析:从数据表中可以看出,所要查询的字段包括“姓名”和“所在单位”两个字段,这两个字段都属性“借书证”表,查询条件是所有人借阅过“中国出版社”图书的读者姓名和所在单位,又涉及到了“出版社”字段,此字段属性“图书”表,那么能不能就从“借书证”表和“图书”表这两个表中查询呢,不可以的,因为这两个表没有一个公共字段用以建立两表之间的联系,所以要借用第三张表“借书记录”中的字段建立联系,也就是要通过这三个表建立查询,故选项A)正确。
5.查询单价在600元以上的主机板和硬盘的正确命令是(B)
A. SELECT*FROM 产品 WHERE 单价>600 AND(名称=’主机板’AND 名称=’硬盘’)
B. SELECT*FROM 产品 WHERE 单价>600 AND(名称=’主机板’OR 名称=’硬盘’)
C. SELECT*FROM 产品 FOR 单价>600 AND(名称=’主机板’AND 名称=’硬盘’)
D. SELECT*FROM 产品 FOR 单价>600 AND(名称=’主机板’OR 名称=’硬盘’)
解析:SQL SELECT查询语句的基本语法是:select…from…where…,用where子句说明查询条件,而在条件中and比or运算符的优先级高,所以(名称=\\
6.查询所有1982年3月20日以后(含)出生、性别为男的学生,正确的SQL语句是
A
解析:题干中要求查询日期和性别同时满足给定条件的记录,要使两个条件同时成立,用AND进行连接,表达式是:出生日期>={^1982-03-20}AND性别=\\
7.下列关于SELECT短语的描述中错误的是(B)
A. SELECT短语中可以使用别名
B. SELECT短语中只能包含表中的列及其构成的表达式
C. SELECT短语规定了结果集中的列顺序
D. 如果FROM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定
解析:SELECT查询命令的使用非常灵活,用它可以构造各种各样的查询。SQL查询语句可以从表中指定不同字段输出,指定字段的输出次序,即列的次序可以重新排列,不需要与原数据表一致。SOL的查询子句可以包含表中的表达式以及表的别名。如果FROM短语中引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定。
8.在SQL的SELECT查询的结果中,消除重复记录的方法是(C)
A. 通过指定主索引实现
B. 通过指定惟一索引实现
C. 使用DISTINCT短语实现
D. 使用WHERE短语实现
解析:本题考查SQL查询的几个特殊选项。在SOL-SELECT语句中,DISTINCT关键词用于消除查询结果中的重复记录。
9.假设“订单”表中有订单号、职员号、客户号和金额字段,正确的SQL语句只能是(B)
A. S
本文档预览:3600字符,共10847字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载