数据库第四章同步练习.docx
《数据库第四章同步练习.docx》由会员分享,可在线阅读,更多相关《数据库第四章同步练习.docx(27页珍藏版)》请在冰豆网上搜索。
![数据库第四章同步练习.docx](https://file1.bdocx.com/fileroot1/2023-4/17/7adbbc60-0f6b-47b9-95f2-06583ebfc6b6/7adbbc60-0f6b-47b9-95f2-06583ebfc6b61.gif)
数据库第四章同步练习
第四章
(1)
一、选择题
1、下列关于查询的说法中,不正确的是
A)查询是预先定义好的一个SQLSELECT语句
B)查询是VisualFoxPro支持的一种数据库对象
C)通过查询设计器,可完成任何查询
D)查询是从指定的表或视图中提取满足条件的记录,可将结果定向输出
2、下列关于视图的说法中,不正确的是
A)在VisualFoxPro中,视图是一个定制的虚拟表
B)视图可以是本地的、远程的,但不可以带参数
C)视图可以引用一个或多个表
D)视图可以引用其他视图
3、查询设计器中包含的选项卡有
A)字段、联接、筛选、排序依据、分组依据、杂项
B)字段、联接、筛选、分组依据、排序依据、更新条件
C)字段、联接、筛选条件、排序依据、分组依据、杂项
D)字段、联接、筛选依据、分组依据、排序依据、更新条件
4、为视图重命名的命令是
A)MODIFYVIEW
B)CREATEVIEW
C)DELETEVIEW
D)RENAMEVIEW
5、使用视图之前,首先应该
A)新建一个数据库
B)新建一个数据库表
C)打开相关的数据库
D)打开相关的数据表
6、SQL的查询结果可以存放到多种类型的文件中,下列都可以用来存放查询结果的文件类型的是(见P131)
A)临时表、视图、文本文件
B)数组、永久性表、视图
C)永久性表、数组、文本文件
D)视图、永久性表、文本文件
7、下列关于视图的说法中,错误的是
A)视图可以从单个表或多个表中派生
B)可以在磁盘中找到相应的视图文件
C)视图可以作为查询的数据源
D)利用视图可以暂时使数据从数据库中分离成为自由数据
8、下列关于运行查询的方法中,不正确的一项是
A)在项目管理器“数据”选项卡中展开“查询”选项,选择要运行的查询,单击“运行”命令按钮
B)单击“查询”菜单中的“运行查询”命令
C)利用快捷键CTRL+D运行查询
D)在命令窗口输入命令DO<查询文件名.qpr>
9、以下关于视图的描述中,正确的是
A)视图结构可以使用MODIFYSTRUCTURE命令来修改
B)视图不能同数据库表进行联接操作
C)视图不能进行更新操作
D)视图是从一个或多个数据库表中导出的虚拟表
参考答案:
1.C2.B3.A4.D5.C6.C7.B8.C9.D
第四章
(2)
一、选择题
1、下面有关HAVING子句描述错误的是
A)HAVING子句必须与GROUPBY子句同时使用,不能单独使用
B)使用HAVING子句的同时不能使用WHERE子句
C)使用HAVING子句的同时可以使用WHERE子句
D)使用HAVING子句的作用是限定分组的条件
2、(15)~(27)使用的数据如下:
当前盘当前目录下有数据库db_stock,其中有数据库表stock.dbf,该数据库表的内容是:
股票代码
股票名称
单价
交易所
青岛啤酒
7.48
上海
方正科技
15.20
上海
广电电子
10.40
上海
兴业房产
12.76
上海
二纺机
9.96
上海
轻工机械
14.59
上海
深发展
7.48
深圳
深万科
12.50
深圳
(15)执行如下SQL语句后
SELECT*FROMstockINTODBFstockORDERBY单价
A)系统会提示出错信息
B)会生成一个按“单价”升序排序的表文件,将原来的stock.dbf文件覆盖
C)会生成一个按“单价”降序排序的表文件,将原来的stock.dbf文件覆盖
D)不会生成排序文件,只在屏幕上显示一个按“单价”升序排序的结果
(16)执行下列程序段以后,内存变量a的内容是
CLOSEDATABASE
a=0
USEstock
GOTOP
DOWHILE.NOT.FOF()
IF单价>10
a=a+1
ENDIF
SKIP
ENDDO
A)1B)3C)5D)7
(17)有如下SQLSELECT语句
SELECT*FROMstockWHERE单价BETWEEN12.76AND15.20
与该语句等价的是
A)SELECT*FROMstockWHERE单价<=15.20.AND.单价>=12.76
B)SELECT*FROMstockWHERE单价<15.20.AND.单价>12.76
C)SELECT*FROMstockWHERE单价>=15.20.AND.单价<=12.76
D)SELECT*FROMstockWHERE单价>15.20.AND.单价<12.76
(18)如果在建立数据库表stock.dbf时,将单价字段的字段有效性规则设为“单价>0”,通过该设置,能保证数据的
A)实体完整性B)域完整性C)参照完整性D)表完整性
(19)在当前盘当前目录下删除表stock的命令是
A)DROPstockB)DELETETABLEstock
C)DROPTABLEstockD)DELETEstock
(20)有如下SQL语句
SELECTmax(单价)INTOARRAYaFROMstock
执行该语句后
A)a[1]的内容为15.20B)a[1]的内容为6
B)a[0]的内容为15.20C)a[0]的内容为6
(21)有如下SQL语句
SELECT股票代码,avg(单价)as均价FROMstock;
GROUPBY交易所INTODBFtemp
执行该语句后temp表中第二条记录的“均价”字段的内容是
A)7.48B)9.99C)11.73D)15.20
(22)将stock表的股票名称字段的宽度由8改为10,应使用SQL语句
A)ALTERTABLEstock股票名称WITHc(10)
B)ALTERTABLEstock股票名称c(10)
C)ALTERTABLEstockALTER股票名称c(10)
D)ALTERstockALTER股票名称c(10)
(23)有如下SQL语句
CREATEVIEWstock_viewASSELECT*FROMstockWHERE交易所=“深圳”
执行该语句后产生的视图包含的记录个数是
A)1B)2C)3D)4
(24)有如下SQL语句
CREATEVIEWview_stockASSELECT股票名称AS名称,单价FROMstock
执行该语句后产生的视图含有的字段名是
A)股票名称、单价B)名称、单价
C)名称、单价、交易所D)股票名称、单价、交易所
(25)下面有关对视图的描述正确的是
A)可以使用MODIFYSTRUCTURE命令修改视图的结构
B)视图不能删除,否则影响原来的数据文件
C)视图是对表的复制产生的
D)使用SQL对视图进行查询时必须事先打开该视图所在的数据库
(26)执行如下SQL语句后
SELECTDISTINCT单价FROMstock;
WHERE单价=(SELECTmin(单价)FROMstock)INTODBFstock_x
表stock_x中的记录个数是
A)1B)2C)3D)4
(27)求每个交易所的平均单价的SQL语句是
A)SELECT交易所,avg(单价)FROMstockGROUPBY单价
B)SELECT交易所,avg(单价)FROMstockORDERBY单价
C)SELECT交易所,avg(单价)FROMstockORDERBY交易所
D)SELECT交易所,avg(单价)FROMstockGROUPBY交易所
3、下列关于查询的说法中,不正确的是
A)查询是预先定义好的一个SQLSELECT语句
B)查询是VisualFoxPro支持的一种数据库对象
C)通过查询设计器,可完成任何查询
D)查询是从指定的表或视图中提取满足条件的记录,可将结果定向输出
4、VisualFoxPro在SQL方面,不提供的功能是
A)数据查询
B)数据定义
C)数据操纵
D)数据控制
5、检索职工表中工资大于800元的职工号,正确的命令是
A)SELECT职工号WHERE工资>800
B)SELECT职工号FROM职工SET工资>800
C)SELECT职工号FROM职工WHERE工资>800
D)SELECT职工号FROM职工FOR工资>800
6、找出在仓库面积大于500的仓库中工作的职工号,以及这些职工工作所在的城市,正确的命令是
A)SELECT职工号,城市FROM职工;
WHERE(面积>500)OR(职工.仓库号=仓库.仓库号)
B)SELECT职工号,城市FROM职工;
WHERE(面积>500)AND(职工.仓库号=仓库.仓库号)
C)SELECT职工号,城市FROM仓库,职工;
WHERE(面积>500)OR(职工.仓库号=仓库.仓库号)
D)SELECT职工号,城市FROM仓库,职工;
WHERE(面积>500)AND(职工.仓库号=仓库.仓库号)
7、利用SQL语句,检索仓库中至少有一名职工的仓库信息,正确的命令是
A)SELECT*FROM仓库表WHEREIN;
(SELECT仓库号FROM职工表)
B)SELECT*FROM仓库表WHERENOTIN;
(SELECT仓库号FROM职工表)
C)SELECT*FROM仓库表WHERE仓库号EXISTS;
(SELECT*FROM职工表WHERE仓库号=仓库表.仓库号)
D)SELECT*FROM仓库表WHEREEXISTS;
(SELECT*FROM职工表WHERE仓库号=仓库表.仓库号)
8、第(32)~(35)题使用如下的设备表。
设备型号设备名称使用日期设备数量单价使用部门进口
W27-1微机01/10/031.00生产一间T
W27-2微机02/06/03298000.00生产一间F
C31-1车床03/30/032.00生产二间T
C31-2车床04/05/03297500.00生产二间T
M20-1磨床02/10/03398000.00生产二间F
J18-1轿车05/07/032.00办公室T
F15-1复印机02/01/0328600.00办公室F
(32)从设备表中查询单价大于元的设备,并显示设备名称,正确的命令是
A)SELECT单价>FROM设备表FOR设备名称
B)SELECT设备名称FROM设备表FOR单价>
C)SELECT单价>FROM设备表WHERE设备名称
D)SELECT设备名称FROM设备表WHERE单价>
(33)为设备表增加一个“设备总金额N(10,2)”字段,正确的命令是
A)ALTERTABLE设备表ADDFIELDS设备总金额N(10,2)
B)ALTERTABLE设备表ADD设备总金额N(10,2)
C)ALTERTABLE设备表ALTERFIELDS设备总金额N(10,2)
D)ALTERTABLE设备表ALTER设备总金额N(10,2)
(34)利用SQL数据更新功能,自动计算更新每个“设备总金额”字段的字段值,该字段值等于“单价*设备数量”的值,正确命令为
A)UPDATE设备表SET设备总金额=单价*设备数量
B)UPDATE设备表FOR设备总金额=单价*设备数量
C)UPDATE设备表WITH设备总金额=单价*设备数量
D)UPDATE设备表WHERE设备总金额=单价*设备数量
(35)有如下SQL语句:
SELECT使用部门,SUM(单价*设备数量)AS总金额FROM设备表;
WHERE.NOT.(进口);
GROUPBY使用部门
执行该语句后,第一条记录的“总金额”字段值是
A).00
B).00
C).00
D)17200.00
9、语句“DELETEFROM成绩表WHERE计算机<60”的功能是
A)物理删除成绩表中计算机成绩在60分以下的学生记录
B)物理删除成绩表中计算机成绩在60分以上的学生记录
C)逻辑删除成绩表中计算机成绩在60分以下的学生记录
D)将计算机成绩低于60分的字段值删除,但保留记录中其它字段值
10、下列选项中,不属于SQL数据定义功能的是
A)SELECT
B)CREATE
C)ALTER
D)DROP
11、嵌套查询命令中的IN,相当于
A)等号=
B)集合运算符∈
C)加号+
D)减号-
12、关于SQL的超联接查询,说法错误的是
A)在SQL中可以进行内部联接、左联接、右联接和全联接
B)SQL的超联接运算符“*=”代表左联接,“=*”代表右联接
C)VisualFoxPro同样支持超联接运算符“*=”和“=*”
D)利用全联接,即使两个表中的记录不满足联接条件,也会在目标表或查询结果中出现,只是不满足条件的记录对应部分为NULL
13、第(32)~(35)题使用如下的仓库表和职工表。
仓库表仓库号所在城市
A1北京
A2上海
A3天津
A4广州
职工表职工号仓库号工资
M1A12000.00
M3A32500.00
M4A41800.00
M5A21500.00
M6A41200.00
(32)检索在广州仓库工作的职工记录,要求显示职工号和工资字段,正确的命令是
A)SELECT职工号,工资FROM职工表;
WHERE仓库表.所在城市="广州"
B)SELECT职工号,工资FROM职工表;
WHERE仓库表.仓库号=职工表.仓库号;
AND仓库表.所在城市="广州"
C)SELECT职工号,工资FROM仓库表,职工表;
WHERE仓库表.仓库号=职工表.仓库号;
AND仓库表.所在城市="广州"
D)SELECT职工号,工资FROM仓库表,职工表;
WHERE仓库表.仓库号=职工表.仓库号;
OR仓库表.所在城市="广州"
(33)有如下SQL语句:
SELECTSUM(工资)FROM职工表WHERE仓库号IN;
(SELECT仓库号FROM仓库表WHERE所在城市="北京"OR所在城市="上海")
执行语句后,工资总和是
A)1500.00
B)3500.00
C)5000.00
D)10500.00
(34)求至少有两个职工的每个仓库的平均工资
A)SELECT仓库号,COUNT(*),AVG(工资)FROM职工表;
HAVINGCOUNT(*)>=2
B)SELECT仓库号,COUNT(*),AVG(工资)FROM职工表;
GROUPBY仓库号HAVINGCOUNT(*)>=2
C)SELECT仓库号,COUNT(*),AVG(工资)FROM职工表;
GROUPBY仓库号SETCOUNT(*)>=2
D)SELECT仓库号,COUNT(*),AVG(工资)FROM职工表;
GROUPBY仓库号WHERECOUNT(*)>=2
(35)有如下SQL语句:
SELECTDISTINCT仓库号FROM职工表WHERE工资>=ALL;
(SELECT工资FROM职工表WHERE仓库号="A1")
执行语句后,显示查询到的仓库号有
A)A1
B)A3
C)A1,A2
D)A1,A3
14、下列关于别名和自联接的说法中,正确的是
A)SQL语句中允许在WHERE短语中为关系定义别名
B)为关系定义别名的格式为:
<别名><关系名>
C)在关系的自联接操作中,别名是必不可少的
D)以上说法均正确
15、下列关于SQL对表的定义的说法中,错误的是
A)利用CREATETABLE语句可以定义一个新的数据表结构
B)利用SQL的表定义语句可以定义表中的主索引
C)利用SQL的表定义语句可以定义表的域完整性、字段有效性规则等
D)对于自由表的定义,SQL同样可以实现其完整性、有效性规则等信息的设置
16、在SQL的数据定义功能中,下列命令格式可以用来修改表中字段名的是
A)CREATETABLE数据表名NAME...
B)ALTERTABLE数据表名ALTER字段名...
C)ALTERTABLE数据表名RENAMECOLUMN字段名1TO..字段名2.
D)ALTERTABLE数据表名ALTER字段名SETDEFAULT...
17、利用SQL命令从职工表中派生出含有“职工号”、“姓名”字段的视图,下列语句正确的是
A)CREATEVIEWZG_view;
SELECT职工号,姓名FROM职工表
B)CREATEVIEWZG_viewAS;
SELECT职工号,姓名FROM职工表
C)CREATEQUERYZG_view;
SELECT职工号,姓名FROM职工表
D)CREATEQUERYZG_viewAS;
SELECT职工号,姓名FROM职工表
18、第(32)~(35)题使用如下的班级表和学生表。
班级表班级号班级名称班级人数
计算机一班55
计算机二班48
计算机三班50
学生表班级号学号姓名性别籍贯
1001王伟男北京
1002刘红女上海
1003李林女北京
2001张清女上海
2002刘雷男上海
(32)有如下SQL语句:
SELECT班级名称,姓名,性别FROM班级表,学生表;
WHERE班级表.班级号=学生表.班级号;
AND籍贯="上海"AND性别="女";
ORDERBY班级名称DESC
执行该语句后,查询结果中共有几条记录,且第一条记录的学生姓名是
A)1李林
B)2张清
C)2刘红
D)3张清
(33)有如下SQL语句:
SELECTMAX(班级人数)INTOARRAYarrFROM班级表
执行该语句后
A)arr[1]的内容为48
B)arr[1]的内容为55
C)arr[0]的内容为48
D)arr[0]的内容为55
(34)有如下SQL语句:
SELECT班级名称,姓名,性别FROM班级表,学生表;
WHERE班级表.班级号=学生表.班级号;
AND姓名LIKE"刘*";
ORDERBY班级号
该语句的含义是
A)查找学生表中姓“刘”的学生记录,并根据班级号分组显示学生的班级名称、姓名和性别
B)查找学生表中姓“刘”的学生记录,按班级号升序显示学生的班级名称、姓名和性别
C)查找学生表中不是姓“刘”的学生记录,按班级号升序显示学生的班级名称、姓名和性别
D)语句错误
(35)有如下SQL语句:
SELECT班级名称FROM班级表WHERENOTEXISTS;
(SELECT*FROM学生表WHERE班级号=班级表.班级号)
执行该语句后,班级名称的字段值是
A)03计算机一班
B)03计算机二班
C)03计算机三班
D)03计算机一班和03计算机二班
19、下列SQL语句中,用于修改表结构的是
A)ALTER
B)CREATE
C)UPDATE
D)INSERT
20、SELECT-SQL语句中,条件短语的关键字是
A)FOR
B)FROM
C)WHERE
D)WITH
21、找出平均分大于95分的学生学号和他们所在的班级
A)SELECT学号,班级FROM成绩;
WHERE平均分>95
B)SELECT学号,班级FROM班级;
WHERE(平均分>95)AND(成绩.学号=班级.学号)
C)SELECT学号,班级FROM成绩,班级;
WHERE(平均分>95)OR(成绩.学号=班级.学号)
D)SELECT学号,班级FROM成绩,班级;
WHERE(平均分>95)AND(成绩.学号=班级.学号)
22、给出在车间“W1”或“W2”工作,并且工资大于3000的职工姓名,正确的命令是
A)SELECT姓名FROM车间
WHERE工资>3000AND车间="W1"OR车间="W2"
B)SELECT姓名FROM车间
WHERE工资>3000AND(车间="W1"OR车间="W2")
C)SELECT姓名FROM车间;
WHERE工资>3000OR车间="W1"OR车间="W2"
D)SELECT姓名FROM车间;
WHERE工资>3000AND(车间="W1"OR车间="W2")
23、在当前目录下有数据表文件student.dbf,执行如下SQL语句后
SELECT*FORMstudentINTODBFstudentORDERBY学号/D
A)生成一个按“学号”升序的表文件,将原来的student.dbf文件覆盖
B)生成一个按“学号”降序的表文件,将原来的student.dbf文件覆盖
C)不会生成新的排序文件,保持原数据表内容不变
D)系统提示出错信息
24、有如下SQL语句:
SELECT*FROM仓库WHERE仓库号="H1";
UNION;
SELECT*FROM仓库WHERE仓库号="H2"
该语句的功能是
A)查询在H1或者H2仓库中的职工信息
B)查询仓库号H1或者H2的仓库信息
C)查询即在仓库号H1,又在仓库号H2工作的职工信息
D)语句错误,不能执行
25、使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当
A)使用WHERE子句
B)在GROUP BY后面使用HAVING 子句
C)先使用WHERE子句,再使用HAVING 子句
D)先使用HAVING 子句,再使用WHERE子句
26、在Visual FoxPro中,使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是
A) REPLACE AGE WITH AGE+1
B) UPDATE STUDENT AGE WITH AGE+1
C) UPDATE