数据库查询和视图.ppt

上传人:本田雅阁 文档编号:3185088 上传时间:2019-07-22 格式:PPT 页数:69 大小:841.51KB
返回 下载 相关 举报
数据库查询和视图.ppt_第1页
第1页 / 共69页
数据库查询和视图.ppt_第2页
第2页 / 共69页
数据库查询和视图.ppt_第3页
第3页 / 共69页
数据库查询和视图.ppt_第4页
第4页 / 共69页
数据库查询和视图.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《数据库查询和视图.ppt》由会员分享,可在线阅读,更多相关《数据库查询和视图.ppt(69页珍藏版)》请在三一文库上搜索。

1、第3章 数据库、查询和视图,3. 1 数据库的基本操作,数据库(DataBase)就是按一定的组织结构存储在计算机内可共享使用的相关数据的集合。 在Visual FoxPro中,数据库包含有数据库表、视图等数据实体,又提供了数据字典、各种数据保护和数据管理功能,可将数据库看成是个收集表的“容器”。 3.1.1 数据库的建立 数据库的建立有两种方法:使用“数据库设计器”和使用建立数据库的命令 。,用数据库设计器建立数据库 菜单【文件】【新建】打开“新建”对话框,选定“文件类型”为【数据库】选项按钮单击【新建文件】打开“创建”对话框,在“数据库名”文本框中输入所建的数据库名,单击【保存】按钮建立数

2、据库,同时打开“数据库设计器”窗口 。 利用“数据库设计器”提供的工具或快捷菜单,可以方便的建立数据库表或建立视图,也可以将自由表添加到数据库中,成为数据库表,以及建立数据库表间的永久关联关系等数据库操作。 例3-1 利用“数据库设计器”,新建数据库rsgzk.dbc,并将表rsb.dbf、gzb.dbf、bmdm.dbf和zz.dbf添加到新数据库中,成为数据库表。 (1)按照表4-7和表4-8建立部门代码表(bmdm)和增资表(zz)结构,并输入记录数据。 (2)建立数据库rsgzk.dbc。 (3)添加表rsb.dbf、gzb.dbf、bmdm.dbf和zz.dbf 。,用命令方式建立数

3、据库 命令格式: CREATE DATABASE 功能:建立一个数据库同时打开它。 例如建立gzk.dbc的命令如下: CREATE DATABASE gzk 3.1.2 数据库操作命令 打开数据库命令 命令格式: OPEN DATABASE 功能:打开一个数据库。 例如打开数据库gzk.dbc的命令如下: OPEN DATABASE gzk,关闭数据库命令 命令格式: CLOSE DATABASE ALL 功能:关闭当前的数据库和它的表。选择ALL表示关闭所有打开的数据库和它们的表、所有的自由表以及索引文件,返回1号工作区。 例如关闭当前数据库gzk.dbc的命令如下: CLOSE DATA

4、BASE 向数据库中添加表命令 命令格式: ADD TABLE 功能:向当前数据库添加一个自由表。 例如向数据库gzk.dbc添加自由表gzb1.dbf(它为gzb.dbf的复制表)和zz1.dbf(zz.dbf的复制表) OPEN DATABASE gzk ADD TABLE gzb1 ADD TABLE zz1,从数据库中移去表命令 命令格式: REMOVE TABLE 功能:从当前数据库中移去一个表。 从数据库gzk.dbc中移出表zz1.dbf。 OPEN DATABASE gzk REMOVE TABLE zz1 &在确认对话框选“是”,移出数据库表zz1 删除数据库命令 命令格式:

5、 DELETE DATABASE 功能:从磁盘中删除一个数据库文件。 从磁盘中删除数据库文件gzk.dbc。 CLOSE DATABASE ALL &关闭所有打开的数据库 DELETE DATABASE gzk.dbc &在确认对话框选“是”,删除数据库,浏览数据库文件 浏览数据库rsgzk.dbc的命令如下: CLOSE DATABASE ALL &浏览前首先关闭.DBC文件 USE rsgzk.dbc &打开数据库文件必须指明扩展名. DBC BROWSE,3.1.3 数据词典 数据字典就是包含数据库中所有表信息的一个表。存储在数据字典中的信息称之为元数据,包括长表名、长字段名、有效性规则

6、、触发器,表间永久关系以及数据库对象的定义等。 使用数据字典,可以设置字段级和记录级的有效性检查,保证主关键字字段内容的唯一性。 设置字段级规则 字段级规则主要包括显示属性、字段有效性和字段注释三部分。,“格式”文本框中输入格式化代码,确定该字段在浏览窗口、表单和报表中显示的格式,它是对字段格式进行整体控制的。,字段级规则设置,“输入掩码”文本框中键入掩码代码,输入掩码是按位来控制格式的。,显示的标题改为自己希望的标题,字段有效性就是用于数据输入正确性的检验。,说明该字段的用途、特性、使用说明等补充信息,设置记录级规则 记录级规则主要包括记录有效性、触发器的设置和表注释。,“教授的基本工资要1

7、650元,其他职工为: 550基本工资3000“,职称=“教授“.AND.基本工资=1650.OR.职称#“教授“.AND.(基本工资=550.AND.基本工资=3000),每逢星期一才可做插入、追加、更新和删除记录的操作: CDOW(DATE()=“Monday“,建立表间永久关系 永久关系是数据库表间的关系,它们存储在数据库文件中。 利用“数据库设计器”来建立永久关系: 在“数据库设计器”中,用鼠标从一个表的主索引或候选索引拖到另一个表的任一索引,当出现表间关联连线时就表示关系已建立。用鼠标右键单击连线,弹出快捷菜单,可以进行删除关系、编辑关系和编辑参照完整性操作。 例3-2在例3-1的数

8、据库rsgzk.dbc中的各表建立永久关系。 (1) 建立各表的索引。 (2)利用数据库设计器,画出表间关系连线。 建立表rsb与表gzb的连线:形成一条一一关系连线 建立表rsb与表zz的连线:形成一条一多关系连线 建立表rsb与表bmdm的连线 :形成一条多一关系连线,一一关系连线,多一关系连线,一多关系连线,参照完整性 参照完整性是控制数据库中不同表的主关键字和外部关键字之间数据一致性的关系规则。参照完整性则属于表间规则。 用户可以通过“参照完整性生成器”来进行规则设置,从而控制相关表的更新、删除和插入记录的数据完整性。 打开“参照完整性生成器”窗口 双击两表之间的连线,在“编辑关系”对

9、话框中选定【参照完整性】按钮。 设置更新、删除、插入三个规则 更新规则:是指修改父表中关键字值时所使用的规则,包括级联、限制和忽略3种。 删除规则:是指删除父表中的记录时使用的规则,包括级联、限制和忽略3种。 插入规则:是指在子表中插入新的记录,或更新已存在的记录时所用的规则,包括限制和忽略2种。,在浏览bmdm表时将计算机系的代码修改为A04,则子表rsb中部门是计算机系的所有记录的部门代码字段值都被更新为“A04”。,查询与视图,视图,视图操作,视图建立,3.2 查询命令,顺序查询命令 顺序查询是在表中按记录的物理顺序依次进行的查询。 命令格式: LOCATE FOR WHILE 功能:在

10、当前表的指定范围中搜索满足条件的第一条记录。 (1)缺省表示ALL。 (2)找到一条满足条件的记录后,要继续往下查找满足条件的其它记录就必须用CONTINUE命令。,例3-3 在rsb.dbf中查找职称为“讲师”的记录。 USE rsb LOCATE FOR 职称=“讲师“ DISPLAY &显示查找到职称是“讲师”的第一条记录 CONTINUE &继续找下一条记录 DISPLAY &显示查找的记录 重复CONTINUE和DISPLAY命令就可以找到所有职称为“讲师”的记录。,索引查询命令 索引查询利用索引文件实现的快速查询。VFP提 供了 SEEK和FIND两条命令进行索引查询 。 命令格式

11、: SEEK 功能:在当前表的主控索引中按索引关键字搜索满足表达式的第一条记录。 说明:SEEK命令按索引关键字搜索,若找到,记录指针指向该记录。FOUND()函数的值为.T.,表示查询成功。RECNO()函数返回当前记录号。若找不到满足条件的记录,则记录指针指向文件结束处(即EOF()返回.T.值),FOUND()函数的值为.F.。RECNO()函数返回记录总数加1的值。,例3-4 在rsb.dbf中查询姓名为陈宏的职工记录;查询出 生日期为1969年7月5日出生的职工记录。 USE rsb SET ORDER TO TAG xm SEEK “陈宏“ ? RECNO() DISPLAY SE

12、T ORDER TO TAG csrq SEEK 1969/7/5 ? FOUND() DISPLAY,3.3 统计命令,记录数统计命令 命令格式: COUNT FOR WHILE ; TO 功能:计算指定范围内满足条件的记录个数。 例3-5 统计rsb.dbf中“讲师”的人数。 USE rsb COUNT FOR 职称=“讲师“ TO jsrs ? jsrs,求和命令 命令格式: SUM FOR ; WHILE TO |TO ARRAY功能:对当前表的各个数值表达式分别求和。 例3-6 对表gzb.dbf的奖励工资字段和实发工资字段进 行求和统计,结果分别存放到变量s1和s2中。 STORE

13、 0 TO s1, s2 USE gzb SUM 奖励, 实发工资 TO s1, s2 ? “奖励“,s1, “实发工资“,s2,求平均值命令 命令格式: AVERAGE FOR WHILE TO |TO ARRAY 功能:对当前表的各个数值表达式分别求平均值。 例如,求基本工资的平均值可用如下命令序列: USE gzb AVERAGE 基本工资 TO aversal ? “平均基本工资“,aversal,计算命令 命令格式: CALCULATE FOR WHILE TO |TO ARRAY 功能:分别统计当前表中表达式表的值。,例3-7 统计gzb.dbf中基本工资的平均值和实发工资的总 和

14、,结果分别存放到av和su这两个变量中。 USE gzb CALCULATE AVG(基本工资),SUM(实发工资) TO av,su ? av,su,分类汇总命令 分类汇总是将数据表中的记录按某个字段进行排序分 类,再对其它需要汇总的字段进行汇总统计。 命令格式: TOTAL TO ON FIELDS FOR WHILE 功能:对当前表进行分类汇总,汇总的结果存入一个新表。汇总时把值相同的一组记录汇总成一个记录,其中指定的数值型字段值取该字段的汇总值,其它字段取该组记录中的第一条记录。在新表中,记录按的取值进行排列。,例3-8 对zz.dbf表的增资按编号进行分类汇总,来查询每 位职工增加工

15、资的总和,并将结果存入zzhz.dbf表中。 USE zz INDEX ON 编号 TAG zzbh TOTAL ON 编号 TO zzhz USE zzhz BROWSE USE,3.4 多表操作,多工作区操作 工作区: Visual FoxPro最多同时打开32767个数据表,每个打 开的表都在内存中开辟一个存储区域,这个存储区 域就叫做工作区。Visual FoxPro规定在每个工作区 上只能打开一个表,所以就有32767个工作区可使用, 编号为132767 。 当前工作区 : 系统任何时候只能选择一个工作区进行操作,当前正 在操作的工作区称为当前工作区,在当前工作区打 开的数据表称为当

16、前表 。,别名 表别名是VFP用来指定在一个工作区中打开的表 的名称。打开一个表时,VFP自动使用文件名作为默 认的表别名。 系统将前 10 个工作区中指定的默认别名是A到 J,工作区 11 到 32767 中指定的别名是 W11 到 W32767。 用户为表rsb.dbf指定一个别名rs: USE rsb ALIAS rs,工作区的选择 命令格式: SELECT | 功能:选择由工作区号或别名所指的工作区作为当前 工作区。系统启动后默认1号工作区为当前工作区。 说明: (1)工作区号取值为132767。函数SELECT()能够返回当前工作区的区号。 (2)当工作区号为0时,即命令“SELEC

17、T 0”表示选取尚未使用的最低工作区。 对非当前工作区的表的字段进行操作时,必须在该字 段名前加上前缀,表示为: 别名.字段名 别名-字段名,例3-9工作区操作示例。 CLOSE ALL ?SELECT( ) &显示当前工作区号1 USE rsb ALIAS rs &在当前工作区打开表rsb,并指定其别名为rs GO 5 DISPLAY SELECT 0 &2号工作区是未使用的最低工作区,选取2号工作区 USE gzb &在2号工作区打开表gzb GO 2 DISPLAY ?编号, rs.编号,数据工作期的使用 “数据工作期”是一个用来设置工作环境的交互操作窗口。 利用“数据工作期”窗口打开或

18、显示表或视图、建立表间 临时关系、设置工作区属性等操作。 打开命令:SET VIEW ON 关闭命令:SET VIEW OFF 窗口组成如下图所示:,打开的表或视图,显示表间临时关系,弹出“工作区属性”对话框,可以修改表的结构,选择索引文件和字段,并且定义数据筛选条件等多种操作,打开浏览窗口,供浏览或编辑,建立表间临时关系,建立或取消两个关联表的一多关系,例3-10 利用“数据工作期”窗口,完成下面操作: (1)分别打开rsb.dbf和bmdm.dbf表; (2)对rsb.dbf要求浏览查询未婚职工信息,并只输出未婚职工的姓名、性别、出生日期、职称和婚否五个字段内容。 (3)以rsbgzq.v

19、ue保存上述工作环境。 操作步骤: 步骤一:打开数据工作期:选择菜单【窗口】【数据工作期】,出现“数据工作期”窗口。 步骤二:打开表:单击【打开】按钮在“打开”对话框中选定rsb.dbf按【确定】返回数据工作期窗口。同样方法打开bmdm.dbf。,步骤三:设置rsb.dbf属性:在“别名”列表框选定rsb表【属性】在“工作区属性”对话框(如图5-2所示)进行下面设置: (1)设置数据过滤器:在“数据过滤器”文本框中输入过滤条件NOT 婚否,完成对未婚记录条件的设置。 (2)设置字段筛选。 步骤四:浏览rsb.dbf表 步骤五:选择【文件】菜单的【另存为】命令在“保存视图为”文本框中输入rsbg

20、zq单击【保存】按钮。,建立表间临时关联 关联的概念:所谓关联,就是使不同工作区的记录指针建立一种联动关系,当一个表的记录指针移动时,与它相关联的表的记录指针也随之移动。 表间关联关系主要有4种类型: 一一关系:是指父表A中的任何一条记录仅仅对应子表B中的一条记录,反之子表B中的任何一条记录亦对应父表A中的一条记录的关联。 多一关系:是指父表A中的多条记录对应子表B中的一条记录的关联。 一多关系:是指父表A中的一条记录对应子表B中的多条记录的关联。 多多关系: Visual FoxPro中支持前3种关联关系 ,对多多关系要将其中一个表分解,形成多一关系或一多关系。,建立表间临时关联的2种方法:

21、 建立关联的命令 命令格式: SET RELATION TO INTO , INTO ADDITIVE 功能:以当前表为父表与其它一个或多个子表建立关联。 利用“数据工作期”建立关联 操作步骤: 步骤一:打开需建立关联的父表和子表。 步骤二:建立子表关键字索引或选定主控索引。 步骤三:选定父表为当前表,然后建立与子表的关联(系统默认为多一关系),如果是一多关系,还要执行第4步。 步骤四:建立关联的一多关系。,例3-11设置rsb.dbf和gzb.dbf的一一关系和rsb.dbf和bmdm.dbf的多一关系,并浏览查询职工的编号, 姓名, 职称, 岗位津贴, 所在部门名称等信息。 SELECT

22、1 USE gzb INDEX ON 编号 TAG bh SELECT 2 USE bmdm INDEX ON代码 TAG dm SELECT 3 USE rsb SET RELATION TO 编号 INTO gzb,部门代码 INTO bmdm BROWSE FIELDS 编号, 姓名, 职称, gzb.岗位津贴, bmdm.部门名称,例3-12利用“数据工作期”建立rsb.dbf分别与bmdm.dbf的多一关系,与zz.dbf的一多关系,然后使用浏览命令查询所有职工编号、姓名、基本工资,部门名称和增资情况。 操作步骤: 步骤一:打开表:选择菜单【窗口】【数据工作期】,然后分别打开rsb.

23、dbf、bmdm.dbf和zz.dbf。 步骤二:设置子表索引:为子表bmdm.dbf按代码字段建立索引,或选定其为主控索引(已有索引存在),为子表zz.dbf按编号字段建立索引或选定其为主控索引。 步骤三:以rsb.dbf为父表建立与bmdm.dbf子表的多一关系。 步骤四:建立rsb.dbf与zz.dbf子表的一多关系。 步骤五:使用下面的浏览命令: BROWSE FIELDS 编号, 姓名, 基本工资, bmdm.部门名称,zz.增资,3.5关系型数据库标准语言SQL,SQL是一种综合的、通用的、功能强大的关系数据库语言,它包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言

24、(DCL)三大部分。 数据定义语言:用于定义、修改和撤消数据库、表对象等。 数据操纵语言:用于数据库中表记录的修改和检索等。 数据控制语言:用于数据访问权限的控制等。,3.5.1 SQL的数据定义命令,建立表 修改表的结构 删除表,建立表: 命令格式: CREATE TABLE | DBF NAME FREE ( (,) NULL|NOT NULL CHECK ERROR DEFAULT PRIMARY KEY | UNIQUE REFERENCES TAG NOCPTRANS , , PRIMARY KEY TAG |, UNIQUE TAG , FOREIGN KEY TAG NODUP

25、REFERENCES TAG , CHECK ERROR )| FROM ARRAY 数组名 功能:由给定的字段参数建立一个数据表。,例3-13建立人事管理数据库rsgl.dbc,并用SQL命令建立rs.dbf(编号C(4),姓名C(8),身份证号C(18),性别C(2),出生日期D,基本工资N(9,2),简历M),表中编号字段为主关键字。 CLOSE DATABASES ALL 出生日期 D,基本工资 N(9,2),简历 M) &在rsgl数据库中创建表rs MODIFY DATABASES &打开“数据库设计”窗口,显示rs表,修改表的结构 (1)增加或修改字段 命令格式: ALTER T

26、ABLE ADD | ALTER COLUMN ( ,) NULL | NOT NULLCHECK ERROR DEFAULT PRIMARY KEY | UNIQUE REFERENCES TAG NOCPTRANS NOVALIDATE 功能:增加或修改字段,增加新的字段,修改原有的字段,例3-14 继续给上例表rs.dbf完成下列操作: (1)增加1个“籍贯C(8)”字段。 (2)将原来的“编号”字段的宽度由4改为6。 (3)修改“基本工资”字段的有效性规则,要求基本工资不小于200,出错信息提示为“最低工资额为200元”。 (4)将“编号”字段设置成主索引字段。 OPEN DATABA

27、SES rsgl ALTER TABLE rs ADD 籍贯 C(8) ERROR “最低工资额为200元“ MODIFY STRUCTURE ALTER TABLE rs ADD PRIMARY KEY 编号 TAG bh &设置成主索引字段 MODIFY STRUCTURE CLOSE DATABASES ALL,(2)设置字段属性 命令格式: ALTER TABLE ALTER|DROP COLUMN NULL | NOT NULL SET DEFAULT SET CHECK ERROR DROP DEFAULT DROP CHECK NOVALIDATE RENAME COLUMN T

28、O 功能:定义、修改、删除字段及有效性规则和默认值。,修改字段,删除字段,例3-15 继续给表rs.dbf完成下列操作: (1)修改“性别”字段的默认值为“男”。 (2)删除“基本工资”字段的有效性规则。 (3)删除“籍贯”字段。 (4)将“基本工资”字段改名为“工资”字段。 OPEN DATABASES rsgl ALTER TABLE rs ALTER 性别 SET DEFAULT “男“ MODIFY STRUCTURE ALTER TABLE rs ALTER 基本工资 DROP CHECK MODIFY STRUCTURE ALTER TABLE rs DROP 籍贯 MODIFY

29、STRUCTURE ALTER TABLE rs RENAME COLUMN 基本工资 TO 工资 MODIFY STRUCTURE CLOSE DATABASES ALL,删除表 (1)将数据库表从数据库中移出 命令格式: REMOVE TABLE | ? DELETE RECYCLE 功能:从数据库中移去表。 例3-16 在rsgl数据库中移去rs.dbf表。 OPEN DATABASES rsgl REMOVE TABLE rs &将表rs.dbf从rsgl.dbc中移 去,成为自由表 MODIFY DATABASES,将表删除到回收站,表示从磁盘上删除数据表,(2)将表从数据库和磁盘上

30、删除的DROP TABLE命令 命令格式: DROP TABLE | | ? RECYCLE 功能:从数据库和磁盘上将表直接删除掉。 例3-17 将rs.dbf表复制rs1.dbf,然后将rs1.dbf添加到rsgl数据库中,然后再将其从数据库和磁盘中一起删除。 CLOSE ALL USE rs COPY TO rs1 &复制成表rs1.dbf OPEN DATABASES rsgl ADD TABLE rs1 &添加表rs1.dbf到rsgl.dbc MODIFY DATABASES &显示数据库 DROP TABLE rs1 &将表从数据库和磁盘上一起删除 CLOSE DATABASES

31、DIR *.dbf,3.5.2 SQL的数据操纵命令,SQL的数据操纵命令主要包括三个部分: 记录的插入 记录的更新 记录的删除,插入记录 命令格式: INSERT INTO ( , , .) VALUES ( , , .) 或 INSERT INTO FROM ARRAY | FROM MEMVAR 功能:在表的末尾追加一条新的记录。 例3-18 向表rs.dbf表插入一条记录。 OPEN DATABASES rsgl INSERT INTO rs(编号,姓名,性别,出生日期) VALUE; (“0101“,“李明“,“男“,1965/05/06) LIST CLOSE DATABASES,

32、更新记录 命令格式: UPDATE SET = , = . WHERE 功能:更新满足条件的记录,该记录指定字段值由相对应的表达式值来代替。 例3-19 将表rsb.dbf复制成rsb1.dbf,然后对表rsb1.dbf中的职称为“讲师”的职工基本工资都增加35元。 USE RSB LIST COPY TO rsb1 UPDATE rsb1 SET 基本工资=基本工资+35 WHERE 职称=“讲师“ SELECT rsb1 LIST USE,删除记录 命令格式: DELETE FROM WHERE 功能:逻辑删除表中满足条件的记录,即对做满足条件的记录删除标志。 例3-20 将表rsb1.d

33、bf中姓名是“陈宏”的记录删除。 DELETE FROM rsb1 WHERE 姓名=“陈宏“ &做删除标记 SELECT rsb1 LIST PACK &彻底删除有删除标记的记录 LIST USE,3.5.3 SQL的数据查询命令,Visual FoxPro有两种方式来实现SQL查询: 一、使用命令操作 二、界面操作,一、使用命令操作 命令格式: SELECT ALL | DISTINCT TOP PERCENT . AS , . AS FROM FORCE ! AS INNER | LEFT OUTER | RIGHT OUTER | FULL OUTER JOIN ! AS ON INT

34、O | TO FILE ADDITIVE | TO PRINTER PROMPT | TO SCREEN PREFERENCE NOCONSOLE PLAIN NOWAIT WHERE AND AND|OR AND|OR GROUP BY , HAVING UNION ALL ORDER BY ASC | DESC , ASC | DESC 功能:从一个或多个数据表中检索一个记录集合(即表格),集合由指定的字段名组成,形成一个查询结果表。,查询全部或者部分字段内容 例3-21 在rsb.dbf中查询显示所有职工编号、姓名、性别、年龄、职称和基本工资字段内容。 SELECT 编号, 姓名, 性别

35、, YEAR(DATE()-YEAR(出生日期) AS 年龄, ; 职称, 基本工资 FROM rsb 例3-22 查询bmdm.dbf中的全部字段以及所有记录,并将结果输出在屏幕上。 SELECT * FROM bmdm TO SCREEN 例3-23 查询表rsb.dbf中基本工资字段的最高值、最低值、平均值,合计值以及参与统计的人数。 SELECT MAX(基本工资) AS 最高, MIN(基本工资) AS 最低, ; AVG(基本工资) AS 平均, SUM(基本工资) AS 合计, COUNT(*) AS 统计人数 ; FROM rsb,按条件查询记录 例3-24 查询表rsb.db

36、f中“陈”姓职工的记录,要求显示编号,姓名,性别,出生日期和职称字段。 SELECT 编号, 姓名, 性别, 职称, 出生日期 FROM rsb ; WHERE 姓名 LIKE “陈%“ 例3-25 查询表rsb.dbf中基本工资在1500元2000元的职工记录,要求显示编号,姓名,职称和基本工资字段。 SELECT 编号, 姓名, 职称, 基本工资 FROM rsb ; WHERE 基本工资 BETWEEN 1500 AND 2000 例3-26 从表rsb.dbf和gzb.dbf中查询职工的编号,姓名,职称,岗位津贴和奖励工资。 SELECT rsb.编号, 姓名, 职称, 岗位津贴, 奖

37、励 FROM rsb, gzb ; WHERE rsb.编号=gzb.编号,查询结果分组 例3-27 统计表rsb.dbf中各类职称的人数,并求出基本工资的最高、最低和平均值。 SELECT 职称, COUNT(*) AS 人数, MAX(基本工资) AS 最高, ; MIN(基本工资) AS 最低, AVG(基本工资) AS 平均 ; FROM rsb ; GROUP BY 职称 例3-28 按职称分组统计表rsb.dbf中基本工资的最高值、最低值和平均值,只显示基本工资平均值大于1000元统计结果。 SELECT 职称, 性别, MAX(基本工资) AS 最高, MIN(基本工资) AS

38、最低,; AVG(基本工资) AS 平均 ; FROM rsb; GROUP BY 职称 HAVING 平均1000,查询结果排序 例3-29 查询表rsb.dbf中姓名,性别,出生日期和职称字段内容,结果按出生日期字段的降序排序输出。 SELECT 姓名, 性别, 出生日期, 职称 ; FROM rsb ; ORDER BY 出生日期 DESC 例3-30 从表rsb.dbf和gzb.dbf中查询职工的姓名,性别,职称,基本工资和保险内容,先按性别字段升序,然后按职称字段降序,最后按保险字段的降序排序输出。 SELECT 姓名, 性别, 职称, rsb.基本工资, 保险 ; FROM rsb

39、, gzb WHERE rsb.编号=gzb.编号; ORDER BY 性别, 职称 DESC, 保险 DESC,嵌套查询 例3-31 列出部门代码是“A01”的职工的工资详细清单。 SELECT * FROM gzb WHERE 编号 IN (SELECT 编号 FROM rsb WHERE 部门代码=“A01“) 查询结果输出 例3-32 查询所有“讲师”的工资情况,结果按“实发工资”降序排列,分别保存到临时表js、表js1.dbf和文本文件js2.txt。 SELECT * FROM gzb ; WHERE 编号 IN (SELECT 编号 FROM rsb WHERE 职称=“讲师“)

40、 ; ORDER BY 实发工资 DESC ; INTO CURSOR js SELECT * FROM gzb ; WHERE 编号 IN (SELECT 编号 FROM rsb WHERE 职称=“讲师“); ORDER BY 实发工资 DESC ; TO FILE js2,界面操作建立查询 使用查询向导建立查询 启动查询向导:选择菜单【文件】【新建】在“新建”对话框中选择“文件类型”中的【查询】选项,然后单击【向导】按钮 。 例3-33 利用查询向导查询rsb.dbf中职称为“讲师”的记录,要求按出生日期的升序输出编号、姓名、性别、出生日期和职称5个字段内容,并以cx.qpr保存查询设置

41、。 操作步骤:,利用“查询设计器”建立查询 利用“查询设计器”建立查询的基本步骤如下: (1)启动“查询设计器”。 (2)进行查询设置:包括添加被查询的表、设置输出字段、联结条件、记录筛选、输出排序、分组以及查询结果的去向等操作。 (3)执行查询。 (4)保存查询设置。 例3-34 从rsb.dbf和gzb.db中查询基本工资大于等于1000元的职工记录,要求输出编号、姓名、性别、职称、基本工资、岗位津贴字段,并按基本工资降序排列输出到表jbqg1000.dbf中,将查询设置保存为cx1000.qpr。,3.6 视图的建立与使用,概念: 视图是建立在数据库表之上的虚拟表,它是由数据库表或其它视

42、图的某些字段而构成的。视图中的数据存于数据库表中,本身不含数据,其数据是在打开视图时临时从源表中提取的。只有打开数据库,才能在数据库中建立和使用视图。 优点: (1)视点集中 (2)查询的简单性 (3)提高数据的安全性 (4)逻辑上的数据独立,3.6.1 建立视图的CREATE SQL VIEW命令 命令格式: CREATE SQL VIEW REMOTE CONNECTION SHARE |CONNECTION 数据源名 AS 功能:按照AS SQL-SELECT子句命令建立一个本地或远程的SQL视图,或打开“视图设计器”来建立SQL视图。 例3-35 建立一个用于统计数据库rsgzk.db

43、c中表rsb.dbf各类职称人数的视图,视图取名为zcst。 OPEN DATABASE rsgzk CREATE SQL VIEW zcst AS SELECT rsb.职称, COUNT(*) AS 人数; FROM rsb GROUP BY 职称 USE zcst BROWSE,例3-36 在数据库rsgzk.dbc中建立一个包含表rsb.dbf和表gzb.dbf的所有字段视图,视图取名rsgzst。 OPEN DATABASE rsgzk CREATE SQL VIEW rsgzst AS SELECT * FROM rsb, gzb WHERE rsb.编号=gzb.编号 USE rsgzst BROWSE,3.6.2 通过视图设计器创建视图 例3-37 在数据库rsgzk.dbc中利用视图设计器建立一个包含有编号、姓名、性别、职称、基本工资、岗位津贴和奖励字段的视图,视图取名st,并要求将岗位津贴设置为可更新源表字段,并将副教授的岗位津贴值由30改为35。,3.6.3视图的其他操作 修改视图的命令: MODIFY VIEW 删除视图的命令: DROP VIEW 视图更名的命令: RENAME VIEW 源视图名 TO 目标视图名,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1