第五章 查询、视图与sql

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章查询、视图与sql
5.1 创建查询
1、下列关于查询说法不正确的是(d)。

a)查询是预先定义好的一个sql select b)查询是visual foxpro支持的一种数据库对象
c)查询是从指定的表或视图中提取满足条件的记录,可将结果定向输出
d)查询设计器具有局限性,仅限于从单个表或视图中提取记录
2、查询的数据源可以来自(d)。

a)自由表 b)视图 c)数据库表 d)以上均可
3、关于查询的叙述,正确的是(d)。

a)不能根据自由表建立查询 b)只能根据自由表建立查询
c)只能根据数据库表建立查询 d)可以根据数据库表和自由表建立查询
4、利用命令方式打开查询设计器,应在命令窗口中输入(d)。

a)open view b)open query c)create view d)create query
5、在visual foxpro中,如果建立的查询是基于多个表,那么要求这些表之间(b)。

a)必须是独立的 b)必须有联系 c)不一定有联系 d)必须是自由表
6、查询设计器中包含的选项卡依次为(a)。

a)字段、连接、筛选、排序依据、分组依据、杂项
b)字段、连接、筛选、分组依据、排序依据、杂项
c)字段、连接、筛选、排序依据、分组依据、更新条件、杂项
d)字段、连接、筛选、分组依据、排序依据、杂项、更新条件
7、建立查询前,首先会弹出一个“添加表或视图”的对话框,它相当于sql select语句中的
(b)。

a)select b)from c)where d)into
8、在查询设计器中,“字段”选项卡相当于sql select语句中的(a)。

a)select 子句部分 b)from 子句部分 c)where 子句部分 d)into 子句部分
9、sql select语句中的group by子句对应于查询设计器中的(d)。

a)“筛选”选项卡 b)“连接”选项卡 c)“排序依据”选项卡 d)“分组依据”选项卡
10、查询设计器中“排序依据”选项卡对应的sql短语是(b)。

a)into b)order by c)where d)group by
11、在【查询设计器】中【筛选】选项卡对应的sql短语是(c)。

a)select b)for c)where
d)join
12、若要进行多表查询,可用于设置连接条件的选项卡是(b)。

a)“筛选”选项卡 b)“连接”选项卡 c)“排序依据”选项卡 d)“分组依据”选项卡
13、在查询设计器的“杂项”选项卡中可以(d)。

14、运行查询文件cxi.qpr的命令是(c)。

a)create qurry cxi b)do query cxi c)do cxi.qpr d)do cxi
15、在查询设计器环境中,“查询”菜单下的“查询去向”命令指定了查询结果的输出去向,输出去向不包括(c)。

a)临时表 b)表 c)文本文件 d)屏幕
16、查询的默认去向是(b)。

a)数据表 b)浏览c)图形 d)报表
17、在vfp系统中,使用【查询设计器】生成的查询文件中保存的是(a)。

a)查询的命令 b)与查询有关的基表 c)查询的结果 d)查询的条件
5.2 创建视图
1.视图不可以单独存在它必须依赖于(b)。

a)数据库表 b)数据库c)自由表d)查询
2、使用视图之前,首先应该(c)。

a)新建一个数据库 b)新建一个数据库表 c)打开相关的数据库 d)打开相关的数据表
3、下列关于视图的说法中,错误的是(b)。

a)视图可以从单个表或多个表中派生b)可以在磁盘中找到相应的视图文件
c)视图可以作为查询的数据源d)利用视图可以暂时使数据从数据库中分离成为自由数据
4、以下关于视图的描述正确的是(d)。

a)视图与数据表相同,用来存储数据 b)视图不能同数据库表进行连接操作
c)在视图上不能进行更新操作 d)视图是从一个或多个数据库表中导出的虚拟表
5、下列哪条命令执行后不能产生磁盘文件?(b)。

a)create table b)create view c)create query d)create
database
6、视图设计器中包含的选项卡依次为(c)。

a)字段、连接、筛选、排序依据、分组依据、杂项
b)字段、连接、筛选、分组依据、排序依据、杂项
c)字段、连接、筛选、排序依据、分组依据、更新条件、杂项
d)字段、连接、筛选、分组依据、排序依据、杂项、更新条件
7、修改本地视图的命令是( a)。

a)modify view b)create view c)delete view
d)rename view
8、视图设计器的选项卡与查询设计器中的选项卡几乎一样,只是视图设计器中的选项卡比查询设计器中的选项卡多一个(d)。

a)字段 b)排序依据 c)联接 d)更新条件
9、下列关于查询和视图的说法,不正确的一项是(d)。

a)查询设计器中没有“更新条件”选项卡 b)视图设计器中不存在“查询去向”的选项
c)视图结果存放在数据库中 d)查询和视图都可以在磁盘中找到相应的文件
5.3 sql语言
5.3.1 sql语言简介
1、关于sql语言特点叙述错误的是(b)。

a)sql语言是一种一体化的语言 b)sql语言是一种高度过程化的语言
c)sql语言非常简洁d)sql语言可以直接以命令方式交互使用,也可嵌入到程序中使用
2、sql的数据操作语句不包括(d)。

a)insert b)update c)select d)change
3、下列不属于sql数据操作功能的是(a)。

a)新建表 b)添加记录 c)修改记录 d)删除记录
4、sql语言的核心是(a)。

a)数据查询 b)数据定义c)数据操纵d)数据控制
5、select语句的作用是(b)。

a)选择工作区语句 b)数据查询 c)选择sql标准语句d)数据修改
6、sql语言只能进行数据查询(x)
7、在sql语句中实现数据检索功能的语句是(d)。

a)insert b)update c)alter d)select
8、sql语言又称为(c)。

a)结构化定义语言b)结构化控制语言 c)结构化查询语言 d)结构化操纵语言
9、下列选项中,不属于sql数据定义功能的是(a)。

a)select b)create c)alter d)drop 5.3.2 使用sql语句定义表
1、建立表的命令是(a)。

a)create table b)create database c)alter table d)create
2、sql命令:create table 学生表(姓名 c(20),性别 l,年级 c(4),专业班级 c(20))可以在当前数据库中创建一个名为“学生表”的数据表。

(√)
3、用sql语句建立表时,将属性定义为主关键字,应使用短语(b)。

a)free b)primary c)check
d)unique
4、在sql语句中,用于修改表结构的命令是(c)。

a)alter structure b)modify structure c)alter table d)modify table
5、若要在student表中增加一个宽度为2的“性别”字段,应使用的sql命令为(a)。

a)alter table student add 性别 c(2) b)alter table student add 性别with c(2)
c)insert table student add 性别 c(2) d)insert table student add 性别 with c(2)
6、若要将student表中“姓名”字段的宽度由8改为10,应使用的sql命令为(b)。

a)alter table student 姓名 with c(10) b)alter table student alter 姓名 c(10)
c)insert table student 姓名 with c(10) d)insert table student 姓名with c(10)
7、在sql的数据定义功能中,下列命令格式可以用来修改表字段名的是(c)。

a)create table 数据表名 name…… b)alter table 数据表名 alter 字段名……
c)alter table 数据表名 rename 字段名 to…… d)alter table 数据表名 alter 字段名 set default
8、假设有student表,可以正确添加字段“平均分数”的命令是(a)。

a)alter table student add 平均分数f(6,2) b)alter dbf student add 平均分数f6,2
c)change table student add 平均分数f(6,2) d)change table student insert 平均分数f6,2
9、若要删除student表中的“性别”字段,应使用的sql命令为(a)。

a)alter table student drop 性别 b)alter table student delete
性别
c)delete table student drop 性别 d)drop student alter erase 性

10、在sql语句中删除表的命令是(a) 。

a)drop table b)delete table c)erase table
d)delete dbf
5.3.3 使用sql语句查询表数据
1、sql基本查询语句的结构是(d)。

a)select…from …order by b)select…where …group
by
c)select…where …having d)select…from …where
1)基本的select语句
1、在sql的查询语句中,实现投影操作的短语为(a)。

a)select b)from c)where d)jion
on
2、从dab.dbf表中查询所有的姓名,应输入命令(b)
a)select dab from 姓名 b)select 姓名 from dab c)select 姓名 d)select dab where 姓名
2)唯一性查询1、sql的select语句中,使用distinct子句可以消除结果中的重复记录。

1、已知商品数据表goods的结构为(代码c10,品名c30,单价n5,供应商代码c10)。

以下哪
条vfp-sql语句能够实现功能:查询全部不重复的“单价”。

(d)
a)select 单价 top from goods b)select ″单价″ top from goods
c)select distinct ″单价″ from goods d)select distinct 单价 from goods
3)带条件的查询
1.sql查询时用where子句指出的是查询(c)。

a)目标b)结果c)条件d)视图
2、在sql语句中,条件短语的关键字是(a)a)where b)for c)while
d)condition
3、sql-select语句中的where用于实现关系的选择操作。

4、检索职工表中工资大于800元的职工号,正确的命令是(c)。

a)select 职工号 where 工资 > 800 b)select职工号 from 职工 set 工资 > 800
c)select 职工号 from 职工 where 工资> 800 d)select 职工号 from 职工 for 工
资 > 800
5、给出在车间“w1”或“w2”工作,并且工资大于3000的职工姓名,正确的命令是(d)。

a)select 姓名 from 车间 where 工资 >3000 and 车间=″w1″ or 车间=″w2″
b)select 姓名 from 车间 where 工资 >3000 and (车间=″w1″ or 车间=″w2″)
c)select 姓名 from 车间 where 工资 >3000 or 车间=″w1″ or 车间=″w2″
d)select 姓名 from 车间 where 工资 >3000 and (车间=″w1″ or 车间=″w2″)
6、查询定购单号首字符是“p”的订单信息,应该使用命令(b)。

a)select * from 订单where head(定购单号, 1) = ″p″
b)select * from 订单where left(定购单号, 1) = ″p″
c)select * from 订单 where ″p″ $定购单号
d)select * from 订单 where right(定购单号, 1) =″p″
7、已知商品数据表goods的结构为(商品代码c10,品名 c30 ,单价n5,供应商代码c10)。

设商品代码的值是数字字符,以下哪条vfp-sql语句能够实现功能:查询商品代码的值是偶数,并且单价大于3000的全部商品信息(c)。

a)list for sqrt (val (商品代码),2)=0 and 单价>3000
b)select where mod (val (商品代码),2) and 单价>3000
c)select * from goods where mod (val (商品代码),2)=0 and 单价>3000
d)select where mod (val (商品代码),2)=0 and 单价>3000
8、如果要查询工资表中基本工资在1000 ~ 2000元之间的职工记录,则下列语句正确的是
(c)。

a)select * from 工资表 where 基本工资 not between 1000 and 2000
b)select * from 工资表 where 基本工资 between 1000 ~ 2000
c)select * from 工资表 where 基本工资 between 1000 and 2000
d)select 工资表 from * where between 1000 and 2000
9、在jsb.dbf中查询“出生日期”的年份值在1970年到1980年间的教师信息,应输入命令
(c)。

a)select * from jsb where 1970 < year(出生日期) <1980
b)select 信息 from jsb where year(出生日期) between 1980 and 1970
c)select * from jsb where year(出生日期) between 1970 and 1980
d)select 信息 where 1970 < year(出生日期) <1980 from jsb
10、在sql select语句中,实现字符串匹配的运算符是“like”。

(√)
11、sql使用的通配符有(d)。

a)* b)% c)_ d)b和c
12、嵌套查询命令中的in,相当于(b)。

a)等号= b)集合运算符∈ c)加号+ d)减号-
13、与表达式职称=″教授″ or 职称=″副教授″等价的sql表达式为:
职称 in (″教授″,″副教授″)或职称 like ″%教授″。

4)排序查询
1、在sql select中,要将查询结果进行排序,应该使用短语(a)。

a)order by b)group by c)count d)sum
2、如果在sql select语句的order by子句中指定了desc,则表示(b)。

a)按升序排序 b)按降序排序 c)按索引字段排序 d)错误语句
3、“select 工资 from 职工 order by 工资”语句的意义是(a)。

a)按职工的工资值的升序检索出他们工资的信息 b)按职工的工资值的降序检索出他们工资的信息
c)按职工的工资值的升序检索出所有字段的信息d)按职工的工资值的升序检索出所有字段的信息
4、设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询2007年所签订的信息、并按金额降序排序,正确的sql命令是(a)。

a)select * from order where year(签订日期)=2007 order by金额 desc
b)select * from order while year(签订日期)=2007 order by金额 asc
c)select * from order where year(签订日期)=2007 order by金额 asc
d)select * from order while year(签订日期)=2007 order by金额 desc
5、sql查询命令可以为输出的记录进行排序(√)。

6、若要将student表中的成绩在600分以上(含600分)的学生姓名和成绩按成绩由高到低的顺序显示出来,应使用的sql命令为(c)。

a)select 姓名,成绩 from student where 成绩>=600 order by 成绩
b)select 姓名,成绩 from student where 成绩>=600 order by 成绩 asc
c)select 姓名,成绩 from student where 成绩>=600 order by 成绩 desc
d)select 姓名,成绩 from student where 成绩>=600 order by 成绩/d
5)带计算函数的查询
1.在sql计算查询中,用于计数的函数是(b)。

a)sum b)count c)avg d)max
2、sql的查询语句可以为输出的字段标题重新命名。

(√)
3、叙述错误的是(c)。

a)sql语句可为输出的字段重新命名 b)sql语句可为输出的记录进行排序
c)sql语句不能重新指定列的顺序 d)sql语句不能省略from子句
6)分组查询
1、在sql select中,用于对查询结果进行分组的短语是(d)。

a)where b)order by c)from d)group by
2、使用sql语句进行分组查询时,为了去掉不满足条件的分组,应当(b)。

a)使用where字句 b)在group by后面使用having字句
c)先使用where字句,再使用having字句 d)先使用having字句,再使用where字句
3、在sql查询中,having子句的作用是指出(c)。

a)分组查询的范围 b)分组查询的值c)分组查询的条件 d)分组查询的字段
4、hanving短语可以代替where短语。

(x)
5、在成绩表中,检索选修3门以上课程的学生的及格学科的总成绩。

成绩表中包含学号、姓名、课程名和成绩4个字段。

请将下面的sql语句补充完整。

select 学号,sum(成绩) from 成绩表 where 成绩>=60 group by 学号having count(*) >=3
6、设有学生选课表sc(学号,课程号,成绩),用sql语言检索每门课程的课程号及平均成绩的语句是:select 课程号, avg(成绩) from sc group by 课程号
7、关于sql语言,以下叙述不正确的是(a)。

a)sql的核心是数据更新 b)sql命令中where短语可以设置连接条件
c)sql查询命令可以为输出的记录进行排序
d)使用sql语句进行分组查询时,为去掉不满足条件的分组应在group by 后使用having 子句
7)多表连接查询
1、假设有学生表和成绩表,查找总分在350分以上的学生姓名及名次,下列语句中正确的是
(c)。

a)select 姓名,名次 from 学生表,成绩表where (总分>350) or (学生表.学号=成绩
表.学号)
b)select 姓名,名次 from 学生表,成绩表where (总分>350) or (学生表.学号=成绩
表.学号)
c)select 姓名,名次 from 学生表,成绩表where (总分>350) and (学生表.学号=成
绩表.学号)
d)select 姓名,名次 from 学生表,成绩表where (总分>350) and (学生表.学号=成
绩表.学号)
3、查询客户名称中有“网络”二字的客户信息的正确命令是(d)。

a)select * from 客户 for 名称 like ″%网络%″
b)select * from 客户 for 名称=″%网络%″
c)select * from 客户 where 名称=″%网络%″
d)select * from 客户 where 名称 like ″%网络%″
5、已知数据表“职工表.dbf”(职工号,姓名,……)和“工资.dbf”(职工号,基本工资,奖金,
扣款),要查询职工实发工资的sql命令是(c)。

a)select 姓名,(基本工资+奖金-扣款)as 实发工资 from 工资
b)select 姓名,(基本工资+奖金-扣款)as 实发工资from工资where 职工.职工号=工
资. 职工号
c)select姓名,(基本工资+奖金-扣款)as实发工资from工资,职工where 职工.职工号=
工资.职工号
d)select姓名,(基本工资+奖金-扣款)as 实发工资from 工资join职工where 职工.职工号=工资. 职工号
6、商品数据库中含有两个表:商品表和销售表,结构如下:商品:商品编号c(6),商品名称
c(20),销售价n(12,2);销售:流水号c(6),销售日期d,商品编号c(6),销售量n(8,2),用sql
命令实现查询2007年10月20日所销售的各种商品的名称、销售量和销售总额,并按销售量
从小到大排序的语句是:select 商品名称,sum(销售量),sum(销售价×销售量) as销售总
额 from 商品,销售;
where 商品.商品编号=销售.商品编号and ;
销售日期={^2007-10-20} group by 商品名称 order by 销售量
7、下面关于select嵌套语句的叙述中,错误的是(d)。

a)首先应对子查询求值 b)外部查询依赖于子查询的求值结果中
c)子查询必须被括在圆括号中 d)子查询的结果会被显示出来
8)查询中的几个特殊选项
1、在显示结果时,只需要显示满足条件的前几个记录,则必须使用短语(a)。

a)top b)bottom c)percent d)by
2、在sql查询语言中,top短语必须与order by 短语配对使用,但order by 短语可以单独使用。

(√)
3、在成绩表中,只显示分数最高的前10名学生的记录,sql语句为:
select * top 10 from 成绩表order by总分 desc
4、下列关于all、distinct、top n [percent]的叙述中,错误的是(d)。

a)如果不包含任何一个短语,则默认为all b)distinct可省略选择字段中包含重复数据的记录
c)top n [percent]可指定返回特定数目的记录 d)当查询使用distinct时,可以更新其输出
5、在sql select语句中,为了将查询结果存储到临时表中应使用into cursor 短语。

6、执行“select * from student into dbf cipx order by 成绩”的sql命令之后,将(b)。

a)会提示命令出错 b)会生成一个按“成绩”升序排序的表文件
c)会生成一个按“成绩”降序排序的表文件d)显示一个按“成绩”排序的结果
5.3.4 使用sql语句更新表
1、向表中插入记录的sql命令是(b)。

a)insert b)insert into c)insert in d)insert before
2、关于insert-sql的叙述正确的是(a)。

a)在表末尾增加一条记录 b)在表头增加一条记录
c)在表中任意位置插入一条记录 d)在表中可插入若干条记录
3、在sql语句中,修改表中数据的命令是(b)。

a)alter b)update c)delete d)insert
4、当前目录下有“工资表”文件,现要将“职称”为“工程师”的工资增加30元,则语句为: update 工资表set 工资=工资+30 where 职称=″工程师″
5、语句“delete from 成绩表 where 计算机 < 60”的功能是(c)。

a)物理删除成绩表中计算机成绩在60分以下的学生记录
b)物理删除成绩表中计算机成绩在60分以上的学生记录
c)逻辑删除成绩表中计算机成绩在60分以下的学生记录
d)将计算机成绩低于60分的字段值删除,但保留记录中的其他字段值。

相关文档
最新文档