书签 分享 收藏 举报 版权申诉 / 115
上传文档赚钱

类型第4章结构化查询语言SQL和报表课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:3861221
  • 上传时间:2022-10-19
  • 格式:PPT
  • 页数:115
  • 大小:599.61KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第4章结构化查询语言SQL和报表课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    结构 查询 语言 SQL 报表 课件
    资源描述:

    1、第4章 结构化查询语言SQL和报表SQL语言的基本概述数据定义语言DDL数据操纵语言DML查询和SELECT 命令报表和标签小结2022-10-194.1 SQL语言的基本概述结构化查询语言(Structured Query Language,简称SQL)SQL是用于对存放在计算机数据库中的数据进行组织、管理和检索的工具,是一种用于和数据库进行交互通信的计算机语言。SQL是1974年由Boyce和Chamberlin提出的,并在IBM公司研制的System R上首次实现了这种语言,由于它的功能丰富,使用方式灵活和语言简洁易学等突出特点,很受计算机界的欢迎。现在SQL语言已成为关系型数据库操纵语

    2、言的国际标准。VFP 提供了SQL 语言支持 2022-10-194.1.1 SQL语言的基本概念SQL语言支持关系型数据库的三级模式结构,其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。在SQL语言中,一个关系就对应于一个表,基本表本身是独立存在的表,对应一个存储文件;存储文件的逻辑结构组成了关系型数据库的内模式。视图是从基本表或其他视图导出的表,视图只是一个虚表。在用户看来,视图和基本表都是关系,而存储文件对用户是透明的。2022-10-194.1.2 SQL的基本功能SQL语言由3部分组成:数据定义语言DDL(Date Definition Language)。

    3、数据操纵语言DML(Date Manipulation Language)。数据控制语言DCL(Date Control Language)。其主要命令如表4-1所示。SQL功能命令数据定义语言DDLCreate、Drop、Alter数据操纵语言DMLSelect、Insert、Update、Delete数据控制语言DCLGrant、Revoke其中,数据定义语言DDL提供了完整的定义数据库所必需的语言工具,用来创建、修改、删除数据库对象;数据操纵语言DML用于查询或者修改数据;数据控制语言DCL用来管理用户的访问权限,由于VFP 没有权限管理功能,所以不支持DCL命令。2022-10-194

    4、.2 数据定义语言DDL数据定义语言是对关系模式的一级定义,用来定义被存放数据的结构和组织,以及数据项之间的关系。SQL数据定义语言可以用来定义数据表、视图和索引。Create语句:用于定义和生成数据对象,比如创建表、视图和索引。Drop语句:用于删除一个现有的数据对象,比如视图、表、索引。Alter语句:用于改变一个数据库对象。比如对一个表的字段进行删除、添加和修改,或者修改表的结构。2022-10-194.2.1 用Create语句创建基本表命令格式:CREATE TABLE 表名 FREE(宽度,小数)NULLNOT NULL CHECKERROR DEFAULT PRIMARY KEY

    5、/UNIQUE,)命令功能:创建数据表的结构。2022-10-194.2.1 用Create语句创建基本表(续)命令说明:CREATE TABLE表名:指定创建表文件名。FREE:在数据库打开的情况下创建的是自由表。默认在数据库未打开时创建的是自由表,在数据库打开时创建的是数据库表。CHECK:为字段值指定约束条件;ERROR:用来指定当不满足约束条件时显示的出错信息。DFAULT:指定默认的字段值。PRIMARY KEY:指定当前字段为主索引关键字;UNIQUE:指定当前字段为候选索引关键字。NULL/NOT NULL:表示该字段是否可以为空。2022-10-194.2.1 用Create语

    6、句创建基本表(续)【例4.1】在图书馆管理系统中创建dzzl(读者种类)表,包含zlbh(种类编号)、zlmc(种类名称)、jssl(借书数量)、jsqx(借书期限)、bz(备注)几个字段。OPEN DATABASE 图书馆管理CTEATE TABLE dzzl(zlbh c(10)not null,zlmc c(10)not null,jssl c(8),jsqx c(8),Bz c(20)若在命令窗口执行MODIFY STRUCTURE命令,就可以在弹出的对话框中见到dzzl表结构,如图4-2所示。图图4-2 创建的创建的dzzl表结构表结构2022-10-194.2.1 用Create语

    7、句创建基本表(续)【例4.2】创建一个名为“通讯录”的自由表,包含姓名、工作单位、电话号码、家庭住址4个字段,所得的表预览如图4-3所示。CREATE TABLE 通讯录 FREE(姓名C(10),工作单位C(20),电话号码C(12),家庭住址C(20)BROWSE由于没有向表中添加任何记录,所以在预览时看不见任何的记录。图图4-3 创建的通讯录表创建的通讯录表2022-10-194.2.1 用Create语句创建基本表(续)【例4.3】创建一个“图书订单”的数据库,并在此数据库中创建一个“图书”表,图书表含有订单号、图书编号、书名、单价、数量等字段。CREATE DATEBASE 图书订单

    8、CREATE TABLE 图书(订单号 C(10);DEFAULT 10001,图书编号 C(10)PRIMARY KEY,;书名C(10),单价 N(8,2);数量 N(6)CHECK 数量=100 AND 数量=1000;ERROR 数量范围在100和1000之间)图图4-4 图书表的索引图图书表的索引图预览此表的设计器可以看见“图书编号”已经被设为主索引,如图4-4所示。2022-10-194.2.1 用Create语句创建基本表(续)【例4.4】在图书订单数据库中建立一个新表“订单”表,含有订单编号、图书编号、客户编号、订货日期、发货日期几个字段。OPEN DATABASE 图书订单C

    9、REATE TABLE 订单(订单编号 C(10)PRIMARY KEY,;客户编号 C(10),订货日期 D,发货日期D;图书编号C(10),FOREIGN KEY 图书编号;TAG 图书编号 REFERENCES 图书)图图4-5 图书表和订单表之间的关系图书表和订单表之间的关系在命令窗口中输入“MODIFY DATABASE 订数订单”命令,可在弹出的“数据库设计器”窗口中见到图书表和订单表之间已建立的关系,如图4-5所示。2022-10-194.2.2 用Alter修改基本表命令格式1:ALTER TABLE ADD/ALTERCOLUMN (字段宽度,小数位数)NULLNOT NUL

    10、L CHECKERROR DEFAULT PRIMARY KEY/UNIQUE REFERENCESTAG 命令功能:修改表中原有的字段,或者在表中增加新的字段。2022-10-194.2.2 用Alter修改基本表(续)命令说明:ADD COLUMN(字段宽度,小数位数):增加新字段,并指定新增字段的名称、类型、字段宽度及小数位数。NULLNOT NULL:指定新字段是否接受空值。ALTER COLUMN(字段宽度,小数位数):修改原有字段,并指定修改后的字段名称、类型、字段宽度及小数位数。其他的参数含义同 CREATE TABLE。2022-10-194.2.2 用Alter修改基本表(续

    11、)【例4.5】修改在例4.2中创建的通讯录表,增加一个“性别”字段,SQL 命令如下:ALTER TABLE 通讯录 ADD COLUMN 性别 C(10)再把表中字段“家庭住址”修改为“工作地址”,SQL命令如下:ALTER TABLE 通讯录 RENAME COLUMN 家庭住址 TO 工作地址 预览修改后的表如图4-6所示,与图4-3对比就可以发现多出了一个字段“性别”,字段“家庭住址”改为了“工作地址”。图图4-6 修改后的通讯录表修改后的通讯录表2022-10-194.2.2 用Alter修改基本表(续)【例4.6】修改例4.3中创建的图书表,将“书名”字段的宽度改为20且不准为空值

    12、。SQL命令如下:OPEN DATABASE 图书订单ALTER TABLE 图书 ALTER 书名 C(20)NOT NULL命令格式2:ALTER TABLE ALTER COLUMN NULLNOT NULL SET CHECKERROR SET DEFAULT DROP CHECK DROP DEFAULT 2022-10-194.2.2 用Alter修改基本表(续)命令功能:删除或者设置字段的默认值或约束条件。命令说明:SET CHECKERROR:为字段设置约束条件。SET DEFAULT:设置默认值。DROP DEFAULT:删除默认值。DROP CHECK:删除约束条件。202

    13、2-10-194.2.2 用Alter修改基本表(续)【例4.7】在例4.3创建的图书表中,为“图书编号”字段设置一个默认值200601并删除数量的约束条件,SQL命令如下:ALTER TABLE 图书 ALTER 图书编号 SET DEFAULT 200601ALTER TABLE 图书 ALTER 数量 DROP CHECK2022-10-194.2.2 用Alter修改基本表(续)命令格式3:ALTER TABLE DROP COLUMN ADD PRIMARY KEY TAG DROP PRIMARY KEY ADD UNIQUE TAG DROP UNIQUE TAG SET CHE

    14、CK ERROR DROP CHECK ADD FOREIGN KEYTAGREFERENCESTAG DROP FOREIGN KEY TAG SAVE RENAME COLUMN TO 2022-10-194.2.2 用Alter修改基本表(续)命令功能:删除表中的字段、设置或删除表的主索引、候选索引、对字段重新命名或者删除指定的字段的约束条件。命令说明:DROP COLUMN:删除指定的字段。ADD PRIMARY KEY TAG:建立主索引。DROP PRIMARY KEY:删除主索引。ADD UNIQUE TAG:建立候选索引。DROP UNIQUE TAG:删除候选索引。ADD F

    15、OREIGN KEYTAG:建立外索引。REFERENCESTAG:指定建立关联的父表。DROP FOREIGN KEY TAG SAVE:删除外索引。RENAME COLUMN TO:对字段重新命名。2022-10-194.2.2 用Alter修改基本表(续)【例4.8】在例4.3创建的图书表中,为“书名”创建一个候选索引,并且删除“数量”字段,如图4-7所示。SQL语句如下:ALTER TABLE 图书 ADD UNIQUE 书名;ALTER TABLE 图书 DROP COLUMN 数量图图4-7 例例4.8图图在图4-7中,字段“数量”被删除,并创建候选索引“书名”。2022-10-1

    16、94.2.2 用Alter修改基本表(续)【例4.9】在第1章创建的“图书管理系统”的dzzl中,为jssl创建一个默认值15,当输入有错误时就会显示“值为15”,删除表中的候选索引。SQL语句如下:ALETER TABLE dzzl ALTER jssl SET DEFAULT 15;ERROR“值为15”;ALETER TABLE dzzl DROP UNIQUE TAG zlbh 2022-10-194.2.3 用DROP 命令删除一个表随着数据库设计的变化,数据库的结构也在不断的变化,新建的表就会不断地代替旧表,这时某些旧表就不再需要了,可以用DROP TABLE 命令删除它。命令格式

    17、:DROP TABLE 命令功能:删除一个表,包括在这个表上建立的索引。命令说明:指定被删除的表。【例4.10】删除在例4.2中创建的通讯录表,SQL 命令如下:DROP TABLE 通讯录 2022-10-194.3 数据操纵语言DML数据操纵实际上就是管理数据,这也是创建表的基本目的,主要是对关系中的具体数据进行查询、更新、删除和插入,但不能够改变数据的结构。DML命令如表4-2所示。命令功能UPDATE更新数据库中的已有数据DELETE 用于从数据表中删除数据INSERT增加一个新的数据到表中SELECT 数据查询表表4-2 DML的命令及功能的命令及功能2022-10-194.3.1

    18、INSERT 命令用CREATE TABLE 命令创建一个表后,创建的表中没有具体的数据,可以用INSERT命令向表中插入数据。命令格式:INSERT INTO 表名(列名1,列名2,)VALUES(,)命令说明:INTO 表名:指定接受新数据的目标表。VALUES:指明增加记录的字段值。向表中添加的数据必须与指定字段名的类型相匹配。字符串要用单引号或者双引号括起来,日期型可用CTOD函数处理或者直接引用。2022-10-194.3.1 INSERT 命令(续)【例4.11】在例4.4创建的订单表中插入一个新的记录:订单编号:200601读者编号:10001订货日期:2006-02-1发货日期

    19、:2006-02-10图书编号:100012使用INSERT 语句把该记录插入到订单表中,SQL语句如下:INSERT INTO 订单(订单编号,读者编号,订货日期,发货日期,图书编号);VALUES(200601,10001,CTOD(02-1-06),CTOD(02-10-06),100012)2022-10-194.3.2 UPDATE命令UPDATE语句用来更新表中的记录。命令格式:UPDATE SET=,=WHERE 命令说明:UPDATE:指明要修改的记录的表的名称。SET:指明更新的字段名和字段值。WHERE:限定要修改的行,如果没有WHERE子句,该字段下的所有字段值都将被新值

    20、替换。2022-10-194.3.2 UPDATE命令(续)【例4.12】把第1章中创建的SJ表中“价格”大于30元且“页数”大于300的图书的“备注”改为“珍贵图书”,SQL命令如下:UPDATE SJ SET BZ=珍贵图书 WHERE JG30 AND YS300若把价格大于30元的或页数大于300页的图书的备注(bz)改为珍贵图书,SQL命令如下:UPDATE SJ SET BZ=珍贵图书 WHERE JG30 OR YS300 2022-10-194.3.3 DELETE 命令DELETE 命令用来删除一行或者多行记录。命令格式:DELETE FROM WHERE 命令说明:FROM

    21、 子句:指出将删除的目标表。WHERE:指明被删除的记录满足的条件,若没有WHERE子句则删除所有记录。【例4.13】在第1章创建的SJ表中,把“价格”大于30元且“页数”大于300的图书记录删掉,SQL语句如下:DELETE FROM SJ WHERE JG30 AND YS300 2022-10-194.4 查询和SELECT 命令SELECT 是数据查询命令。SELECT命令虽然属于数据操纵范围,但它是SQL的核心,在SQL命令中使用的是最多的,我们将它和查询单独作为一节。VFP 6.0的查询设计器或SELECT-SQL语句可用来方便地检索存储在表或者视图中的信息。利用查询设计器可以搜索

    22、满足条件的记录,并且可将查询保存在.qpr文件中。2022-10-194.4.1 创建和添加查询1启动查询设计器若要打开查询设计器,应首先打开一个要查询的数据库,然后采用以下方式之一:(1)“文件”菜单启动查询设计器(2)从“工具”菜单启动查询设计器(3)使用CREATE QUERY命令打开查询设计器2022-10-19(1)“文件”菜单启动查询设计器从“文件”菜单中选择“打开”命令,启动“打开”对话框,并在对话框的“文件类型”中选择“项目”类型,再选取要打开的项目名称,最后单击“确定”按钮,出现项目管理器对话框。在项目管理器中选择“数据”选项卡,再选取“查询”选项。单击“新建”按钮,此时出现

    23、“添加表或视图”对话框,然后从数据库下拉列表框中选择待查询的数据库名称。再从“选定”栏中选择“表”或“视图”,本例选择了“表”。从“数据库中的表”列表框中选择要添加的表。重复这一步骤,直到选取了所需要的全部表。单击“关闭”按钮,返回“查询设计器”窗口,如图4-8所示。2022-10-19(1)“文件”菜单启动查询设计器(续)图4-8 查询设计器2022-10-19(2)从“工具”菜单启动查询设计器在VFP 6.0主菜单中,选择“工具”,指向“向导”,选择“查询”,弹出“向导选取”对话框,再选择“查询向导”,可根据查询向导的提示创建查询。(3)使用CREATE QUERY命令打开查询设计器在命令

    24、窗口中输入CREATE QUERY即可打开查询设计器。2022-10-192创建查询(1)查询设计器查询设计器的窗口如图4-8所示。在查询设计器上半部分的窗口中,列出用户已选定的要查询的表或视图。表或视图之间的连线表示表之间的连接关系。查询设计器下半部分的窗口中有6个选项卡:“字段”:选定包含在查询结果中的字段。“联接”:确定各数据表或视图之间的连接关系。“筛选”:相当于命令SET FILTER TO,利用过滤的方法查找一个特定的数据子集。“排序依据”:决定查询结果输出中记录或行的排列顺序“分组依据”:所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可以完成基于一组的计算。“杂项”:指定

    25、是否要对重复记录进行检索,同时是否对记录(返回记录的最大数目或最大百分比)做限制。2022-10-19(2)创建查询的步骤1)按上面介绍的方法打开查询设计器。2)添加出现在查询结果中的表或视图。如本例已打开“图书馆管理”数据库,并已选择添加了Dz.dbf、Jy.dbf和Sj.dbf三个表。3)选定要包含在查询结果中的字段。在“字段”选项卡中,从可用字段列表框中选择需要的字段,即单击需要的字段,再单击“添加”按钮;或者双击需要的字段。4)如果要“可用字段”列表框中的全部字段都包含在查询结果中,可单击“全部添加”按钮;单击“全部移去”按钮,则将已选定的字段(列于选定字段列表框中)全部作废。此时单击

    26、“运行”按钮即可看到查询结果。5)保存查询。从“文件”菜单中选择“保存”命令,打开如图4-9所示的“另存为”对话框中,在“保存类型”下拉框中选择“查询”类型,在“保存文档为:”文本框中输入查询文件名,本例取名为“读者借阅”,然后单击“保存”按钮即可。2022-10-19(2)创建查询的步骤(续)图4-9 “另存为”对话框2022-10-19(2)创建查询的步骤(续)【例4.14】查询书籍表中的部分信息。将Sj.dbf表添加到查询设计器中,即只对Sj.dbf表操作。操作如下:1)首先打开“图书馆管理”数据库,然后打开查询设计器,添加表Sj.dbf。2)选定要包含在查询结果中的字段。方法是在“字段

    27、”选项卡中,从可用字段列表框中选择需要的字段,即单击需要的字段,再单击“添加”按钮;或者双击需要的字段。图4-10列出了本例选择的全部字段。3)单击“运行”按钮得到查询结果,如图4-11所示。2022-10-19(2)创建查询的步骤(续)4)保存查询结果。单击“文件”菜单的“保存”命令,打开“保存”对话框,将查询结果保存。图图4-10 例例4.14图图图图4-11 例例4.14的查询结果的查询结果2022-10-19(2)创建查询的步骤(续)【例4.15】统计表Sj.dbf中记录书籍的价格、页数和书名等信息。为完成统计所有书籍的价格和页数的查询,应将Sj.dbf表添加到查询设计器中。由于本例只

    28、要求统计所有书籍的价格和页数,因此只需要选择书籍名称、价格和页数三个字段即可。选择所需的字段后,单击“查询”按钮即可看到查询结果,如图4-12所示。图图4-12 例例4.15 的的“书籍价格书籍价格”查询结果查询结果2022-10-193创建SELECT-SQL语句(1)认识SELECT-SQL语句利用查询设计器可以方便地创建查询而SELECT-SQL则是一个功能更强大的查询工具,它可直接从一个或多个表中检索数据,其查询结果可用于创建报表、BROWSE或新的数据库表或是临时表,并且SELECT-SQL语句可直接加入到程序中。利用查询设计器创建查询时,系统会自动创建相应的SQL查询语句。单击“查

    29、询设计器工具栏”上的“显示SQL窗口”按钮,如图4-13所示,可打开SQL窗口,窗口中所列出的语句就是刚刚利用查询设计器创建的与查询相对应的SQL语句。2022-10-193创建SELECT-SQL语句(续)表4-3所列是上两例使用查询设计器创建查询得到的SQL语句。在命令窗口中键入MODIFY COMMAND example命令,打开程序编辑窗口,再输入下述命令,可得到与使用查询设计器相同的查询结果。1)在命令窗口中输入任一SELECT-SQL语句,然后按Ctrl+W键保存所输入的内容。2)DO example例例4.14的的SELECT SQL语句语句例例4.15的的SELECT SQL语

    30、句语句 SELECT sj.sjbh,sj.sjmc,sj.sjzz,sj.cbs;FROM 图书馆管理图书馆管理!sjSELECT sj.sjmc,sj.jg,sj.ys;FROM 图书馆管理图书馆管理!sj表表4-3 查询设计器创建的查询设计器创建的SELECT SQL语句语句图图4-13 查询设计器查询设计器工具栏工具栏2022-10-19(2)SELECT-SQL语句的语法格式SELECT ALL|DISTINCT TOP nExpr PERCENTAlias.Select_Item AS Column_Name,Alias.Select_Item AS Column_Name.FRO

    31、M FORCEDatabaseName!Table AS Local_AliasINNER|LEFT OUTER|RIGHT OUTER|FULL OUTER JOIN DatabaseName!Table AS Local_Alias ON JoinCondition INTO Destination|TO FILE FileName ADDITIVE|TO PRINTER PROMPT|TO SCREENPREFERENCE PreferenceNameNOCONSOLEPLAINNOWAITWHERE JoinCondition AND JoinCondition.AND|OR Filt

    32、erCondition AND|OR FilterCondition.GROUP BY GroupColumn,GroupColumn.HAVING FilterConditionUNION ALL SELECTCommandORDER BY Order_Item ASC|DESC,Order_Item ASC|DESC.2022-10-19(2)SELECT-SQL语句的语法格式(续)SELECT-SQL语句相当复杂,它既可以用于单表的查询,也可以用于多表的查询。1)SELECT子句:在SELECT子句中指定在查询结果中包含的字段、表达式。2)FROM 子句:指定所有从中检索数据的表。如果表

    33、没有打开,VFP 6.0显示“打开”对话框,以便指定文件位置。表打开以后,直到查询结束时才关闭。如果包含FORCE关键字,则在建立查询时会严格按照FROM子句中描述的顺序连接表;若不包含FORCE关键字,则对查询进行优化。使用FORCE关键字,可加快查询速度。DatabaseName!用来指定数据的名称。当包含表的数据库不是当前数据库时,必须指定数据库名称,并且应在数据库名称之后表名之前加上感叹号(!)分隔符。例如,“图书馆管理!sj”表示数据管理数据库的sj表。2022-10-19(2)SELECT-SQL语句的语法格式(续)【例4-16】对图书馆管理数据库,使用FROM子句,查看所有读者的

    34、编号、姓名和性别。其中,SELECT子句指定要查询的字段名称,dz.dzbh、dz.dzxm和dz.dzxb分别对应dz表中的编号、姓名和性别。FROM子句表示要查询的字段来自“图书馆管理”数据库的dz表。SELECT dz.dzbh,dz.dzxm,dz.dzxb;FROM dz注意:下面的SELECT语句和上面的语句具有相同的效果:SELECT dz.dzbh,dz.dzxm,dz.dzxb;FROM 图书馆管理!dz 2022-10-194.定义查询结果(1)使用排序选项排序能决定查询输出结果中记录或行的顺序。例如,可按书籍的价格以升序或降序方式对书籍记录进行排序。利用排序依据选项卡可设

    35、置查询的排序次序。在“排序依据”选项卡中,“选定字段”可选择要用来排序的关键字段。选定后,添加到“排序条件”框,“排序条件”框中字段的次序决定了查询结果排序时的条件,第一个字段决定了主排序次序,其余字段决定了第二排序次序。例如,在“排序条件”框中的字段顺序是sj.jg、sj.ys,则查询结果将首先按sj.jg进行排序,如果sj表中有一个以上的记录具有同样的jg字段值,这些记录则再按ys进行排序。2022-10-194.定义查询结果(续)【例4.17】建立查询按书籍价格从低到高排序。观察例4.15的查询结果,可以发现其结果并没有完全按书籍价格的高低输出,若要使输出按书籍价格从低到高排列,可按以下

    36、步骤操作:1)打开查询设计器,首先选择“排序依据”选项卡。其中,“选定字段”列出了可用来排序的字段,供用户选择,“排序条件”是用户已选择好的用来排序的字段。2)从“选定字段”框中选定用来排序的字段,由于本例要按书籍价格从小到大的顺序排序,所以应选择字段sj.jg,然后单击“添加”按钮,把它移到“排序条件”框中。3)从“排序选项”的两个单选按钮“升序”和“降序”中选择一个,本例选择“升序”。4)单击常用工具栏中的“运行”按钮。将查询结果同例4.15比较。2022-10-194.定义查询结果(续)对查询结果进行排序时,在对应的SELECT-SQL命令中可包括ORDER BY子句,它的格式如下:OR

    37、DER BY Order_itemASC|DESC 其中,Order_item是排序条件框中选定的排序字段,字段间用逗号(,)分隔。另外,Order_item也可以是一个数字表达式,表示查询结果中列的位置(最左边列的编号为1)。ASC指定查询结果根据排序以升序排序,DESC指定以降序排列,缺省时为升序。如果不使用ORDER BY子句指定查询结果的排列顺序,则查询结果不排序。例4.17对应的SELECT-SQL语句如下:SELECT sj.sjmc,sj.jg,sj.ys;FROM 图书馆管理!sj ORDER BY sj.jg2022-10-19(2)给字段添加说明标题为使查询结果易于阅读和理

    38、解,可以给字段添加说明标题,又称别名。给前面设计的“书籍价格”添加说明标题,操作步骤如下:1)打开“书籍价格”查询。2)在“函数和表达式”文本框中键入字段名,接着输入AS和说明标题,如下所示:sj.sjmc AS 书籍名称3)单击“添加”按钮,在“选定字段”框中放置带有别名的字段。4)重复步骤2)、3),分别给sj.jg和sj.ys添加说明标题“书籍价格”和“书籍页数”。5)单击“运行”按钮,查询结果中各字段名称已变成相应的汉字说明。对应的SELECT语句如下:SELECT sj.sjbh AS 书籍编号,sj.jg AS 书籍价格,sj.ys AS 书籍页数;FROM 图书馆管理!sj202

    39、2-10-19(3)使用选择条件选择数据库或表中符合条件的一部分记录而不是全部记录是查询的重要任务。例如,要查询一定日期范围内的借书记录、查询所有女性读者的基本情况等。在查询设计器中,“筛选”选项卡可确定用于选择记录的字段和比较准则,以及输入与该字段进行比较的示例值。设置筛选条件是指设置筛选的逻辑表达式,这个表达式由字段、操作符和数值组成。逻辑表达式主要有下述形式:字段 操作符 表达式 其中,字段是要查询的表中的字段。操作符的含义及使用示例如表4-4所示。2022-10-19(3)使用选择条件(续)在表4-4中,Like筛选操作符的含义是查找每个与字符表达式相匹配的字段。在字符串表达式中可使用

    40、百分号“%”和下划线“_”通配符,下划线表示字符串中的任意一个字符,百分号表示任意长度的字符串。操作符操作符比较关系比较关系举例举例=相等相等xk.cj=60,xk.kcbm=02=完全相等完全相等xk.cj=60,xk.kcbm=02Like不精确匹配不精确匹配xk.xh LIKE 19964%,查询所有学号前五位是查询所有学号前五位是“19964”的学的学生生大于大于xk.cj 60,xk.kcbm 02=大于等于大于等于xk.cj=60,xk.kcbm=02小于小于xk.cj 60,xk.kcbm 02=小于等于小于等于xk.cj=60,xk.kcbm=30,选择“否”按钮后,变为sj.

    41、jg=操作符。4)在“实例”文本框中输入30。对应的SELECT语句如下:SELECT sj.sjmc AS 书籍名称,sj.jg AS 书籍价格,sj.ys AS 书籍页数;FROM 图书馆管理!sj;WHERE sj.jg=302022-10-19(3)使用选择条件(续)【例4.19】在例4.15创建的“书籍价格”查询中,使用LIKE操作符,筛选出书籍名为软件工程的记录。1)打开“统计学生成绩”查询,并选择“筛选”选项卡。2)在“字段”下拉列表中选择sj.sjmc字段。3)在“条件”下拉列表中选择LIKE操作符。4)在“实例”文本框中输入“软件工程”。对应的SELECT语句如下:SELEC

    42、T sj.sjmc,sj.jg,sj.ys;FROM 图书馆管理!sj WHERE sj.sjmc LIKE 软件工程2022-10-19(4)多个筛选条件的组合使用实际使用中,经常需要查询某一范围内的记录。例如,书籍价格在30元以下或者50元以上的所有书籍,或者书籍页数在300页以上且价格在40元以上的书籍等。由于可能同时需要输入两个筛选条件,因此需要考虑筛选条件之间的关系问题。在VFP中,筛选条件间共有三种关系,即与(and)、或(or)和否(not)。例如,“书籍价格在30元以下或者50元以上”可写成sj.jg=50,而“书籍页数在300页以上且价格在40元以上的书籍”可写成sj.ys=

    43、300 and sj.jg=40。在“筛选”选项卡中,可同时输入多个筛选条件,每一个筛选条件占一行,行与行之间的缺省逻辑关系是“与”(AND),当选择其他关系时,可通过逻辑项对应行的列表来选择。2022-10-19(4)多个筛选条件的组合使用(续)【例4.20】设置“与”筛选条件。前面已经分析过,“书籍页数在300页以上且价格在40元以上的书籍”,可看成两个筛选条件的组合,即sj.ys=300 and sj.jg=40。首先建立筛选条件sj.ys=300,然后再建立另一个筛选条件sj.jg=40。由于两个筛选条件之间是“与”的关系,因此不用设置“逻辑”选项。对应的SELECT语句如下:SELE

    44、CT sj.sjmc,sj.jg,sj.ys;FROM 图书馆管理!sj WHERE sj.ys=300 and sj.jg=40 2022-10-19(4)多个筛选条件的组合使用(续)【例4.21】设置“或”(OR)筛选条件。统计“书籍价格在30元以下或者50元以上”的所有书籍,其筛选条件可写成sj.jg=50。在“筛选”选项卡中首先建立两个筛选条件,第一个是sj.jg=50。由于两个筛选条件是“或”关系,因此,还要在第一个筛选条件对应的“逻辑”下拉列表中选择OR运算符。对应的SELECT语句如下:SELECT sj.sjmc,sj.jg,sj.ys;FROM 图书馆管理!sj WHERE

    45、sj.jg=502022-10-19(4)多个筛选条件的组合使用(续)【例4.22】设置“非”(NOT)筛选条件。查询“所有书名不是软件工程的书籍”。考察“所有书名不是软件工程的书籍”和“所有书名是软件工程的书籍”是互为否定的。“所有书名是软件工程的书籍”可写成“LIKE”软件工程“”,可先设置筛选条件“LIKE”软件工程“”,然后单击该筛选条件行对应的“否”按钮。对应的SELECT语句是:SELECT sj.sjmc,sj.jg,sj.ys;FROM 图书馆管理!sj WHERE sj.sjmc NOT like 软件工程 2022-10-195定向输出查询结果VFP允许查询结果以不同的形式

    46、输出。例如,可输出到文件、打印机、临时表和屏幕等。缺省形式是将查询结果显示在浏览窗口中。选择查询结果输出形式的方法是:(1)从“查询”菜单中选择“查询去向”命令,打开“查询去向”对话框,如图4-14所示。打开该对话框的另一个方法是在“查询设计器”工具栏中单击“查询去向”按钮。(2)“查询去向”对话框中列出了7个查询结果的输出形式,且均以按钮形式给出。选择需要的按钮,并单击“确定”按钮即可。图图4-14 “查询去向查询去向”对话框对话框2022-10-195定向输出查询结果(续)定向输出对应的SELECT子句是INTO Destination子句。表4-5为该子句常用格式。如输出到临时表“学生成

    47、绩清单”中可写成“INTO CURSOR 学生成绩清单”,输出到活动窗口中,可写成TO SCREEN。如果只想暂时保存结果,可将它们发送到数组或临时表中。若要永久保存结果,将它发送到一个表中。查询结果输出形式SELECT子句格式独立的表INTO TABLE 表名称数组INTO ARRAY 数组名称临时表INTO CURSOR 临时表名称活动窗口TO SCREEN浏览窗口系统缺省值表表4-5 定向输出查询结果子句形式定向输出查询结果子句形式2022-10-194.4.2 运行查询1运行查询在完成了查询设计并指定了输出目的地后,可以单击“运行”按钮启动该查询,也可以在命令窗口使用DO命令。例如,运

    48、行“数籍价格”查询,可在命令窗口输入:DO 书籍价格.qpr 2022-10-192分组查询(1)分组查询。所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可以完成基于一组记录的计算。【例4.23】将读者按家庭住址分组。操作步骤如下:1)新建一个“按读者住址查询”,选择读者表的所有字段。2)选择“分组依据”选项卡,选择dz.jtzz,并单击“添加”按钮。3)为保证分组正确,在“排序依据”选项卡中设置排序条件。例如dz.dzbh。4)运行查询,结果如图4-15所示。2022-10-19(1)分组查询(续)【例4.24】统计在书籍表中每个出版社出版的书籍的数目。操作步骤如下:1)建立一个查询

    49、,选择sj表中的所有字段,在“分组依据”选项卡中选择sj.cbs,在“排序依据”选项卡中选择sj.sjbh。2)在“字段”选项卡中,在“函数和表达式”框中输入“count(sj.cbs)as 数量”,并单击“添加”按钮。3)运行查询,其结果如图4-16所示。图图4-16 统计出版社的出版数量统计出版社的出版数量2022-10-19(2)为查询增加计算字段【例4.25】统计每个出版社的所出书中价格最低的书籍,可按如下步骤操作:1)创建一个查询,选择书籍表中的sj.sjmc、sj.sjzz、sj.jg,sj.ys。2)选择“字段”选项卡,在“函数和表达式”文本框中输入“MIN(sj.jg)AS最便

    50、宜的图书”。3)单击“添加”按钮。4)选择“分组依据”选项卡,选择sj.cbs,并单击“添加”按钮。5)若需要排序,此时可在“排序依据”选项卡中设置排序条件,如sj.ys。“MIN(sj.jg)AS 最便宜的图书”是一个函数表达式,在查询结果中以“最便宜的图书”名称给出。此列不是表中原有的字段,而是在生成查询的过程中经过计算得到的,又称为计算列或计算字段。2022-10-19(2)为查询增加计算字段(续)VFP提供了“字符串、数学、逻辑和日期”4类函数。表4-6列出了在SELECT-SQL中经常使用的列函数。列函数均产生一个单值,因此以下查询求出所有图书的总价格。SELECT sj.mc sj

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第4章结构化查询语言SQL和报表课件.ppt
    链接地址:https://www.163wenku.com/p-3861221.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库