第五章 查询.docx

上传人:b****5 文档编号:7026283 上传时间:2023-01-16 格式:DOCX 页数:18 大小:78.27KB
下载 相关 举报
第五章 查询.docx_第1页
第1页 / 共18页
第五章 查询.docx_第2页
第2页 / 共18页
第五章 查询.docx_第3页
第3页 / 共18页
第五章 查询.docx_第4页
第4页 / 共18页
第五章 查询.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第五章 查询.docx

《第五章 查询.docx》由会员分享,可在线阅读,更多相关《第五章 查询.docx(18页珍藏版)》请在冰豆网上搜索。

第五章 查询.docx

第五章查询

1.根据需要,可以把查询的结果输出到不同的目的地。

以下不可以作为查询的输出类型的是___29_D__。

A.自由表

B.报表

C.临时表

D.表单

2.用SELECT-SQL命令对数据进行查询时,SELECT命令中FROM子句用来指定数据源表,_Where__子句用来筛选源表记录,Having子句用来筛选结果记录。

3.XSDA表已经在工作区2中打开,则SELECT("XSDA")的值是_ 2 。

如果XSDA表中有一个字段名为BYXX的字段,且已设置了字段标题,则表达式DBGETPROP("xsda.byxx","FIELD","Caption")的返回值为该字段的标题。

4.在教学管理数据库中有二个表:

课程表(KC)和成绩表(CJ)。

表结构如下:

课程表(KC.DBF)

成绩表(cj.dbf)

课程代号

KCDH

C,2

学号

XH

C,6

课程名

KCM

C,18

课程代号

KCDH

C,2

 

 

 

成绩

CJ

N,3

(1)查询每门课程的课程代号、课程名及平均分,且把查询结果保存到表文件KCCJ.DBF中,可以用SQL语句:

SELECTKC.KCDH,KC.KCM,__AVG(CJ.CJ)_AS平均分;

    FROMKC,CJ;

    WHEREKC.KCDH=CJ.KCDH ;

    GROUPBYKCDH;

    INTO_TABLE _KCCJ.DBF

(2)基于KC表和CJ表,已创建一个按KCDH查询的表单如下图所示:

下拉列表框的RowSourceType属性为:

6--字段

RowSource属性为:

KC.KCDH

表格的RecordSourceType属性为:

1--别名

表格的RecordSource属性为:

_CJ.DBF 

5.在一个学生挡案表中,要实现多字段排序:

先按班级(bj,N,1)顺序排序,同班的同学再按出生日期(csrq,D)顺序排序,则其索引表达式应为:

STR(BJ)+DTOC(CSRQ)。

6.利用查询设计器创建的查询,其查询结果输出去向的默认类型是___28___。

A.临时表

B.浏览

C.表

D.屏幕

7.不可以作为查询与视图的数据源的是___29___。

A.查询

B.数据库

C.记录

D.字段

8.已知教师表JS.DBF的表结构如下:

字段名

类型

长度

小数位

含义

GH

C

6

 

工号

XM

C

8

 

姓名

GL

N

2

 

工龄

JBGZ

N

7

2

基本工资

若要求按如下条件更改基本工资(JBGZ):

工龄在10年以下(含10年)者基本工资加200

工龄在10年以上(不含10年)者基本工资加400

可用如下命令来完成:

UPDATEJS___SET___JBGZ=IIF(GL<=10_,JBGZ+200,JBGZ+400)。

9.设教师表JS.DBF的表结构如下:

字段名

类型

长度

小数位

含义

GH

C

6

 

工号

XM

C

8

 

姓名

GL

N

2

 

工龄

CSRQ

D

8

 

出生日期

要删除教师表中年龄在60岁以上(不含60岁)的教师记录,可使用命令:

DeleteFromJSWhere__Year(Date())-Year(CSRQ)>60_

10.在学生管理数据库中,有一个成绩表(CJ.DBF),表结构如下:

成绩表(cj.dbf)

学号

xh

c,8

课程号

kch

c,2

成绩

cj

n,3

成绩表(CJ.DBF)含有内容如下:

 

XH

KCDH

CJ

990201

01

78

990201

02

80

990201

03

80

990201

04

73

990201

05

82

990201

06

95

990202

02

62

990202

03

69

990202

04

93

990202

05

95

990202

06

84

990301

01

63

下列是基于CJ.DBF的SELECT-SQL语句,其功能是_从成绩表中查出成绩大于90分的学生的学号、课程代号、成绩与等级___,查询结果输出去向是表文件。

SELECTCj.xhAS学号,Cj.kcdhAS课程代号,Cj.cjAS成绩,“优秀”AS等级;

FROMsjk!

cj;

WHERECj.cj>=90;

__INTO__TABLEcxl.DBF

11.学生表(XS.DBF)的表结构为:

学号(XH,C,8),姓名(XM,C,8),性别(XB,C,2),班级(BJ,C,6),用Insert命令向XS表添加一条新记录,记录内容为:

XH

XM

XB

BJ

10

李小平

984461

下列命令中正确的是___23___。

A.INSERTINTOXSVALUES("10","李小平","男","984461")

B.INSERTTOXSVALUES("10","李小平","男","984461")

C.INSERTINTOXS(XH,XM,XB,BJ)VALUES(10,李小平,男,984461)

D.INSERTTOXS(XH,XM,XB,BJ)VALUES("10","李小平","男","984461")

12.在Visual FoxPro中,创建___27___将不以独立的文件存储。

A.查询

B.类库

C.视图

D.菜单

13.使用SETFILTERTO命令所设置的过滤器,对DELETE-SQL命令、UPDATE-SQL命令及_SELECT-SQL___命令不起作用。

14.某数据库中有下列所述结构的两个表(BRDA和MXB),并且已创建了一对多关系。

病人档案表(BRDA)

病人取药明细情况表(MXB)

字段名

类型

宽度

字段名

类型

宽度

病历号

C

6

病历号

C

6

姓名

C

8

药品编号

C

8

性别

L

1

单价

N

7,2

年龄

N

3

数量

N

3

联系地址

C

40

日期

D

8

下列的查询语句用于查询病人用药总金额大于1000的病人信息(病历号、姓名、总金额),请完善该语句:

SELECT病历号,姓名,SUM(单价*数量)AS总金额;

FROMbrda,mxb;

WHERE_brda.病历号=mxb.病历号____;

GROUPBY1;

HAVING__总金额>1000_或sum(单价*数量)>1000__或sum(mxb.单价*mxb.数量)>1000

15.xs(学生)表的结构为:

字段名

中文含义

类型

长度

XH

学号

字符

6

XM

姓名

字符

8

XB

性别

字符

2

CSRQ

出生日期

日期

8

ZZMM

政治面貌

逻辑

1

BZ

备注

备注

4

下列命令用来创建XS表的结构,请将它完善:

CREATE_TABLEXS__;

(XHC(6),XMC(8),XBC

(2),CSRQD,_ZZMML__,BZM)

16.已知教师表JS.DBF(含有字段:

工号(GH,C,6),姓名(XM,C,8),基本工资(JBGZ,N,7,2),系名(XIMING,C,16))。

完成下列SQL命令以统计JS表中系名为“信息管理系”的职工的平均工资。

SELECT__XIMINGAS系名,AVG(JBGZ)AS平均工资;

FROMJS;

WHEREXIMING="信息管理系"GROUPBYXIMING;

INTOCURSJSTMP

17.VFP系统中,查询文件的扩展名为_____。

A..PRG  B..QPR  C..SCX  D..QUR

18.用CREATETABLE-SQL命令创建数据库表XS.DBF,表结构为:

 字段名 字段类型 字段宽度

   XH       C         6

   XM       C         8

   NL       N         2

请把下述命令写完整:

CREATETABLEXS(XHC(6),XMC(8),NLN

(2))

19.设JS.DBF及JSRK.DBF的结构如下:

 

教师表(JS.DBF)

教师任课表(JSRK.DBF)

字段名

类型

宽度

(含义)

字段名

类型

宽度

(含义)

GH

C

5

(工号)

GH

C

5

(工号)

XM

C

8

(姓名)

KCH

C

2

(课程号)

XB

C

2

(性别)

KCMC

C

30

(课程名称)

DEPARTMENT

C

20

(系名)

KSS

N

5

(课时数)

 

并且分别基于GH建立了结构复合索引,它们现有数据如下:

教师(JS.DBF)

工号

姓名

性别

系名

04001

陈子亮

管理工程系

04002

赵东萍

管理工程系

04003

王一平

计算机系

04004

陈志敏

中文系

教师任课表(JSRK.DBF)

工号

课程号

课程名称

课时数

04001

1

会计电算化

64

04001

2

会计电算化课程设计

42

04002

3

软件工程

48

04002

4

C++

64

04003

2

会计电算化

64

04003

5

中国文学

48

 

下列命令用来查询每个教师的任课课时总数,请将它写完整:

SELECTjs.gh,js.xm,SUM(jsrk.kss)AS总课时;

FROMjs,jsrk;

WHEREjs.gh=jsrk.gh;

INTOCURSORcjsrkzstmp;

GROUPBYgh;

ORDERBYgh

临时表cjsrkzstmp的记录数为3。

如果要向JSRK表中插入一条新记录,其记录内容是:

"04003"(工号)、"6"(课程代号)、"计算机概论"(课程名称)、32(课时数),则命令为:

INSERTINTOjsrk(gh,kch,kcmc,kss)Values("04003","6","计算机概论",32)

20.如果对上题JSRK.DBF先按工号从小到大排序,在工号相等和情况下,再按课程号从小到大排序,则索引表达式为jsrk.gh+jsrk.kch。

21.查询和视图的最大区别是查询中的数据是只读的,视图中的数据是可更新的。

22.设JS.DBF及JSRK.DBF的结构如下:

教师表(JS.DBF)

教师任课表(JSRK.DBF)

工号

GH

C,5

工号

GH

C,5

姓名

NAME

C,8

课程号

KCH

C,2

性别

XB

C,2

课程名称

KCMC

C,30

系名

XM

C,20

课时数

KSS

N,5

 

下列命令用来创建JS.DBF,请将它写完整:

CREATETABLEJS(GHC(5),NAMEC(8),XBC

(2),XMC(20))。

如果对教师表已经建立了两个索引,索引表达式分别为GH和NAME,下列程序段用来查找姓名为“王一平”的记录,请将它写完整:

SELEJS

SETORDERTONAME

SEEK“王一平”

下列命令用来查询每个教师的任课课时总数,请将它写完整:

SELECTjs.gh,js.name,SUM(jsrk.kss)AS总课时;

FROMjsrkINNERJOINjs;

ONJS.GH=JSRK.GH;

INTOCURSORcjsrkzstmp;

GROUPBYgh;

ORDERBYgh

如果JS.DBF和JSRK.DBF已经建立永久性关系,并且,当JS表的GH发生变化时,JSRK表的GH跟着改变,则参照完整性的更新规则应设置成级联。

23.用Select-SQL语句进行分组查询,则必须包含Groupby命令子句。

24.某数据库中有两个数据库表:

物资表(WZB.DBF)和领用表(LYB.DBF),两个表具有一对多关系。

完善下面的SELECT语句,使其实现查询近10天内各部门的各种物资领用数量。

物资表(WZB.DBF)

领用表(LYB.DBF)

字段名

类型

宽度

字段名

类型

宽度

物资代号

C

6

物资代号

C

6

物资名称

C

12

领用部门

C

20

  

  

  

领用数量

N

3

   

  

  

领用日期

D

8

SELECT物资代号,物资名称,领用部门,sum(领用数量)AS领用数量;

  FORMwzb,lyb;

  WHEREwzb.物资代号=lyb.物资代号AND(date()-领用日期<=10);

  GROUPBy1,3;

  ORDERBy3,1

25.设有表文件CJB.DBF,表中共有30条记录,记录内容如下表所示:

 学号

 XH

课程代号

KCDH

成绩

CJ

 

学号

XH

课程代号

KCDH

成绩

CJ

 

学号

XH

课程代号

KCDH

成绩

CJ

990201

01

78

990202

05

95

990302

03

89

990201

02

80

990202

06

84

990302

04

98

990201

03

80

990201

01

63

990203

05

68

990201

04

73

990201

02

62

990203

06

84

990201

05

82

990201

03

82

990203

01

87

990201

06

95

990201

04

93

990203

02

78

990202

01

63

990201

05

95

990203

03

85

990202

02

62

990201

06

76

990203

04

80

990202

03

69

990202

01

78

990204

01

51

990202

04

93

990202

02

80

990204

03

86

SETTALKOFF

SELECTkcdh,AVG(cj)AS平均成绩,COUNT(*)AS选修人数;

  FROMcjb;

  GROUPBYkcdh;

  ORDERBYkcdhDESC;

  INTOCURSORLsbA

SELECT*

  FORMLsbA;

  WHERERECNO()<4;

  INTOCURSORLsbB

GOTOP

?

kcdh

上述程序运行时,屏幕上显示的结果是:

06

27.设有一自由表xx.dbf。

下列SELECT-SQL命令中,语法错误的是(27)。

     A.SELECT*FROMxx

     B.SELECT*FROMxxINTOCURSORtemp

     C.SELECT*FROMxxINTOTABLEtemp

     D.SELECT*FROMxxINTOtemp

 

 9.在某教学管理数据库中,有一个成绩表(cj.dbf),表结构及其记录如下表所述。

     对于下列SELECT-SQL语句,其查询结果含有 3  条记录。

     SELECTxh,COUNT(*)AS选课门数FROMcjGROUPBYxh

 

   18.某表单的数据环境中包含kc表和cj表,且kc表和cj标之间已建好临时关系。

当表单运行时,如下图所示。

     1)列表框的BoundColumn为1,要求显示kc表的课程代号(kcdh)、课程明(kcm)、和课时数(kss)字段,则列表框的RowSourceType属性值为“6(字段)”,RowSource属性值为 kcdh,kcm,kss 。

     2)若在列表框中选中某门课程时,表格中显示该课程的所有学生的成绩,且在文本框text中显示该课程的平均分,则列表框的InteractiveChange事件代码中应含有:

     SELECTAVG(cj.cj)FROMcj;

         WHEREcj.kcdh= This.Value INTOARRAYt

      THIS. Parent .text1.Value=t

   19.某银行存款表(ck.dbf)的表结果如下所示:

     1)创建ck表的表结构,可以使用下列命令:

       CREATETABLEck(zhC(15),crrqD,cqN(3,0),je Y )

     2)为ck表增加下表所示的一条记录,可以使用下列命令:

       INSERT InTockValues _(‘10789324’,{^2004/03/12},12,10000)

  9.设sjk.dbc数据库中有三个数据库表:

xim.dbf(系名表),js.dbf(教师表)和xs.dbf(学生表)。

其中,xim.dbf含有:

系代号(xdhC

(2)),系名(ximingC(18))字段;js.dbf,xs.dbf均含有:

姓名(xmC(8)),系代号(xdhC

(2))字段。

要求查询“计算机科学系”的全体师生名单,结果中包含两列:

类别,姓名,其中类别用于注明“教师”或“学生”,输出结果首先按照类别排序,若类别相同再按姓名排序。

    

    SELECT“教师”AS类别js.xmAS姓名;

        FROMsjk!

js,sjk!

xim;

        WHEREjs.xdh=xim.xdhANDxim.ximing=“计算机科学系”;

         UNION;

           SELECT_____学生_____AS类别,xs.xmAS姓名;

             FROMsjk!

xs,sjk!

xim;

             WHERExs.xdh=xim.xdhANDxim.ximing=“计算机科学系”;

             ORDERBY1,2

  12.设有一个会议代表签到信息的表文件bd.dbf,包括xh(序号),xm(姓名),dw(单位)等字段,如果每个单位可以有多个代表参加,则可以利用命令;

     SELECT______distinct____dwFROMbdINTOTABLEdwb

生成一个仅含有单位字段且记录值不重复的表文件dbf.dbf。

如果要统计各单位参加会议的人数并根据人数由多到少排序,则可以利用命令:

      SELECTdwAS单位,______count(*)_____AS人数;

          FROMbd;

          GROUPBY____dw______;

          ORDERBY2DESC

 20.设某图书管理数据库中有三张表:

图书.dbf,读者.dbf与借阅.dbf。

表结构如下:

     

    完善下列语句以查询各出版社出版图书的最低单价,平均单价和册数。

      SELECT出版单位,MIN(单位)AS最低单价,;

          AVG(单价)AS平均单价,COUNT(*)AS册数;

        FROM图书管理!

图书;

        ____________groupby出版单位_____________

    完善下列语句可以查询借阅了4本(含4本)以上图书的读者姓名和单位。

      SELECT姓名,单位FROM图书管理!

读者WHERE借书证号IN;

         (SELECT借书证号FROM图书管理!

借阅;

            GROUPBY_____借书证号_____HAVINGCOUNT(*)>=4)

1、设计查询(8分)04sp02

  已知班级(BJ)表中含有班级编号(bjbh)、系代号(xdh)和专业代号(zydh)字段,按如下要求修改TEST项目中的查询CHAXUN:

基于班级(BJ)表和学生(XS)表,以系为单位统计各专业的人数,要求输出字段为:

xdh、zydh、人数,查询结果按系代号和专业代号升序排序。

selectxdh,zydh,count(*)fromxs,bjwherebj.bjbh=xs.bjbh;

 groupbyxdh,zydh;

 orderbyxdh,zydh

2、设计查询(8分)04sp03

   已知数据库SJK中含有视图BJST,视图中包含班级编号(bjbh)、系代号(xdh)、系名(ximing)、专业代号(zydh)和专业名称(zymc)字段,按如下要求修改TEST项目中的查询CHAXUN:

   基于BJST视图和学生(XS)表以系为单位,按籍贯(jg)统计各系各地学生的人数,要求输出字段为ximing、jg、人数,查询结果首先按系名升序排序,同一个系再按人数降序排序。

selectximing,jg,count(*)人数frombjst,xs;

 wherebjst.bjbh=xs.bjbh;

 groupbyxdh,jg;

 orderbyxdh,3desc &&一定要先打开数据库

 

3、设计查询(8分)04sp04

  在TEST项目中已存在查询CHAXUN。

按如下要求修改查询:

基于课程(KC)表和成绩(CJ)表查询尚未有成绩登记的那些课程。

要求输出两个表的所有字段。

相同的课程在查询结果中只出现一次,且按课程代号(kcdh)升序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1