第3章数据库的建立与操作_第1页
第3章数据库的建立与操作_第2页
第3章数据库的建立与操作_第3页
第3章数据库的建立与操作_第4页
第3章数据库的建立与操作_第5页
已阅读5页,还剩160页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库应用基础浙江财经学院重点:数据库、重点:数据库、SQLSQLSQLSQL23本章以商品营销数据库为例,介绍如何建立并本章以商品营销数据库为例,介绍如何建立并使用数据库,对相互关联的多个表进行管理。使用数据库,对相互关联的多个表进行管理。 4 掌握数据库的基本操作掌握数据库的基本操作 熟悉工作区的基本用法熟悉工作区的基本用法 了解数据库的完整性和规则了解数据库的完整性和规则 掌握掌握SELECTSELECT语句的用法语句的用法53.1 3.1 数据库的建立数据库的建立3.2 3.2 数据库的完整性与数据字典数据库的完整性与数据字典* *3.3 3.3 控制共享数据的访问控制共享数据的访问3

2、.4 3.4 结构化查询语言结构化查询语言SQLSQL3.5 3.5 本章小结本章小结6数据库是与特定主题或用途相关联的数据和对数据库是与特定主题或用途相关联的数据和对象的集合。在象的集合。在Visual FoxPro 9.0Visual FoxPro 9.0中,数据库中,数据库是以文件形式存在的,用来组织管理表、视图是以文件形式存在的,用来组织管理表、视图(本地视图和远程视图)、连接和存储过程之(本地视图和远程视图)、连接和存储过程之间的关系。间的关系。7表文件(.DBF)本地视图(Local View)远程视图(Remote View)连接定义(Connection)存储过程(Store

3、Procedure)数据字典(Data Dictionary)数据库文件(由.DBC、.DCT、.DCX文件组成)图3-1 数据库的基本结构83.1.1 3.1.1 建立数据库建立数据库3.1.2 3.1.2 数据库表和自由表的相互转换数据库表和自由表的相互转换3.1.3 3.1.3 数据库的基本操作数据库的基本操作3.1.4 3.1.4 工作区工作区3.1.5 3.1.5 建立表间的临时关系建立表间的临时关系9关系数据库:一张或多张二维表组成关系数据库:一张或多张二维表组成图图3-2 “3-2 “营销营销”数据库中的数据库中的3 3个表文件及它们之间的关联个表文件及它们之间的关联10在在Vi

4、sual FoxProVisual FoxPro中,数据库实质上是存储表中,数据库实质上是存储表规则、视图以及表之间关系的容器,相关的所规则、视图以及表之间关系的容器,相关的所有数据库对象都存放在数据库。有数据库对象都存放在数据库。数据库文件的扩展名为数据库文件的扩展名为.DBC.DBC,相关的数据库,相关的数据库备注文件扩展名为备注文件扩展名为.DCT.DCT,相关的索引文件扩,相关的索引文件扩展名为展名为.DCX.DCX。11菜单来实现:菜单来实现: “ “文件文件”“新建新建”;在在“新建新建”对话框中选择对话框中选择“数据库数据库”后,单击后,单击“新建新建”按钮;按钮; “ “创建创

5、建”对话框中,输入新数据库的文件名后,对话框中,输入新数据库的文件名后,单击单击“保存保存”按钮按钮使用项目管理器来实现使用项目管理器来实现12图图3-3 “3-3 “创建创建”对话框对话框图图3-4 3-4 数据库设计器数据库设计器13格式:格式:CREATE DATABASE CREATE DATABASE 数据库名数据库名/?/?功能:创建指定名称的数据库。功能:创建指定名称的数据库。说明:说明: 数据库名数据库名 :指定要创建的数据库名称。:指定要创建的数据库名称。 ?:指定打开:指定打开“创建创建”对话框并要指定数据库对话框并要指定数据库名称。名称。不带选项时,指定打开不带选项时,指

6、定打开“创建创建”对话框并要指定对话框并要指定数据库名称。数据库名称。 14【例【例3.13.1】用命令创建名称为】用命令创建名称为“营销营销”的数据的数据库。库。CREATE DATABASE CREATE DATABASE 营销营销注意:使用命令方式创建数据库后,数据库并注意:使用命令方式创建数据库后,数据库并不能直接打开,需要重新打开数据库,打开数不能直接打开,需要重新打开数据库,打开数据库的方法将在据库的方法将在3.1.33.1.3中介绍。中介绍。 15数据库设计器窗口是数据库的主要操作窗口,数据库设计器窗口是数据库的主要操作窗口,其中会显示出数据库所包含的所有表、视图及其中会显示出数

7、据库所包含的所有表、视图及其相互之间的关系。数据库设计器工具栏提供其相互之间的关系。数据库设计器工具栏提供对数据库各种操作的快速访问;数据库菜单则对数据库各种操作的快速访问;数据库菜单则提供对数据库的各种操作;而在数据库设计器提供对数据库的各种操作;而在数据库设计器上单击鼠标右键,可以在弹出的快捷菜单中选上单击鼠标右键,可以在弹出的快捷菜单中选取相应的操作功能。取相应的操作功能。 16图图3-5 3-5 数据库设计器工具栏数据库设计器工具栏17(1 1)新建表:使用表向导创建新表。)新建表:使用表向导创建新表。(2 2)添加表:将现有的表添加至数据库。)添加表:将现有的表添加至数据库。(3 3

8、)移去表:从数据库中将表移出。)移去表:从数据库中将表移出。(4 4)新建远程视图:使用数据库设计器创建远程视图。)新建远程视图:使用数据库设计器创建远程视图。(5 5)新建本地视图:使用数据库设计器创建本地视图。)新建本地视图:使用数据库设计器创建本地视图。(6 6)修改表:在表设计器中打开表。)修改表:在表设计器中打开表。(7 7)浏览表:在浏览窗口中显示并编辑表。)浏览表:在浏览窗口中显示并编辑表。(8 8)编辑存储过程:在编辑窗口中显示)编辑存储过程:在编辑窗口中显示Visual FoxProVisual FoxPro存储过程。存储过程。(9 9)连接:连接本地计算机上的其它数据源。)

9、连接:连接本地计算机上的其它数据源。 返回18属于数据库的表称为数据库表属于数据库的表称为数据库表独立存在、不与任何数据库相关联的表称为自独立存在、不与任何数据库相关联的表称为自由表。由表。数据库表与自由表可以相互转换,数据库表拥数据库表与自由表可以相互转换,数据库表拥有许多自由表所没有的特性,如长文件名、长有许多自由表所没有的特性,如长文件名、长字段名、有效性规则等。字段名、有效性规则等。 19在一个已经打开的数据库中,可以创建表或者在一个已经打开的数据库中,可以创建表或者向数据库中添加已存在的表。用户可以选定某向数据库中添加已存在的表。用户可以选定某个自由表添加进数据库,该表就成为数据库表

10、。个自由表添加进数据库,该表就成为数据库表。20在数据库设计器窗口中,单击菜单中在数据库设计器窗口中,单击菜单中“数据库数据库”或通过右键快捷菜单中的或通过右键快捷菜单中的“添加表添加表”,在对话,在对话框中选择自由表即可。框中选择自由表即可。 21格式:格式:ADD TABLE ADD TABLE 表名表名/? /? 长表名长表名 功能:将自由表添加进数据库。功能:将自由表添加进数据库。说明:说明:“表名表名”指定要添加到数据库中的表的名称。指定要添加到数据库中的表的名称。“?”?”显示显示“打开打开”对话框,选择或输入要添加对话框,选择或输入要添加到数据库中的表。到数据库中的表。 长表名长

11、表名 :指定表的长表名,最多:指定表的长表名,最多128128个字符,个字符,可以取代短表名。可以取代短表名。22【例例3.23.2】用命令打开用命令打开“营销营销”数据库,并向其中添加数据库,并向其中添加“职工职工”表。表。OPEN DATABASE OPEN DATABASE 营销营销ADD TABLE ADD TABLE 职工图职工图3-6 3-6 移去表时的对话框移去表时的对话框注意:一个表同时只能属于一个数据库,因此要添加的注意:一个表同时只能属于一个数据库,因此要添加的必须是自由表,当向数据库添加的是一个数据库表时,必须是自由表,当向数据库添加的是一个数据库表时,Visual Fo

12、xProVisual FoxPro将显示出错信息。如果需要将一个属于将显示出错信息。如果需要将一个属于其他数据库的表添加到当前数据库中,必须先将该表移其他数据库的表添加到当前数据库中,必须先将该表移出原来所属的数据库。添加完成后,该自由表变成了数出原来所属的数据库。添加完成后,该自由表变成了数据库表,同时也具备了数据库表的各种特性。据库表,同时也具备了数据库表的各种特性。 23将表从数据库中移出的方法有两种:将表从数据库中移出的方法有两种: 24在数据库设计器窗口中,单击在数据库设计器窗口中,单击“数据库数据库”菜单菜单中的中的“移去表移去表”或右键快捷菜单中的或右键快捷菜单中的“删除删除”即

13、可。即可。在使用交互方式移去表时,在使用交互方式移去表时,Visual FoxProVisual FoxPro会会弹出如图弹出如图3-63-6所示的对话框,所示的对话框,“移去移去”表示只表示只从数据库中移去表,不会从磁盘上删除该表文从数据库中移去表,不会从磁盘上删除该表文件;件;“删除删除”表示将表从数据库中移去,同时表示将表从数据库中移去,同时从磁盘上删除该表文件;从磁盘上删除该表文件;“取消取消”则取消上述则取消上述操作。操作。 25图图3-6 3-6 移去表时的对话框移去表时的对话框26格式:格式:REMOVE TABLE REMOVE TABLE 表名表名/? DELETERECY/

14、? DELETERECYCLECLE功能:将表从数据库中移去。功能:将表从数据库中移去。说明:说明:“表名表名”指定要移出数据库的表的名称。指定要移出数据库的表的名称。“?”?”显示显示“移除移除”对话框,选择或输入要移出数据库中对话框,选择或输入要移出数据库中的表。的表。 DELETEDELETE:表示从当前数据库中移出指定的表,并将:表示从当前数据库中移出指定的表,并将该表从磁盘上删除。该表从磁盘上删除。 RECYCLERECYCLE:表示移出表的时间,将该表文件放入:表示移出表的时间,将该表文件放入WinWindowsdows回收站。回收站。27【例【例3.33.3】用命令打开】用命令打

15、开“营销营销”数据库,并将数据库,并将其中的其中的“商品商品”表移出。表移出。OPEN DATABASE OPEN DATABASE 营销营销REMOVE TABLE REMOVE TABLE 商品商品注意:移出表的操作完成后,该表就成为自由注意:移出表的操作完成后,该表就成为自由表,同时与该表相关的长表名、有效性规则将表,同时与该表相关的长表名、有效性规则将被删除,该表与其他表原有的关联和规则也不被删除,该表与其他表原有的关联和规则也不存在了。存在了。 返回28打开数据库打开数据库关闭数据库关闭数据库修改数据库修改数据库删除数据库删除数据库设置当前数据库设置当前数据库29“文件文件”“打开打

16、开”在在“打开打开”对话框中选择对话框中选择“文件类型文件类型”为为“数数据库据库( (* *.dbc)”.dbc)”选择或输入要打开的数据库名选择或输入要打开的数据库名30格式:格式:OPEN DATABASE OPEN DATABASE 文件名文件名/?EXCL/?EXCLUSIVE/SHAREDNOUPDATEVALIDATUSIVE/SHAREDNOUPDATEVALIDATEE功能:打开已指定的数据库。功能:打开已指定的数据库。说明:说明: 文件名文件名 :指定要打开的数据库的名称。:指定要打开的数据库的名称。 ?:显示:显示“打开打开”对话框,选择或输入要打开对话框,选择或输入要打

17、开的数据库名。的数据库名。31 EXCLUSIVE/SHAREDEXCLUSIVE/SHARED:表示数据库以独占:表示数据库以独占/ /只读的只读的方式打开,打开方式决定了其他用户是否可以访问该数据库,方式打开,打开方式决定了其他用户是否可以访问该数据库,如果两者都没有选取,则数据库的打开方式由命令如果两者都没有选取,则数据库的打开方式由命令SET EXSET EXCLUSIVECLUSIVE的设置决定,默认为独占方式。的设置决定,默认为独占方式。 NOUPDATENOUPDATE:表示被打开的数据库只能读取,不能修:表示被打开的数据库只能读取,不能修改。改。 VALIDATEVALIDAT

18、E:指定让:指定让Visual FoxProVisual FoxPro确保数据库中的引确保数据库中的引用有效。用有效。Visual FoxProVisual FoxPro将检查磁盘上数据库中的表和索引将检查磁盘上数据库中的表和索引是否可用,以及被引用的字段和索引标识是否存在于表和索是否可用,以及被引用的字段和索引标识是否存在于表和索引中。引中。 32【例【例3.43.4】用命令以共享方式打开】用命令以共享方式打开“营销营销”数数据库。据库。OPEN DATABASE OPEN DATABASE 营销营销 SHAREDSHARED注意:以命令方式打开数据库后,数据库设计注意:以命令方式打开数据库

19、后,数据库设计器并不显示,这时可以使用器并不显示,这时可以使用DBC()DBC()函数测试数函数测试数据库的是否打开。当数据库打开时,如果创建据库的是否打开。当数据库打开时,如果创建新表,该表将自动添加到当前数据库中,成为新表,该表将自动添加到当前数据库中,成为数据库表。数据库表。 返回33Visual FoxProVisual FoxPro并未提供直接关闭数据库的菜并未提供直接关闭数据库的菜单操作,当退出单操作,当退出Visual FoxProVisual FoxPro时,数据库自时,数据库自动关闭。动关闭。 34格式格式1 1:CLOSE DATABASES ALLCLOSE DATABA

20、SES ALL格式格式2 2:CLOSE ALLCLOSE ALL功能:关闭已打开的数据库。功能:关闭已打开的数据库。说明:说明:不带选项时,关闭当前数据库和表。不带选项时,关闭当前数据库和表。ALLALL:表示关闭所有打开的数据库和数据库表、:表示关闭所有打开的数据库和数据库表、自由表及索引文件等。自由表及索引文件等。 35【例例3.53.5】用命令关闭当前打开的用命令关闭当前打开的“营销营销”数数据库。据库。CLOSE DATABASESCLOSE DATABASES注意:注意:关闭了数据库,其中的表也全部关闭。关闭了数据库,其中的表也全部关闭。关闭了关闭了“数据库设计器数据库设计器”窗口

21、,不等于关闭了数窗口,不等于关闭了数据库。据库。 返回36修改数据库的操作与打开数据库相同,打开后修改数据库的操作与打开数据库相同,打开后进入数据库设计器,进行交互式的修改。进入数据库设计器,进行交互式的修改。 37格式:格式:MODIFY DATABASE MODIFY DATABASE 数据库名数据库名/?NOWAI/?NOWAITNOEDITTNOEDIT功能:修改已指定的数据库。功能:修改已指定的数据库。说明:说明: 数据库名数据库名 :指定要修改的数据库的名称。:指定要修改的数据库的名称。 ?:显示:显示“打开打开”对话框,选择或输入要修改的数据库对话框,选择或输入要修改的数据库名。

22、名。 NOWAITNOWAIT:指定在打开数据库设计器后,程序继续执行,:指定在打开数据库设计器后,程序继续执行,不必等待数据库设计器关闭。该选项仅在程序中使用才有效。不必等待数据库设计器关闭。该选项仅在程序中使用才有效。 NOEDITNOEDIT:指定禁止修改数据库。:指定禁止修改数据库。 38【例【例3.63.6】用命令修改】用命令修改“营销营销”数据库。数据库。CLOSE DATABASE CLOSE DATABASE 营销营销返回39Visual FoxProVisual FoxPro并未提供删除数据库的菜单操并未提供删除数据库的菜单操作,如果需要删除数据库,可在操作系统的资作,如果需

23、要删除数据库,可在操作系统的资源管理器中直接删除数据库文件。删除时需要源管理器中直接删除数据库文件。删除时需要注意:如果希望删除数据库的同时也删除其包注意:如果希望删除数据库的同时也删除其包含的表,则同时删除相应文件即可;如果希望含的表,则同时删除相应文件即可;如果希望删除数据库而保留数据库中的表,则需要先将删除数据库而保留数据库中的表,则需要先将这些表从数据库中移出,再删除数据库。这些表从数据库中移出,再删除数据库。 40格式:格式:DELETE DATABASE DELETE DATABASE 数据库名数据库名/?DELET/?DELETE TABLESE TABLES功能:删除已指定的数

24、据库。功能:删除已指定的数据库。说明:说明: 数据库名数据库名 :指定要从磁盘上删除的数据库的名称。:指定要从磁盘上删除的数据库的名称。 ?:显示:显示“打开打开”对话框,选择或输入要删除的数据库对话框,选择或输入要删除的数据库名。名。 DELETE TABLESDELETE TABLES:在删除数据库的同时,一并删除:在删除数据库的同时,一并删除包含在数据库中的表。包含在数据库中的表。 41【例【例3.73.7】用命令删除】用命令删除“营销营销”数据库。数据库。DELETE DATABASE DELETE DATABASE 营销营销注意:使用命令删除数据库时,若未使用注意:使用命令删除数据库

25、时,若未使用“DDELETE TABLES”ELETE TABLES”选项,则删除数据库后,选项,则删除数据库后,其数据表会变成自由表。其数据表会变成自由表。返回42当有多个数据库打开时,只有一个可以作为当当有多个数据库打开时,只有一个可以作为当前数据库。在前数据库。在Visual FoxProVisual FoxPro的常用工具栏的的常用工具栏的下拉列表框中,列出了已打开的数据库名称,下拉列表框中,列出了已打开的数据库名称,可以选择其中指定的数据库作为当前数据库。可以选择其中指定的数据库作为当前数据库。 43格式:格式:SET DATABASE TO SET DATABASE TO 数据库名

26、数据库名 功能:设置一个打开的数据库为当前数据库或功能:设置一个打开的数据库为当前数据库或非当前数据库。非当前数据库。44【例【例3.83.8】现】现“营销营销”和和“学籍学籍”两个数据库两个数据库都已打开,用命令将都已打开,用命令将“营销营销”数据库设置为当数据库设置为当前数据库。前数据库。SET DATABASE TO SET DATABASE TO 营销营销返回45在实际应用中,经常需要同时访问多个表,在在实际应用中,经常需要同时访问多个表,在Visual FoxProVisual FoxPro中,可以通过工作区技术来实中,可以通过工作区技术来实现。现。 46工作区是工作区是Visual

27、 FoxProVisual FoxPro在内存中开辟的临时在内存中开辟的临时区域,在一个工作区中,用户可以打开一个表区域,在一个工作区中,用户可以打开一个表及其备注、索引等,而在不同的工作区中可以及其备注、索引等,而在不同的工作区中可以打开多个表,并且可以利用多种方法访问不同打开多个表,并且可以利用多种方法访问不同工作区中的表。工作区中的表。 47每个工作区都有一个编号,它可以标识一个工每个工作区都有一个编号,它可以标识一个工作区,同时也可以标识在该工作区打开的表。作区,同时也可以标识在该工作区打开的表。Visual FoxProVisual FoxPro中最多允许使用中最多允许使用32767

28、32767个工作个工作区,可以用区,可以用1 1、2 2、3 3、3276732767来标识。来标识。 48在在Visual FoxProVisual FoxPro中,有中,有3276732767个工作同时存在,每个工作同时存在,每个工作区中都可能存在一个表,但在同一时刻,用户个工作区中都可能存在一个表,但在同一时刻,用户只能对一个工作区中的表文件进行读写操作,而对其只能对一个工作区中的表文件进行读写操作,而对其它工作区的表只能进行有限的访问。当前存在操作的它工作区的表只能进行有限的访问。当前存在操作的工作区称为当前工作区,而在当前工作区打开的表文工作区称为当前工作区,而在当前工作区打开的表文

29、件称为当前表文件。件称为当前表文件。当前工作区是可变的,用户可以根据需要选择任意一当前工作区是可变的,用户可以根据需要选择任意一个工作区作为当前工作区。个工作区作为当前工作区。当当Visual FoxProVisual FoxPro启动时,系统自动选择启动时,系统自动选择1 1号工作区号工作区作为当前工作区。作为当前工作区。 49除工作区的固定编号外,系统还为每个工作区规定了除工作区的固定编号外,系统还为每个工作区规定了一个固定的别名,称为系统别名。一个固定的别名,称为系统别名。1 1、2 2、3 3、1010号工作区的系统别名分别为号工作区的系统别名分别为A A、B B、C C、J J,11

30、11、1212、3276732767号工作区的系统别名分别为号工作区的系统别名分别为W11W11、W12W12、W32767W32767。用户在某工作区打开一个表文件的同时,也可以为工用户在某工作区打开一个表文件的同时,也可以为工作区定义一个别名,称为用户别名。默认的用户别名作区定义一个别名,称为用户别名。默认的用户别名是表名。用户自定义别名可使用以下命令:是表名。用户自定义别名可使用以下命令: 50格式:格式:USE USE ALIAS ALIAS NOUPDANOUPDATETE功能:打开表时指定工作区别名。功能:打开表时指定工作区别名。说明:说明: 指定工作区的用户别名,由最多指定工作区

31、的用户别名,由最多254254个字母、数字个字母、数字或下划线组成,不可包含特殊字符,并且不能与已有的别名或下划线组成,不可包含特殊字符,并且不能与已有的别名冲突。冲突。如果省略如果省略ALIAS ALIAS ,则系统使用表名作为该工作,则系统使用表名作为该工作区的别名。区的别名。选项选项NOUPDATENOUPDATE指定不允许修改表文件的结构。指定不允许修改表文件的结构。 51【例【例3.93.9】打开】打开“职工职工”表时使用表时使用S1S1作为别名。作为别名。USE USE 职工职工 ALIAS S1 ALIAS S1 52使用使用SELECTSELECT命令可以选择或转换当前工作区。

32、命令可以选择或转换当前工作区。格式:格式:SELECT SELECT / 功能:选择当前工作区。功能:选择当前工作区。说明:说明: 指定该工作区为当前工作区。指定该工作区为当前工作区。 指定该别名代表的工作区为当前工作区。指定该别名代表的工作区为当前工作区。例如,选择已打开的别名为例如,选择已打开的别名为S1S1的表为当前工作区,用命令:的表为当前工作区,用命令:SELECT S1 SELECT S1 53所谓工作区之间的联访,是指在当前工作区访所谓工作区之间的联访,是指在当前工作区访问非当前工作区中表内容(表字段中的数据)问非当前工作区中表内容(表字段中的数据)的一种联系形式。工作区之间的联

33、访是通过工的一种联系形式。工作区之间的联访是通过工作区的别名实现的。作区的别名实现的。54格式格式1 1: . 格式格式2 2: - 功能:访问非当前工作区中的表内容。功能:访问非当前工作区中的表内容。说明:说明: 指定要访问的工作区。指定要访问的工作区。 为该工作区打开表文件的一个字段名,为该工作区打开表文件的一个字段名,所得到的内容是在该工作区打开的表中,当前记录所得到的内容是在该工作区打开的表中,当前记录对应在该字段的值。对应在该字段的值。 55例如,当打开职工表的例如,当打开职工表的S1S1工作区为非当前工工作区为非当前工作区,则访问其中的姓名字段的方法为:作区,则访问其中的姓名字段的

34、方法为:S1.S1.姓名姓名 或或 S1-S1-姓名姓名 56在在Visual FoxProVisual FoxPro中,如果想了解系统中工作中,如果想了解系统中工作区的使用情况,有两种方法:一是选择区的使用情况,有两种方法:一是选择“窗口窗口”菜单的菜单的“数据工作期数据工作期”项;二是在命令窗口中项;二是在命令窗口中使用使用SETSET命令。系统显示如图命令。系统显示如图3.73.7所示的所示的“数数据工作期据工作期”对话框。对话框。在在“数据工作期数据工作期”对话框中,左边显示了系统对话框中,左边显示了系统中已被使用的工作区的别名,其中特殊显示的中已被使用的工作区的别名,其中特殊显示的工

35、作区为当前工作区。工作区为当前工作区。 57图图3-7 “3-7 “数据工作期数据工作期”对话框对话框58Visual FoxProVisual FoxPro使用工作区的规则如下:使用工作区的规则如下:一个工作区同时只能打开一个表文件。一个工作区同时只能打开一个表文件。当前工作区只有一个。当前工作区只有一个。每个工作区中的表文件都有独立的记录指针。每个工作区中的表文件都有独立的记录指针。59一个表文件可以在多个工作区打开,命令如一个表文件可以在多个工作区打开,命令如下:下:格式:格式:USE USE AGAIN AGAIN功能:再次打开表文件。功能:再次打开表文件。说明:说明: AGAINAG

36、AIN指定再次打开表文件。指定再次打开表文件。 60由系统指定当前可用的最小号工作区,使用由系统指定当前可用的最小号工作区,使用命令如下:命令如下:格式格式1 1:SELECT 0SELECT 0功能:选择系统中可用的最小号的工作区为当功能:选择系统中可用的最小号的工作区为当前工作区。前工作区。格式格式2 2:USE USE IN 0 IN 0功能:在系统中可用的最小号的工作区中打开功能:在系统中可用的最小号的工作区中打开表文件。表文件。 61(1 1)打开表)打开表在指定工作区中打开表可以使用下列方法:在指定工作区中打开表可以使用下列方法:使用使用USEUSE命令指定在某个工作区中打开表。命

37、令指定在某个工作区中打开表。【例【例3.103.10】在】在3 3号工作区中打开号工作区中打开“职工职工”表。表。USE USE 职工职工 IN 3IN 3SELECT 3SELECT 3BROWSEBROWSE62注意:使用注意:使用USEINUSEIN的方法在对应工作区的方法在对应工作区打开表后,当前工作区保持不变,因此要浏览打开表后,当前工作区保持不变,因此要浏览打开的表,必须将该工作区设置为当前工作区。打开的表,必须将该工作区设置为当前工作区。63使用使用SELECTSELECT命令指定某个工作区为当前工命令指定某个工作区为当前工作区,再打开表。作区,再打开表。【例【例3.113.11

38、】在】在3 3号工作区中打开号工作区中打开“职工职工”表。表。SELECT 3SELECT 3USE USE 职工职工BROWSEBROWSE64在不同工作区中多次打开同一个表。在不同工作区中多次打开同一个表。【例例3.123.12】要在要在1 1、2 2、4 4号工作区中同时打开号工作区中同时打开“职工职工”表。表。SELECT 1SELECT 1USE USE 职工职工USE USE 职工职工 AGAIN IN 2AGAIN IN 2SELECT DSELECT DUSE USE 职工职工 AGAINAGAIN65在系统当前可用的最小号工作区中打开表,在系统当前可用的最小号工作区中打开表,

39、可使用可使用“数据工作期数据工作期”窗口中的窗口中的“打开打开”按钮按钮打开表,或使用命令打开表,或使用命令SELECT 0SELECT 0或或USE USE IN 0 IN 0。【例【例3.133.13】在系统当前可用的最小号工作区中】在系统当前可用的最小号工作区中打开打开“职工职工”表。表。SELECT 0SELECT 0USE USE 职工职工 &或或USE USE 职工职工 IN 0 IN 0 66关闭工作区中的表有以下几种方法:关闭工作区中的表有以下几种方法:USE IN 3USE IN 3SELECT 3SELECT 3 USE USEUSE USE 职工职工 IN 3IN

40、 3 USE IN USE IN 职工职工67在同一工作区中已经打开了一个表,则打开在同一工作区中已经打开了一个表,则打开另一个表时,前一个表自动关闭。另一个表时,前一个表自动关闭。 SELECT 3SELECT 3 USE USE 职工职工 BROWSEBROWSE USE USE 商品商品在在“数据工作期数据工作期”窗口中选择要关闭的工作窗口中选择要关闭的工作区的别名,然后单击区的别名,然后单击“关闭关闭”按钮。按钮。68系统默认别名系统默认别名打开表时,系统默认使用表文件名作为别名。打开表时,系统默认使用表文件名作为别名。【例例3.143.14】 打开打开“职工职工”、“销售销售”和和“

41、商品商品”表,用别名选择当前工表,用别名选择当前工作区。作区。USE USE 职工职工 IN 1IN 1USE USE 商品商品 IN 2IN 2USE USE 销售销售 IN 3IN 3SELECT 1SELECT 1&工作区编号工作区编号BROWSEBROWSESELECT SELECT 商品商品&默认工作区别名默认工作区别名BROWSEBROWSESELECT CSELECT C&系统别名系统别名BROWSEBROWSE69用户自定义别名用户自定义别名打开表时,使用带打开表时,使用带ALIASALIAS子句的子句的USEUSE命令为工命令为工作区指定别名。作区指定

42、别名。【例例3.153.15】在在3 3号工作区打开号工作区打开“职工职工”表,并表,并指定工作区的别名为指定工作区的别名为EMPLOYEEEMPLOYEE。USE USE 职工职工 IN 3 ALIAS EMPLOYEEIN 3 ALIAS EMPLOYEESELECT EMPLOYEESELECT EMPLOYEEBROWSEBROWSE70使用使用SELECTSELECT指定或转移当前工作区指定或转移当前工作区【例例3.163.16】分别在分别在1 1、2 2、3 3号工作区打开号工作区打开“职工职工”表、表、“商品商品”表、表、“销售销售”表。表。SELECT 1SELECT 1&am

43、p;工作区编号工作区编号USE USE 职工职工USE USE 商品商品 IN 2IN 2USE USE 销售销售 IN 3 ALIAS SALESIN 3 ALIAS SALESSELECT SELECT 商品商品&默认别名默认别名BROWSEBROWSESELECT SALESSELECT SALES&用户自定义别名用户自定义别名BROWSEBROWSESELECT ASELECT A&系统别名系统别名BROWSEBROWSE71使用别名访问非当前工作区的表使用别名访问非当前工作区的表【例例3.173.17】在在3 3号工作区中访问其它工作区的表。号工作区中访问其它

44、工作区的表。USE USE 职工职工 IN 1IN 1USE USE 商品商品 IN 2 ALIAS GOODSIN 2 ALIAS GOODSSELECT 3SELECT 3USE USE 销售销售LOCATE FOR LOCATE FOR 职工号职工号=A.=A.职工号职工号? ?职工号职工号, A., A.姓名姓名, , 销售数量销售数量LOCATE FOR LOCATE FOR 商品号商品号=GOODS-=GOODS-商品号商品号? ?商品号商品号, GOODS-, GOODS-商品名称商品名称, , 销售数量销售数量 72不同工作区中表文件的指针相互独立不同工作区中表文件的指针相互独

45、立【例例3.183.18】分别在分别在1 1、2 2号工作区打开号工作区打开“职工职工”表、表、“销售销售”表,测试表表,测试表指针的关系。指针的关系。USE USE 职工职工 IN 1IN 1USE USE 销售销售 IN 2IN 2SELECT 1SELECT 1DISPLAYDISPLAY&1&1号工作区的当前记录号工作区的当前记录SELECT 2SELECT 2DISPPLAYDISPPLAY&2&2号工作区的当前记录号工作区的当前记录SELECT 1SELECT 1SKIPSKIP&1&1号工作区中的表指针移动号工作区中的表指针移动DI

46、SPPLAYDISPPLAY&1&1号工作区中的当前记录改变号工作区中的当前记录改变SELECT 2SELECT 2DISPPLAYDISPPLAY&2&2号工作区中的当前记录不变号工作区中的当前记录不变返回73建立临时关联的前提条件是:子表需要建立以建立临时关联的前提条件是:子表需要建立以关联字段为表达式的索引,并且设置该索引为关联字段为表达式的索引,并且设置该索引为主控索引。主控索引。 创建临时关联可以通过多种方法实现:数据工创建临时关联可以通过多种方法实现:数据工作期、命令方式和数据环境。作期、命令方式和数据环境。74在在“数据工作期数据工作期”窗口中打开

47、窗口中打开“职工职工”表和表和“销售销售”表。表。在在“别名别名”列表框中选择列表框中选择“职工职工”,单击,单击“关系关系”按按钮后,在钮后,在“关系关系”列表框中出现列表框中出现“职工职工” ” 。 选择选择“别名别名”列表框中的列表框中的“销售销售”表,弹出表,弹出 “ “设置设置索引顺序索引顺序”对话框,选择对话框,选择“销售销售: :职工号职工号”后单击后单击“确确定定”。在在 “ “表达式生成器表达式生成器”对话框中,选择对话框中,选择“字段字段”列表列表框中的框中的“职工号职工号”,单击,单击“确定确定”完成设置。完成设置。 75图图3-8 “3-8 “数据工作期数据工作期”对话

48、框对话框图图3-9 “3-9 “设置索引顺序设置索引顺序”对话框对话框76图图3-10 “3-10 “表达式生成器表达式生成器”对话框对话框图图3-11 3-11 设置后的设置后的“数据工作期数据工作期”对话对话框框77(2)_通过命令建立临时关联通过命令建立临时关联格式: SET RELATION TO 关系表达式关系表达式 INTO 表别名表别名其中:其中:两表关联的同名索引字段两表关联的同名索引字段 另一被关联的表的别名另一被关联的表的别名功能:当前表与另一个表之间建立临时关联在使用上述命令之前,必须在子表上先建立与在使用上述命令之前,必须在子表上先建立与相匹配的结构复合索引(相匹配的结

49、构复合索引(.CDX)或独立索引()或独立索引(.IDX)。78格式:格式:SET RELATION TO SET RELATION TO 1 INTO INTO /1, , INTO INTO /2IN IN /ADDITIVEADDITIVE功能:建立数据表之间的临时关联功能:建立数据表之间的临时关联说明:说明:79 为在父表与子表之间建立关联为在父表与子表之间建立关联的关系表达式,通常为字段名。的关系表达式,通常为字段名。INTO INTO / 指定子表的工作区编指定子表的工作区编号或子表别名。号或子表别名。 IN IN /指定父表的工作区编指定父表的工作区编号或父表别名。号或父表别名。

50、 ADDITIVEADDITIVE表示在建立新的关联时,保留当前表示在建立新的关联时,保留当前工作区中已存在的表关联。工作区中已存在的表关联。注意:使用上述命令之前,必须在子表中建立与注意:使用上述命令之前,必须在子表中建立与 相匹配的索引。相匹配的索引。 80【例例3.193.19】在在“职工职工”表与表与“销售销售”表之间建立临时关联。表之间建立临时关联。USE USE 职工职工 IN 1IN 1USE USE 销售销售 IN 2IN 2SELECT SELECT 销售销售INDEX ON INDEX ON 职工号职工号 TAG TAG 职工号职工号 &销售表按职工号建立索引销售表

51、按职工号建立索引SET ORDER TO TAG SET ORDER TO TAG 职工号职工号 &设置主索引按职工设置主索引按职工号排序号排序SELECT SELECT 职工职工SET RELATION TO SET RELATION TO 职工号职工号 INTO INTO 销售销售BROWSEBROWSESELECT SELECT 销售销售BROWSE & BROWSE & 结果如图结果如图3-123-12所示所示81图图3-12 3-12 职工表与销售表职工表与销售表“一对多一对多”的临时关联的临时关联82格式格式1 1:SET RELATION OFF INTO

52、 SET RELATION OFF INTO / 功能:取消当前工作区中的父表与功能:取消当前工作区中的父表与 / 指定的工作区中的子表已建立的关指定的工作区中的子表已建立的关联。联。格式格式2 2:SET RELATION TOSET RELATION TO功能:取消当前工作区中的所有临时关联功能:取消当前工作区中的所有临时关联83【例例3.203.20】首先用表设计器为首先用表设计器为“销售销售”表增加一个表增加一个“金额金额(N,12,2)”(N,12,2)”字段,然后通过字段,然后通过“销售销售”表与表与“商商品品”的临时关联,计算出的临时关联,计算出“销售销售”表中的销售总金额。表中

53、的销售总金额。分析:由于销售分析:由于销售“数量数量”在销售表中,而商品单价在在销售表中,而商品单价在商品表,两者不在同一张表中,如果要计算销售金额,商品表,两者不在同一张表中,如果要计算销售金额,可以通过关键字可以通过关键字“商品号商品号”建立两表间的临时关联,建立两表间的临时关联, 使子表使子表-“-“商品商品”表的指针会随着主表表的指针会随着主表-“-“销售销售”表的指针联动,如图表的指针联动,如图3-133-13所示。然后再通过批量替换所示。然后再通过批量替换计算出各商品的金额。计算出各商品的金额。 返回84图图3-13 3-13 临时关联的指针联动示意图临时关联的指针联动示意图85U

54、SE USE 销售销售 USE USE 商品商品 IN 0 ORDER IN 0 ORDER 商品号商品号 &在最小未使用工作在最小未使用工作 区区打开商品表并指定主控索引打开商品表并指定主控索引SELECT SELECT 销售销售SET RELATION TO SET RELATION TO 商品号商品号 INTO INTO 商品商品&建立销售表与商建立销售表与商品表的临时关联品表的临时关联 REPLACE ALL REPLACE ALL 金额金额 WITH WITH 数量数量* *商品商品. .单价单价&根据数量和商根据数量和商品表的单价计算销售金额品表的单价计算销

55、售金额SET RELATION TO SET RELATION TO &取消已经建立的临时关联取消已经建立的临时关联LISTLIST&结果如图结果如图3-143-14所示所示 86图图3-14 3-14 例例3.203.20运行结果运行结果87数据字典是数据字典是Visual FoxProVisual FoxPro数据库所特有的一数据库所特有的一个数据集合,它是包含数据库中所有表(即数个数据集合,它是包含数据库中所有表(即数据库表)信息的一个表,用于存储表的长表名据库表)信息的一个表,用于存储表的长表名或长字段名、有效性规则和触发器,以及有关或长字段名、有效性规则和触发器,以及

56、有关数据库对象的定义(如视图和命名连接)等。数据库对象的定义(如视图和命名连接)等。 88数据字典可创建和指定的项目包括:数据字典可创建和指定的项目包括:建立表的主索引和候选索引建立表的主索引和候选索引为表和字段指定长名称为表和字段指定长名称为每个字段和表添加注释为每个字段和表添加注释为表的各个字段指定标题,这些标题将作为表为表的各个字段指定标题,这些标题将作为表头显示在头显示在“浏览浏览”窗口中窗口中为字段指定默认值为字段指定默认值89设置字段输入掩码和显示格式设置字段输入掩码和显示格式设置字段级规则和记录级规则设置字段级规则和记录级规则建立数据库表间的永久关联建立数据库表间的永久关联为表设

57、置触发器为表设置触发器建立存储过程建立存储过程建立本地视图和远程视图建立本地视图和远程视图建立到远程数据源的连接建立到远程数据源的连接903.2.1 3.2.1 长表名和表注释长表名和表注释 3.2.2 3.2.2 长字段名和字段属性长字段名和字段属性 3.2.3 3.2.3 设置记录规则设置记录规则 3.2.4 3.2.4 主索引与表间的永久关联主索引与表间的永久关联 3.2.5 3.2.5 参照完整性实现参照完整性实现 91为了更清楚地描述表的含义,可以为数据库表为了更清楚地描述表的含义,可以为数据库表设置长表名和表注释。设置长表名和表注释。数据库表可以使用长达数据库表可以使用长达1281

58、28个字符的名称,作个字符的名称,作为数据库引用该表的名称。为数据库引用该表的名称。 在在“表设计器表设计器”窗口中选择窗口中选择“表表”选项卡,如选项卡,如图图3-133-13所示,在窗口的所示,在窗口的“表名表名”中可以设置中可以设置数据库表的长表名,在数据库表的长表名,在“表注释表注释”中可以设置中可以设置表的注释。表的注释。 92图图3-15 3-15 在在“表设计器表设计器”中设置长表名和注释中设置长表名和注释指 定 长 表指 定 长 表名名指 定 表 注指 定 表 注释释返回93长字段名和字段属性是数据库表的特性,这些长字段名和字段属性是数据库表的特性,这些特性使得数据库表的性能要

59、优于自由表。长字特性使得数据库表的性能要优于自由表。长字段名和字段属性可以在段名和字段属性可以在“表设计器表设计器”窗口中的窗口中的“字段字段”选项卡下设置。选项卡下设置。94图图3-16 3-16 在在“表设计器表设计器”中设置长字段名和字段属中设置长字段名和字段属性性可输入长字段名可设置字段的显示格式可设置字段的输入格式可设置字段的标题可输入当前字段的注释可设置当前字段的默认值95在使用表设计器建立数据库表时,允许字段名在使用表设计器建立数据库表时,允许字段名称最多可以为称最多可以为128128个字符,并且自动存放在个字符,并且自动存放在“. .DBC”DBC”文件中,而其前文件中,而其前

60、1010个字符同时作为字个字符同时作为字段名存放在段名存放在“.DBF”.DBF”文件中。作为数据库表文件中。作为数据库表时,必须使用它的长字段名来引用该表中的字时,必须使用它的长字段名来引用该表中的字段。如果将表从数据库中移去,长字段名将被段。如果将表从数据库中移去,长字段名将被截取为截取为1010个字符。个字符。 96一般情况下,一般情况下,Visual FoxProVisual FoxPro将字段名作为标将字段名作为标题使用,但在实际应用中,可为数据库表中的题使用,但在实际应用中,可为数据库表中的字段建立标题,作为在字段建立标题,作为在“浏览浏览”窗口中显示时窗口中显示时的列标题。的列标题。 97所谓默认值,就是在向数据库表中添加新记录所谓默认值,就是在向数据库表中添加新记录时,为字段指定的、预先准备好的值。为字段时,为字段指定的、预先准备好的值。为字段设置合适的默认值,可以加快

温馨提示

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

评论

0/150

提交评论