第4章-数据库操作和SQL语言-PPT课件_第1页
第4章-数据库操作和SQL语言-PPT课件_第2页
第4章-数据库操作和SQL语言-PPT课件_第3页
第4章-数据库操作和SQL语言-PPT课件_第4页
第4章-数据库操作和SQL语言-PPT课件_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 数据库操作与SQL语言讲述数据库的概念和相关操作以及SQL结构化查询语言7/19/20221 数据库(DataBase)就是按一定的组织结构存储在计算机内可共享使用的相关数据的集合。它以文件的形式组织管理一个或多个数据文件,并被多个用户所共享,它是数据库管理系统的重要组成部分。 在Visual FoxPro中,数据库包含有数据库表、视图等数据实体,又提供了数据字典、各种数据保护和数据管理功能,可将数据库看成是个收集表的“容器”。 数据库文件的扩展名是.dbc,在建立数据库时,系统还会建立一个扩展名是.dct的数据库备注文件和一个扩展名是.dcx的数据库索引文件,因此Visual Fox

2、Pro数据库包括这3个文件。数据库基本概念7/19/202224.1 数据库基本操作4.1.1 数据库建立数据库的建立有两种方法:使用“数据库设计器”和使用建立数据库的命令 。1. 用数据库设计器建立数据库 菜单“文件” | “新建”,打开“新建”对话框,选定“文件类型”为“数据库”选项按钮,单击“新建文件”,打开“创建”对话框,在“数据库名”文本框中输入所建的数据库名,单击“保存”按钮建立数据库,同时打开“数据库设计器”窗口 。 利用“数据库设计器”提供的工具或菜单,可以方便的建立数据库表或建立视图,也可以将自由表添加到数据库中,成为数据库表,以及建立数据库表间的永久关联关系等数据库操作。7

3、/19/20223 利用“数据库设计器”,新建数据库rsgzk.dbc,并将表rsb.dbf、gzb.dbf、bmdm.dbf和zz.dbf添加到新数据库中,成为数据库表。 建立数据库:菜单“文件” | “新建”命令,选“文件类型”为“数据库”选项按钮,单击“新建文件”,在“数据库名”文本框中输入rsgzk.dbc,单击“保存”按钮,此时建立数据库rsgzk.dbc,同时打开“数据库设计器”窗口。 添加数据表:在“数据库设计器”窗口,单击“数据库设计器”工具中的“添加表”按钮,在“打开”对话框中选定rsb.dbf,单击“确定”按钮,rsb.dbf就添加到了rsgzk数据库中,用同样的方法添加表

4、gzb.dbf、bmdm.dbf和zz.dbf。例4-17/19/20224命令格式: CREATE DATABASE 功能:建立一个数据库同时打开它。例如建立gzk.dbc的命令如下:CREATE DATABASE gzk2. 用命令方式建立数据库7/19/20225 数据库表:归属于某个数据库的表称为数据库表。 自由表:独立存在、不与任何数据库相关联的表称为自由表。 数据库表与自由表是Visual FoxPro中表的两种存在状态,这两种表是可以相互转化的,需要注意的是当数据库表转化成自由表时,其数据库表特有的属性将会丢失。 数据库表的优点:可以使用长表名,可以使用长字段名;可以为字段制定标

5、题和添加注释;可以为字段制定默认值和输入掩码;字段有默认的控件类;可以为字段设定字段级规则和记录级规则;支持插入、更新和删除事件的触发器;支持主关键字,表间永久关系和参照完整性规则等。3. 数据库表7/19/202264.1.2 数据库操作命令1. 打开数据库命令命令格式: OPEN DATABASE 功能:打开一个数据库。例如打开数据库gzk.dbc的命令如下: OPEN DATABASE gzk2. 关闭数据库命令命令格式: CLOSE DATABASE ALL功能:关闭当前的数据库和它的表。选择ALL表示关闭所有打开的数据库和它们的表、所有的自由表以及索引文件,返回1号工作区。例如关闭当

6、前数据库gzk.dbc的命令如下: CLOSE DATABASE7/19/20227命令格式: MODIFY DATABASE 功能:打开数据库设计器,以交互方式查看和修改当前数据库。例如查看和修改数据库gzk.dbc的命令如下:MODIFY DATABASE gzk.dbc4. 向数据库中添加表命令命令格式: ADD TABLE 功能:向当前数据库添加一个自由表。例如向数据库gzk.dbc添加自由表gzb1.dbf(它为gzb.dbf的复制表)和zz1.dbf(zz.dbf的复制表)。OPEN DATABASE gzkADD TABLE gzb1ADD TABLE zz1MODIFY DAT

7、ABASE &查看添加到数据库里的表CLOSE DATABASE3. 查看和修改数据库结构7/19/20228命令格式: REMOVE TABLE 功能:从当前数据库中移去一个表。例如从数据库gzk.dbc中移出表zz1.dbf。OPEN DATABASE gzkREMOVE TABLE zz1&在确认对话框选“是”,移出数据库表zz1MODIFY DATABASE&查看移出表后的数据库CLOSE DATABASE6. 删除数据库命令命令格式: DELETE DATABASE 功能:从磁盘中删除一个数据库文件。例如从磁盘中删除数据库文件gzk.dbc。CLOSE DATABASE ALL&关闭

8、所有打开的数据库DELETE DATABASE gzk.dbc&在确认对话框选“是”,删除数据库5. 从数据库中移去表命令7/19/20229命令格式: PACK DATABASE功能:从当前数据库中将做了删除标记的记录清除掉。说明:使用该命令时要求当前数据库必须是独占打开,并且数据库表和视图均没有被打开使用。例如清理数据库gzk.dbc的命令如下:OPEN DATABASE gzk PACK DATABASECLOSE DATABASE7. 清理数据库命令7/19/202210命令格式: SET DATABASE TO 功能:指定一个打开的数据库,使它成为当前数据库。如果省略数据库名,则打开

9、的数据库都不会成为当前数据库。例如,打开2个数据库,设置第一个数据库为当前数据库,然后使用 DBC() 函数显示当前数据库的名称: OPEN DATABASE rsgzkOPEN DATABASE gzkSET DATABASE TO rsgzk? DBC() &在屏幕上显示rsgzk.dbc8选择当前数据库命令7/19/202211数据库文件(.DBC文件)本身也是一个表,表中存储了有关数据库及其对象的所有信息。数据库中的每个表、视图、字段、索引标记、永久关系等都有一条记录。例如浏览数据库rsgzk.dbc的命令如下:CLOSE DATABASE ALL &浏览前首先关闭.DBC文件USE

10、rsgzk.dbc &打开数据库文件必须指明扩展名.DBCBROWSE9浏览数据库文件7/19/2022124.2 数据字典 数据字典就是包含数据库中所有表信息的一个表。存储在数据字典中的信息称之为元数据,包括长表名、长字段名、有效性规则、触发器,表间永久关系以及数据库对象的定义等。 使用数据字典,可以设置字段级和记录级的有效性检查,保证主关键字字段内容的唯一性。4.2.1 字段级规则 字段级规则主要包括显示属性、字段有效性和字段注释三部分。7/19/202213“格式”文本框中输入格式化代码,确定该字段在浏览窗口、表单和报表中显示的格式,它是对字段格式进行整体控制的。 字段级规则设置“输入掩

11、码”文本框中键入掩码代码,输入掩码是按位来控制格式的。显示的标题改为自己希望的标题 字段有效性就是用于数据输入正确性的检验。 说明该字段的用途、特性、使用说明等补充信息 字段级规则7/19/2022144.2.2 记录级规则记录级规则主要包括记录有效性、触发器的设置和表注释。“教授的基本工资要1650元,其他职工为:550基本工资3000 职称=教授.AND.基本工资=1650.OR.职称#教授.AND.(基本工资=550.AND.基本工资=3000) 每逢星期一才可做插入、追加、更新和删除记录的操作:CDOW(DATE()=Monday 7/19/2022154.2.3 表间规则1. 永久关

12、系 永久关系是数据库表间的关系,它们存储在数据库文件中。利用“数据库设计器”来建立永久关系: 在“数据库设计器”中,用鼠标从一个表的主索引或候选索引拖到另一个表的任一索引,当出现表间关联连线时就表示关系已建立。用鼠标右键单击连线,弹出快捷菜单,可以进行删除关系、编辑关系和编辑参照完整性操作。例4-2为例4-1的数据库rsgzk.dbc中的各表建立永久关系。(1) 建立各表的索引。(2)利用数据库设计器,画出表间关系连线。建立表rsb与表gzb的连线:形成一条一一关系连线 建立表rsb与表zz的连线:形成一条一多关系连线建立表rsb与表bmdm的连线 :形成一条多一关系连线 7/19/20221

13、6一一关系连线 多一关系连线 一多关系连线 各表间的永久关系7/19/2022172. 参照完整性 参照完整性是控制数据库中不同表的主关键字和外部关键字之间数据一致性的关系规则。参照完整性则属于表间规则。 用户可以通过“参照完整性生成器”来进行规则设置,从而控制相关表的更新、删除和插入记录的数据完整性。(1)打开“参照完整性生成器”窗口 双击两表之间的连线,在“编辑关系”对话框中选定【参照完整性】按钮。(2)设置更新、删除、插入三个规则 更新规则:是指修改父表中关键字值时所使用的规则,包括级联、限制和忽略3种。 删除规则:是指删除父表中的记录时使用的规则,包括级联、限制和忽略3种。 插入规则:

14、是指在子表中插入新的记录,或更新已存在的记录时所用的规则,包括限制和忽略2种。7/19/202218更新规则删除规则插入规则级联当父表中的关键字值被修改时,系统用新的关键字值更新子表中所有相关记录当父表的记录被删除时,系统相应的删除子表中所有相关记录限制若子表有相关记录,则系统禁止父表中的关键字值被修改若子表有相关记录,则系统禁止父表的记录被删除若父表中不存在匹配的关键字值,则禁止在子表插入一个新记录或更新一个已存在的记录忽略允许更新允许删除允许插入参照完整性的各项功能7/19/202219在浏览bmdm表时将计算机系的代码修改为A04,则子表rsb中部门是计算机系的所有记录的部门代码字段值都

15、被更新为“A04”。 参照完整性设置举例7/19/2022204.3 关系型数据库标准语言SQL SQL是Structured Query Language(结构化查询语言)的英文缩写,它是关系型数据库的标准操作语言,几乎所有的数据库产品都采用和支持该语言。 SQL是一种综合的、通用的、功能强大的关系数据库语言,它包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)三大部分。数据定义语言:用于定义、修改和撤消数据库、表对象等。数据操纵语言:用于数据库中表记录的修改和检索等。数据控制语言:用于数据访问权限的控制等。7/19/2022214.3.1 SQL数据定义命令1. 建

16、立表2. 修改表的结构3. 删除表7/19/202222命令格式:CREATE TABLE | DBF NAME FREE( (,) NULL|NOT NULL CHECK ERROR DEFAULT PRIMARY KEY | UNIQUEREFERENCES TAG NOCPTRANS , , PRIMARY KEY TAG |, UNIQUE TAG , FOREIGN KEY TAG NODUPREFERENCES TAG , CHECK ERROR )| FROM ARRAY 数组名功能:由给定的字段参数建立一个数据表。 1. 建立表7/19/202223建立人事管理数据库rsgl.

17、dbc,并用SQL命令建立rs.dbf(编号C(4),姓名C(8),身份证号C(18),性别C(2),出生日期D,基本工资N(9,2),简历M),表中编号字段为主关键字。代码如下:CLOSE DATABASES ALL &关闭所有数据库CREATE DATABASES rsgl &建立rsgl数据库CREATE TABLE rs(编号 C(4),姓名 C(8),身份证号 C(18),性别 C(2),; 出生日期 D,基本工资 N(9,2),简历 M) &在rsgl数据库中创建表rsMODIFY DATABASES &打开“数据库设计”窗口,显示rs表例4-37/19/2022242. 修改表的

18、结构(1)增加或修改字段 命令格式:ALTER TABLE ADD | ALTER COLUMN ( ,) NULL | NOT NULLCHECK ERROR DEFAULT PRIMARY KEY | UNIQUEREFERENCES TAG NOCPTRANSNOVALIDATE功能:增加或修改字段 增加新的字段 修改原有的字段 7/19/202225继续给上例表rs.dbf完成下列操作:增加1个“籍贯C(8)”字段。将原来的“编号”字段的宽度由4改为6。修改“基本工资”字段的有效性规则,要求基本工资不小于200,出错信息提示为“最低工资额为200元”。将“编号”字段设置成主索引字段。代

19、码如下:OPEN DATABASES rsglALTER TABLE rs ADD 籍贯 C(8)&增加字段MODIFY STRUCTURE&查看结构的变化ALTER TABLE rs ALTER 编号 C(6)&修改字段的宽度MODIFY STRUCTURE ALTER TABLE rs ALTER 基本工资 n(9,2) CHECK 基本工资=200; ERROR 最低工资额为200元MODIFY STRUCTURE ALTER TABLE rs ADD PRIMARY KEY 编号 TAG bh &设置成主索引字段MODIFY STRUCTURE CLOSE DATABASES ALL例

20、4-47/19/202226命令格式:ALTER TABLE ALTER|DROP COLUMN NULL | NOT NULLSET DEFAULT SET CHECK ERROR DROP DEFAULTDROP CHECKNOVALIDATERENAME COLUMN TO 功能:定义、修改、删除字段及有效性规则和默认值。修改字段 删除字段 字段改名 (2)设置字段属性7/19/202227继续对表rs.dbf完成下列操作:修改“性别”字段的默认值为“男”。删除“基本工资”字段的有效性规则。删除“籍贯”字段。将“基本工资”字段改名为“工资”字段。代码如下:OPEN DATABASES r

21、sglALTER TABLE rs ALTER 性别 SET DEFAULT 男MODIFY STRUCTUREALTER TABLE rs ALTER 基本工资 DROP CHECKMODIFY STRUCTUREALTER TABLE rs DROP 籍贯MODIFY STRUCTUREALTER TABLE rs RENAME COLUMN 基本工资 TO 工资MODIFY STRUCTURECLOSE DATABASES ALL例4-57/19/202228(1)将数据库表从数据库中移出 命令格式: REMOVE TABLE | ? DELETE RECYCLE功能:从数据库中移去表。

22、例4-6 在rsgl数据库中移去rs.dbf表。OPEN DATABASES rsglREMOVE TABLE rs &将表rs.dbf从rsgl.dbc中移去,成为自由表MODIFY DATABASES将表删除到回收站 表示从磁盘上删除数据表 3. 删除表7/19/202229命令格式:DROP TABLE | | ? RECYCLE功能:从数据库和磁盘上将表直接删除掉。例4-7 将rs.dbf表复制rs1.dbf,然后将rs1.dbf添加到rsgl数据库中,然后再将其从数据库和磁盘中一起删除。代码如下:CLOSE ALLUSE rsCOPY TO rs1 &复制成表rs1.dbfOPEN

23、DATABASES rsglADD TABLE rs1 &添加表rs1.dbf到rsgl.dbcMODIFY DATABASES &显示数据库DROP TABLE rs1 &将表从数据库和磁盘上一起删除CLOSE DATABASESDIR *.dbf(2)将表从数据库和磁盘上删除的DROP TABLE命令7/19/2022304.3.2 SQL数据操纵命令SQL的数据操纵命令主要包括三个部分:记录的插入记录的更新记录的删除 7/19/202231命令格式:INSERT INTO ( , , .)VALUES ( , , .)或INSERT INTO FROM ARRAY | FROM MEMV

24、AR功能:在表的末尾追加一条新的记录。例4-8 向表rs.dbf表插入一条记录。代码如下:OPEN DATABASES rsglINSERT INTO rs(编号,姓名,性别,出生日期) ; VALUE (0101,李明,男,1965/05/06)LISTCLOSE DATABASES1. 插入记录7/19/202232命令格式:UPDATE SET = , = . WHERE 功能:更新满足条件的记录,该记录指定字段值由相对应的表达式值来代替。例4-9 将表rsb.dbf复制成rsb1.dbf,然后对表rsb1.dbf中的职称为“讲师”的职工基本工资都增加35元。代码如下:USE RSB L

25、ISTCOPY TO rsb1UPDATE rsb1 SET 基本工资=基本工资+35 WHERE 职称=讲师SELECT rsb1LISTUSE2. 更新记录7/19/202233命令格式: DELETE FROM WHERE 功能:逻辑删除表中满足条件的记录,即对满足条件的记录做删除标志。例4-10 将表rsb1.dbf中姓名是“陈宏”的记录删除。代码如下:DELETE FROM rsb1 WHERE 姓名=陈宏&做删除标记SELECT rsb1LISTPACK&彻底删除有删除标记的记录LISTUSE3. 删除记录7/19/2022344.3.3 SQL数据查询命令Visual FoxPr

26、o有两种方式来实现SQL查询:一、使用命令操作二、界面操作7/19/202235命令格式:SELECT ALL | DISTINCT TOP PERCENT. AS , . AS FROM FORCE ! AS INNER | LEFT OUTER | RIGHT OUTER | FULL OUTER JOIN ! AS ON INTO | TO FILE ADDITIVE | TO PRINTER PROMPT| TO SCREENPREFERENCE NOCONSOLE PLAIN NOWAITWHERE AND AND | OR AND | OR GROUP BY , HAVING UN

27、ION ALL ORDER BY ASC | DESC , ASC | DESC 功能:从一个或多个数据表中检索一个记录集合(即表格),集合由指定的字段名组成,形成一个查询结果表。1. 命令方式7/19/202236例4-11 在rsb.dbf中查询显示所有职工编号、姓名、性别、年龄、职称和基本工资字段内容。SELECT 编号, 姓名, 性别, YEAR(DATE()-YEAR(出生日期) AS 年龄,; 职称, 基本工资 FROM rsb例4-12 查询bmdm.dbf中的全部字段以及所有记录,并将结果输出在屏幕上。SELECT * FROM bmdm TO SCREEN例4-13 查询表r

28、sb.dbf中基本工资字段的最高值、最低值、平均值,合计值以及参与统计的人数。SELECT MAX(基本工资) AS 最高, MIN(基本工资) AS 最低, ; AVG(基本工资) AS 平均, SUM(基本工资) AS 合计,; COUNT(*) AS 统计人数 ; FROM rsb(1)查询全部或者部分字段内容7/19/202237 条件表达式可以使用运算符(=, , !=, #, =, , =, , 1000(3)查询结果分组7/19/202239 对查询结果按指定的排序项进行排序,ASC表示按排序项升序排序记录,DESC表示按排序项降序排序记录。系统默认为升序。例4-20 查询表rs

29、b.dbf中姓名,性别,出生日期和职称字段内容,结果按出生日期字段的降序排序输出。SELECT 姓名, 性别, 出生日期, 职称 FROM rsb; ORDER BY 出生日期 DESC例4-21 从表rsb.dbf和gzb.dbf中查询职工的姓名,性别,职称,基本工资和保险内容,先按性别字段升序,然后按职称字段降序,最后按保险字段的降序排序输出。SELECT 姓名, 性别, 职称, rsb.基本工资, 保险 FROM rsb, gzb; WHERE rsb.编号=gzb.编号; ORDER BY 性别, 职称 DESC, 保险 DESC(4)查询结果排序7/19/202240 一个查询(子查

30、询)的结果嵌套在另一个查询(父查询)的条件所形成的查询称为嵌套查询。系统在处理嵌套查询时,首先查询出子查询的结果,然后将子查询结果作为父查询的查询条件。嵌套查询的语法格式: SELECT WHERE (SELECT WHERE ) 常用子查询形式有:带有比较运算符号的子查询、带IN谓词的子查询、带EXISTS谓词的子查询、带有ANY、ALL或SOME量词的子查询。(5)嵌套查询的使用7/19/202241 在嵌套查询中,当子查询的返回结果是一个单值时,可以用、=、=、!=或等比较运算符来生成父查询的查询条件。 例如查询奖励工资大于平均奖励工资的职工,输出姓名、职称和奖励工资,命令如下:SELE

31、CT 姓名, 职称, 奖励 ; FROM rsb,gzb ; WHERE rsb.编号=gzb.编号 .AND. 奖励 ; (SELECT AVG(奖励) FROM gzb) 说明:子查询的结果AVG(奖励)是一个单值,可以使用比较运算符号。 带有比较运算符号的子查询7/19/202242 在嵌套查询中,当子查询的返回结果是一个集合时,常常用IN谓词来作为父查询的条件,来判断条件值是否在子查询的结果中。IN谓词的使用格式是: 父查询 WHERE 字段 IN(子查询)。例4-22 列出部门代码是“A01”的职工的工资详细清单。 分析:由于在gzb.dbf中没有部门代码字段,所以无法直接从gzb.

32、dbf查找到。因而首先需要在rsb.dbf中查找“A01”的职工编号,再根据找到的编号,在gzb.dbf中找出对应的记录。SELECT * FROM gzb WHERE 编号 IN (SELECT 编号; FROM rsb WHERE 部门代码=A01) 带IN谓词的子查询7/19/202243 在嵌套查询中,常用EXISTS或NOT EXISTS来检查在子查询中是否有结果返回。使用EXISTS谓词,若子查询结果为非空,则父查询的条件返回值为“真”,否则返回值为“假”;使用NOT EXISTS谓词,则结果跟EXISTS谓词正好相反。其使用格式为: 父查询 WHERE NOT EXISTS (子

33、查询)例如查询计算机系的职工的姓名和职称,命令如下:SELECT 姓名,职称 FROM rsb WHERE EXISTS ; (SELECT * FROM bmdm WHERE bmdm.代码=rsb.部门代码 ; .AND. 部门名称=计算机系) 说明:首先,含EXIST谓词的查询总是相关查询:即,子查询必需引用父查询的字段(如例中的“部门代码”字段)。这使得存在谓词的子查询相当慢,因为对于父查询的每一记录,子查询都要执行一遍。父查询中要处理的记录数越多,则查询执行时间越长。 其次,EXIST谓词的子查询输出一般使用通配符“*”。这是由于结果只是真或假,对输出什么字段无关紧要,因此可用通配符

34、。 带EXISTS谓词的子查询7/19/202244 ALL、ANY或SOME是量词,其中ANY或SOME是相同的,都表示子查询结果中某个记录值,ALL表示子查询结果中所有记录值。其使用格式为:父查询 WHERE (子查询) 例如查询基本工资大于所有未婚职工基本工资的职工信息,命令如下: SELECT * FROM rsb WHERE 基本工资; ALL(SELECT 基本工资 FROM rsb WHERE 婚否=.F.) 带有ALL、ANY或SOME量词的子查询7/19/202245 SELECT-SQL命令除了将查询结果输出到屏幕和浏览窗口外,还可以将查询结果保存为一个表、文本文件和数组,

35、或输出到打印机。例4-23 查询所有“讲师”的工资情况,结果按“实发工资”降序排列,分别保存到临时表js、表js1.dbf和文本文件js2.txt。*将结果输出到临时表SELECT * FROM gzb WHERE 编号 IN ; (SELECT 编号 FROM rsb WHERE 职称=讲师); ORDER BY 实发工资 DESC INTO CURSOR jsBROWSE&浏览临时表js 结果所生成的临时表系统自动打开,数据是只读的,临时表一旦关闭,系统自动将它删除。(6)查询结果输出7/19/202246*将查询结果保存在表js1.dbf中,命令如下:SELECT * FROM gzb

36、WHERE 编号 IN ; (SELECT 编号 FROM rsb WHERE 职称=讲师); ORDER BY 实发工资 DESC INTO TABLE js1BROWSE* 将查询结果保存到文本文件js2.txt中,命令如下:SELECT * FROM gzb WHERE 编号 IN ; (SELECT 编号 FROM rsb WHERE 职称=讲师); ORDER BY 实发工资 DESC TO FILE js2TYPE js2.txt&显示文本文件js2.txt的内容例4-237/19/2022472. 界面操作建立查询(1)使用查询向导建立查询 启动查询向导:选择菜单“文件” | “

37、新建”命令,在“新建”对话框中选择“文件类型”中的“查询”选项,然后单击“向导”按钮,启动查询向导。例4-24 利用查询向导查询rsb.dbf中职称为“讲师”的记录,要求按出生日期的升序输出编号、姓名、性别、出生日期和职称5个字段内容,并以cx.qpr保存查询设置。操作步骤如下:7/19/202248查询向导操作步骤图解7/19/202249(2)利用“查询设计器”建立查询利用“查询设计器”建立查询的基本步骤如下: 启动“查询设计器”。 进行查询设置:包括添加被查询的表、设置输出字段、联结条件、记录筛选、输出排序、分组以及查询结果的去向等操作。 执行查询。 保存查询设置。例4-25 从rsb.

38、dbf和gzb.db中查询基本工资大于等于1000元的职工记录,要求输出编号、姓名、性别、职称、基本工资、岗位津贴字段,并按基本工资降序排列输出到表jbqg1000.dbf中,将查询设置保存为cx1000.qpr。操作步骤如下:7/19/202250例4-25操作步骤图解7/19/202251例4-25操作步骤图解(续)7/19/2022524.4 视图建立与使用1. 概念: 视图是建立在数据库表之上的虚拟表,它是由数据库表或其它视图的某些字段而构成的。视图中的数据存于数据库表中,本身不含数据,其数据是在打开视图时临时从源表中提取的。只有打开数据库,才能在数据库中建立和使用视图。2. 优点:(

39、1)视点集中 (2)查询的简单性 (3)提高数据的安全性 (4)逻辑上的数据独立 7/19/2022534.4.1 命令建立视图命令格式:CREATE SQL VIEW REMOTE CONNECTION SHARE | CONNECTION 数据源名 AS 功能:按照AS SQL-SELECT子句命令建立一个本地或远程的SQL视图,或打开“视图设计器”来建立SQL视图例4-27 建立一个用于统计数据库rsgzk.dbc中表rsb.dbf各类职称人数的视图,视图取名为zcst。代码如下:OPEN DATABASE rsgzkCREATE SQL VIEW zcst AS SELECT rsb.

40、职称, COUNT(*) AS 人数; FROM rsb GROUP BY 职称USE zcstBROWSE7/19/202254在数据库rsgzk.dbc中建立一个包含表rsb.dbf和表gzb.dbf的所有字段视图,视图取名rsgzst。代码如下:OPEN DATABASE rsgzkCREATE SQL VIEW rsgzst ; AS SELECT * FROM rsb, gzb WHERE rsb.编号=gzb.编号USE rsgzstBROWSE例4-287/19/2022554.4.2 界面操作创建视图 视图设计器类似于查询设计器,只是比查询设计器多出一个“更新条件”选项卡,用于

41、设置更新的条件,如图4-36所示。 打开“视图设计器”的方法: 打开相关的数据库,选择菜单“文件”“新建”命令,选择新建“视图”选项按钮,单击“新建文件”按钮。 使用“项目管理器”和使用命令CREATE SQL VIEW来打开“视图设计器”窗口。7/19/202256(1) “表”下拉列表框 (2)“重置关键字”按钮(3)“全部更新”按钮 (4)“发送 SQL 更新”复选框 (5)“字段名”窗格 关键字段列 可更新字段 列字段名列(6)“SQL WHERE 子句包括”区 (7)“使用更新”区 视图“更新条件”选项卡7/19/202257(1)“表”下拉列表框:指定视图所使用的哪些表可以修改。此

42、列表中所显示的表都包含了“字段”选项卡“选定字段”列表中的字段。(2)“重置关键字”按钮:从每个表中选择主关键字字段作为视图的关键字字段,对于“字段名”列表中的每个主关键字字段,在钥匙符号下面打一个“对号”。关键字字段可用来使视图中的修改与表中的原始记录相匹配。(3)“全部更新”按钮:选择除了关键字字段以外的所有字段来进行更新,并在“字段名”列表的铅笔符号下打一个“对号”。(4)“发送 SQL 更新”复选框:指定是否将视图记录中的修改传送给原始表。1. “更新条件”选项卡的各项功能7/19/202258(5)“字段名”窗格:显示所选的、用来输出(因此也是可更新的)的字段。 关键字段(使用钥匙符

43、号作标记):指定该字段是否为关键字段。 可更新字段(使用铅笔符号作标记):指定该字段是否为可更新字段。 字段名:显示可标志为关键字字段或可更新字段的输出字段名。(6)“SQL WHERE 子句包括”区的选项用来检查更新冲突,在多用户环境下,由系统检查在用视图更新前原始表的数据是否被别的用户修改过,如果这些记录被修改,就不允许更新操作。 “关键字段”选项:如果在原始表中有一个关键字字段被改变,设置 WHERE 子句来检测冲突,使更新失败。对于由另一用户对表中原始记录的其它字段所做修改,不进行比较。 “关键字和可更新字段”选项:如果另一用户修改了原始表中标记关键字字段或任何可更新的字段,设置 WHERE 子句来检测冲突,使更新失败。 “关键字和已修改字段”选项:如果从视图首次检索后,本地改变的任一字段在源表中已被改变时,设置 WHERE 子句来检测冲突,使更新失败。 “关键字段和时间戳”选项:如果自原始表记录的时间戳首次检索以后,它被修改过,设置 WHERE 子句来检测冲突。只有当远程表有时间戳列时,此选项才有效。“更新条件”选项卡的各项功能(续)7/19/202259(7)“使用更新”区的选项用来设置更新方式。 “SQL DELETE 然后 INSERT”选项:指先删除原始表中的旧记

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论