当前位置:文档之家› 第2章 表的基本操作

第2章 表的基本操作

第2章 表的基本操作
第2章 表的基本操作

第二章表的基本操作

2.1 表的建立与修改

表是存储数据的最基本单位,是数据库中的基本结构。表是由行和列组成的,每一行称为一个记录,每一列称为一个字段。表可以存储若干条记录,每条记录可以有若干字段,并且每条记录的字段结构相同。记录的顺序无所谓,可以任意交换。字段的顺序也可以任意交换。表2-1是图书表。

表2-1图书表

Visual FoxPro有两类表,一种是依附于数据库的数据库表,另一种是单独建立的表,这样的表称为自由表。数据库表可以在数据库设计器中创建,也可以将自由表添加到数据库中,使之成为数据库表。除了对自由表不能创建主索引外,两类表的操作基本相同,都以文件的形式独立存放在磁盘上,文件的扩展名都是.dbf。数据库的概念将在3.6.1节介绍。下面通过自由表介绍表的创建及操作。

2.1.1 表结构的建立

建立表首先要建立表结构,然后录入数据。表结构的建立需要确定表文件名及字段名、类型、宽度、小数位等。创建表结构的命令如下:

CREATE filename

说明:filename为表的文件名,其扩展名为.dbf。

[例2-1] 创建一个图书表ts.dbf,表结构如下:

字段字段名类型宽度小数位

1 书号字符型10

2 书名字符型20

3 作者字符型10

4 附光盘逻辑型 1

5 出版社字符型20

6 出版时间日期型8

7 单价数值型10 2

8 册数数值型 5 0

9 简介备注型 4

10 封面通用型 4

11 借出数数值型 5 0

创建步骤:

(1)在“命令”窗口中键入CREATE ts,进入如图2-1的表设计器窗口。

(2)输入字段名。字段名以字母或汉字开头,由字母、汉字、数字和下划线组成,长度不超过128个字符。

(3)在“类型”列中,单击右侧向下箭头,选择字段类型。

(4)在“宽度”列中,单击右侧向下箭头,输入以字节为单位的宽度。一个汉字占两个字节。

(5)仅对数值型和浮点型数据才设置小数位。

当所有字段都设置完毕,单击“确定”按钮,将出现一个对话框,询问是否立即输入数据。选“否”返回命令窗口,选“是”则进入数据录入窗口。

图2-1 ts.dbf的表设计器窗口

2.1.2 表数据的输入

表数据的输入有两种方法:一种是创建表结构后直接输入记录;另一种是使用APPEND命令添加记录。APPEND命令将在2.2.3节介绍。当使用CREATE命令创建表结构后,系统提问“现在输入数据记录吗?”,单击“是”按钮进入录入数据窗口。在该窗口中,每一行是一个字段,字段右侧的空白区域的宽度由字段长度决定,每一栏是一个记录。

可以移动光标输入数据,输入完一个字段后,按Enter键跳到下一个字段。

对于备注字段和通用字段,若其中没有内容,则memo或gen的第一个字母为小写字母,否则为大写字母。双击备注字段或在备注字段上按Ctrl+PgDn可以编辑备注字段,编辑完成后按Ctrl+w存盘。通用字段的编辑见第2.1.6节。

当所有记录输入完以后,按Esc键关闭此窗口。

按照上述步骤,将表2-1的数据添加到ts.dbf中。

2.1.3 表的打开与关闭

表是以文件形式存储在磁盘上的,在使用前必须将该文件调入内存中才能对其进行操作,这个过程称为打开表。操作结束时,为保证表中数据的安全,应将表关闭。

1.打开表

表的打开可以通过命令方式或菜单方式完成。

⑴命令方式

格式:USE <文件名>

功能:打开指定的表文件。

说明:<文件名>指表文件名,扩展名可以省略。

注意:USE命令有很多重要的可选项,我们将陆续详细介绍。

[例2-2]打开表

USE ts &&在当前工作区打开图书表ts.dbf

⑵菜单方式

选择主菜单的“文件”-> “打开”命令,屏幕上将出现打开对话框,指定文件夹,选择文件类型为表(.dbf),再选取要打开的文件。此时在“命令”窗口将出现相应的命令。如:USE ts.dbf exclusive

数据工作期也可以用来打开表,将在第3.3节介绍。

2.关闭表

关闭表可以使用如下命令之一:

(1)USE

功能:关闭当前工作区的表文件。

(2)CLOSE ALL

功能:关闭所有工作区的所有文件及其相关窗口,并指定1号工作区为当前工作区。(3)CLEAR ALL

功能:关闭所有工作区的所有文件及其相关窗口,释放内存变量,指定1号工作区为当前工作区。

[例2-3]打开/关闭表

use ts &&打开表ts.dbf

list &&显示表中记录

use &&关闭表ts.dbf

2.1.4 表结构的修改

修改表结构包括增加、删除字段,修改已有字段的名称、类型、宽度和小数位数。首先打开表文件,在“命令”窗口键入如下命令:

MODIFY STRUCTURE

屏幕上将出现如图2-1的表设计器窗口。利用插入删除按钮完成表结构修改。也可以在打开表文件后,选择“显示”菜单的“表设计器”,进入表设计器窗口。

2.1.5 表数据的修改

数据修改指增加、删除记录、修改字段内容等。

Visaul FoxPro提供了四条修改记录的命令:BROWSE、EDIT、CHANGE和REPLACE。其中,EDIT和CHANGE基本相同,BROWSE和CHANGE的区别是编辑窗口内的显示格式不同。BROWSE命令用二维表的形式显示记录,每条记录占一行,CHANGE以垂直方向显示记录,每个字段占一行,这两种方式可以相互转换。

BROWSE、EDIT、CHANGE命令都是以交互式方式修改记录,修改完毕按Ctrl+w保存,按ESC则退出修改。REPLACE命令(见第2.2.6节)是成批修改记录,常用于程序中。

BROWSE/CHANGE命令的格式比较复杂,这里仅介绍几个常用的可选项。其余选项详见联机帮助。

格式:BROWSE/CHANGE [<范围>] [FIELDS <字段表>] [FREEZE<字段>]

[FOR <条件表达式>] [NOEDIT] [NOAPPEND] [NODELETE] [NOMENU]

功能:以窗口形式浏览数据库记录。

说明:

①<范围>:可以是ALL、NEXT n、RECORD n、REST四个选项之一。各选项含义如下:ALL:全部记录

NEXT n:从当前记录开始往后的n条记录(包括当前记录)

RECORD n:第n条记录

REST:从当前记录开始往后的所有记录(包括当前记录)

注意:以后的命令凡涉及到范围,都指这四个选项。

②FIELDS <字段表>:指定要显示的字段,并控制字段的显示格式、特性及输入校验标准。<字段表>的格式为:

<字段1>

[:R] && 说明字段为只读方式,只能显示,不能修改。

[:B=<表达式1>,<表达式2>] &&设置字段输入值的上下边界

[:H=<字符表达式>] &&设置字段在窗口中的显示标题

[:W=<逻辑表达式>] &&依据逻辑表达式的真假值决定是否进入字段

[,字段2[:R]...]

③FREEZE <字段名>:除了由<字段名>指定的字段可以编辑修改外,其他字段只能显示,不能修改。

④NOEDIT:不允许修改表记录,只能显示浏览,但可以追加删除记录。

⑤NOAPPEND:不允许在BROWSE窗口追加记录。

⑥NODELETE:不允许用CTRL+T键或从主菜单的“表”菜单项中选择“切换删除标记”菜单项。

⑦NOMENU:不能访问“表”菜单项。

⑧字段可以是表固有的,也可以是由字段组成的表达式。

[例2-4] 使用BROWSE命令,在ts.dbf中,修改书名为“电子商务概论”的单价。

USE ts &&打开数据库

BROWSE fields 书号, 书名, 出版社, 单价

USE

注意:命令中的标点符号必须在非汉字状态下键入。

2.1.6 通用型字段的操作

表的通用型字段用于存放图像文件,使用特殊的命令存入并显示图像。

1.将图像文件存入字段中

格式:APPEND GENERAL <通用型字段名> FROM <图像文件名>

说明:图像文件名应该用双引号或单引号定界,并要给出扩展名。如果不在当前缺省目录,则还要指定路径。

[例2-5] 有一个表文件test.dbf,内容如下:

记录号BH PHOTO

1 1001 gen

2 1002 gen

3 1003 gen

执行如下操作:

USE test

GO 2 &&将记录指针移到第二条

APPEND GENERAL PHOTO FROM “d:\photo1.bmp”

SKIP

APPEND GENERAL PHOTO FROM “d:\photo2.bmp”

list

USE

屏幕上显示:

记录号BH PHOTO

1 1001 gen

2 1002 Gen

3 1003 Gen

2.显示通用字段

格式:@行,列SAY <通用字段名>

功能:在指定位置显示当前记录的通用字段中的图像

说明:“行,列”指被显示图像的左上角坐标。

[例2-6] 在屏幕第5行第10列显示表文件test.dbf中第2个记录中存储的图像。

USE test

GO 2

@5,10 SAY PHOTO

屏幕上显示:

2.2 表的维护命令

表的维护包括表与表结构的复制,记录的插入、删除与修改等。

2.2.1 表与表结构的复制

1.表的复制

根据一个已打开的表可以复制出一个新表,新表的结构和数据是原来表的部分或全部。

格式:COPY TO <新表文件名> [<范围>] [FIELDS <字段名表>] [FOR <条件表达式>]

功能:把当前表中指定范围内满足条件的记录拷贝到一个新的表文件中。

[例2-7]建立表ts1.dbf,它与ts.dbf完全相同

USE ts

COPY TO ts1

USE ts1 && 新拷贝生成的表必须打开才能浏览其内容LIST && 显示当前打开的表的内容

USE

屏幕上显示:

记录号书号书名作者附光盘出版社出版时间单价册数简介封面借出数

1 7900630449 Visual C++项目开发张志学 .F. 清华大学出版社 10/01/00 48.00 46 Memo Gen 1

2 7900637680 VisualBasic 范逸之 .T. 清华大学出版社 01/01/02 59.00 34 Memo Gen 2

3 7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程孔长征 .T. 北京希望电子出版社 08/01/02 48.00 46 Memo Gen 3

4 7507819523电子商务与网络英语王宏宇 .F. 中国国际广播出版社 01/01/99 39.00 67 Memo Gen 2

5 7505824872电子商务宝典斯蒂芬诺 .F.经济科学出版社 01/01/01 29.00 5

6 Memo Gen 1

6 7505716565网络世界的电子商务陈卫国 .F.中国友谊出版公司 01/01/01 22.00 64 Memo Gen 2

7 7507819493 网络金融与风险投资刘建国 .F. 中国国际广播出版社 01/01/99 28.00 80 Memo Gen 0

8 753592686X 电子商务法律热点张颖等 .F. 广东科技出版社 01/01/99 20.00 90 Memo Gen 1

9 7302048231 电子商务概论方美琪 .F. 清华大学出版社 05/01/02 37.00 65 Memo Gen 0

10 7115094810 MySQL与电子商务实战张家境.T. 人民邮电出版社 01/01/01 32.00 56 Memo Gen 0

[例2-8] 建立数据库ts2.dbf,它包含ts.dbf库中“清华大学出版社”出版的图书,且只有书号、书名、册数三个字段。

USE ts

COPY TO ts2 FOR 出版社=’清华大学出版社’FIELDS 书号,书名,册数

USE ts2

LIST

USE

屏幕上显示:

记录号书号书名册数

1 7900630449 Visual C++项目开发46

2 7900637680 VisualBasic 34

3 7302048231 电子商务概论65

2.表结构的复制

通过复制表结构,可以根据已有的表结构稍作修改就能快速创建新的表文件。

格式:COPY STRUCTURE TO <新表文件名> [FIELDS <字段名表>]

功能:将当前工作区中已打开的表文件的结构复制到新表文件中。

说明:

①新表文件可以指定路径。

②当选择FIELDS<字段名表>时,系统只把指定的字段复制到新表中;否则,系统将

复制全部字段到新表中。

③此命令只复制结构,不复制数据记录。

[例2-9]把ts.dbf的结构复制到ts3.dbf中

USE ts

COPY STRUCTURE TO ts3

USE ts3

LIST STRUCTURE &&显示新表的结构

USE

屏幕上显示:

表结构: D:\TS3.DBF

数据记录数: 0

最近更新的时间: 01/06/03

备注文件块大小: 64

代码页: 936

字段字段名类型宽度小数位索引排序Nulls

1 书号字符型10 否

2 书名字符型20 否

3 作者字符型10 否

4 附光盘逻辑型 1 否

5 出版社字符型20 否

6 出版时间日期型8 否

7 单价数值型10 2 否

8 册数数值型 5 否

9 简介备注型 4 否

10 封面通用型 4 否

11 借出数数值型 5 否

** 总计** 98

[例2-10]把ts.dbf的书号、书名、作者、出版社、册数、借出数字段复制到ts4.dbf中。

USE ts

COPY STRU TO ts4 FIELDS 书号,书名,作者,出版社,册数,借出数

USE ts4

LIST STRU && 命令可以只写前面四个字符

USE

屏幕上显示:

表结构: D:\TS4.DBF

数据记录数: 0

最近更新的时间: 01/06/03

代码页: 936

字段字段名类型宽度小数位索引排序Nulls

1 书号字符型10 否

2 书名字符型20 否

3 作者字符型10 否

4 出版社字符型20 否

5 册数数值型 5 否

6 借出数数值型 5 否

** 总计** 71

2.2.2表记录的显示

表建立以后,可以使用LIST或DISPLAY命令显示其中的记录。

格式:LIST / DISPLAY [[FIELDS] <字段名表>] [<范围>] [FOR<条件表达式>] [WHILE<条件表达式>]

说明:

①FIELDS子句指定显示哪些字段,省略则显示所有字段。

②<范围>:可以是ALL、NEXT n、RECORD n、REST四个选项之一。当<范围>子句缺省时,LIST命令与DISPLAY命令的默认范围见表2-2。

③LIST与DISPLAY命令的区别:LIST滚屏显示所有记录,而DISPLAY显示满一屏

时暂停,等待用户按键再继续显示记录。

④FOR子句在指定范围内筛选满足条件的所有记录,WHILE子句遇到指定范围内第一个使<条件表达式>为假的记录就停止。

表2-2<范围>子句缺省时

[例2-11]显示图书表中的记录。

USE ts

DISPLAY fields 书号,书名, 出版社, 册数&&显示当前记录,即第一条记录USE

屏幕上显示:

记录号书号书名出版社册数

1 7900630449 Visual C++项目开发清华大学出版社46

注:读者可以通过例子比较LIST与DISPLAY的区别

2.2.3 记录指针的移动

在表文件中,每条记录都有一个记录号,记录号是输入记录时的物理顺序号,由系统自动加入。

每个表都有一个记录指针。打开表时,记录指针自动指向第一个记录(即首记录)。要对某个记录进行操作,必须将记录指针指向该记录,记录指针所指的记录称为当前记录。

记录的定位是指将记录指针移动到某一指定记录上。很多命令都能导致记录指针的移动,如LIST、DISPLAY命令,以及多个表的关联操作SET RELATION等。本节先介绍与记录指针有关的几个函数,然后介绍两个专门用于移动记录指针的命令。

1.相关函数

这里只介绍函数的最简单形式。

EOF( ):测试记录指针是否到达文件尾。(注:文件尾不是最后一条记录)

BOF( ):测试记录指针是否到达文件头。(注:文件头不是第一条记录)

RECCOUNT( ):返回表的记录数。

RECNO( ):返回当前记录号。当记录指针指向文件尾时,RECNO( )为最大记录号加1;

当记录指针指向文件头时,RECNO( )为1。

2.绝对移动指针命令GO/GOTO

格式:GO TOP | BOTTOM [IN <工作区号>|<工作区别名>]

或GO <数值表达式> [IN <工作区号>|<工作区别名>]

说明:

①IN 工作区号|工作区别名:表示移动其他工作区中的记录指针。工作区的概念见第三章。

②TOP:表的第一条记录。

③BOTTOM:表的最后一条记录。

④<数值表达式>:表示记录号。<数值表达式>前面的GO可以省略。

注:GO与GOTO等价

[例2-12]

USE ts

? RECCOUNT( ) && 输出最大记录数

10&& 屏幕上显示的结果

GO BOTTOM

? RECNO( )

10

GO 3

? RECNO( )

3

GO TOP

? RECNO( )

1

20 &&将记录指针移到第20号记录

? RECNO( )

11 &&记录指针指向表尾

USE

3.相对移动指针命令SKIP

格式:SKIP [<数值表达式>] [IN <工作区号>|<工作区别名>]

功能:相对于当前记录移动记录指针

说明:

①<数值表达式>为正值(N):记录指针从当前记录开始向文件尾方向移动N个记录。

②<数值表达式>为负值(-N):记录指针从当前记录开始向文件头方向移动N个记录。

③<数值表达式>缺省时:默认值为1,即SKIP与SKIP 1等同。

[例2-13]

USE ts

? RECNO( )

1

SKIP 6

? RECNO( )

7

SKIP –2

? RECNO( )

5

? EOF( )

.F.

LIST

? RECNO( )

11 &&LIST命令使记录指针指向文件尾

? EOF( )

.T.

GO TOP

? RECNO( )

1

? BOF( )

.F.

SKIP –1

? RECNO( )

1 &&文件头的记录号仍为1

? BOF( )

.T.

USE

2.2.4 记录的添加

当表文件建立以后,使用INSERT命令和APPEND命令向表中添加记录。前者在指定位置插入记录,后者在表末尾追加记录。但INSERT命令因为需要移动记录,比较浪费时间,通常都使用APPEND命令。

格式:APPEND [BLANK]

功能:在当前表的末尾添加记录。

说明:

①只键入APPEND命令将弹出录入数据窗口,可以输入一个或几个记录,这个命令在交互方式下运行。

②选择BLANK选项,在表的末尾添加一个空记录。在程序中经常使用这种形式。[例2-14]在ts.dbf的末尾追加一条空记录。

USE ts

APPEND BLANK

LIST

USE

屏幕上显示:

记录号书号书名作者附光盘出版社出版时间单价册数简介封面借出数

1 7900630449 Visual C++项目开发张志学 .F. 清华大学出版社 10/01/00 48.00 46 Memo Gen 1

2 7900637680 VisualBasic 范逸之 .T. 清华大学出版社 01/01/02 59.00 34 Memo Gen 2

3 7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程孔长征 .T. 北京希望电子出版社 08/01/02 48.00 46 Memo Gen 3

4 7507819523电子商务与网络英语王宏宇 .F. 中国国际广播出版社 01/01/99 39.00 67 Memo Gen 2

5 7505824872电子商务宝典斯蒂芬诺 .F.经济科学出版社 01/01/01 29.00 5

6 Memo Gen 1

6 7505716565网络世界的电子商务陈卫国 .F.中国友谊出版公司 01/01/01 22.00 64 Memo Gen 2

7 7507819493 网络金融与风险投资刘建国 .F. 中国国际广播出版社 01/01/99 28.00 80 Memo Gen 0

8 753592686X 电子商务法律热点张颖等 .F. 广东科技出版社 01/01/99 20.00 90 Memo Gen 1

9 7302048231 电子商务概论方美琪 .F. 清华大学出版社 05/01/02 37.00 65 Memo Gen 0

10 7115094810 MySQL与电子商务实战张家境 .T. 人民邮电出版社 01/01/01 32.00 56 Memo Gen 0

11 .F. / / memo gen

注意:新加入的记录各个字段取缺省值,字符型为空字符串,数值型为0,逻辑型为.F.。2.2.5 记录的删除与恢复

当某些记录不再需要时,可以将其删除。为避免删除误操作,Visual FoxPro把删除分为

两步,首先对要删除的记录加删除标记,即逻辑删除;然后再真正从表中删除它,即物理

删除。逻辑删除的记录可以用命令恢复。

1.加删除标记命令(逻辑删除)

格式:DELETE [<范围>] [FOR<条件表达式1>] [WHILE <条件表达式2>]

功能:对指定范围内满足条件的记录加上删除标记。

说明:当省略范围子句和FOR、WHILE子句时,DELETE命令的默认范围是当前记录。

[例2-15]删除ts.dbf中单价高于40的记录

USE ts

DELETE ALL FOR 单价>40

LIST 书号,书名,单价

USE

执行结果为:

记录号书号书名单价

1 *7900630449 Visual C++项目开发48.00

2 *7900637680 VisualBasic 59.00

3 *7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程48.00

4 7507819523 电子商务与网络英语39.00

5 7505824872 电子商务宝典29.00

6 7505716565 网络世界的电子商务22.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

11 0.00

注:记录左侧的*为删除标记。

2.删除状态控制

加删除标记的记录能否参与表的一些操作,取决于SET DELETED的设置。当SET DELETED ON时,逻辑删除的记录不参与表的操作;当SET DELETED OFF时,逻辑删

除的记录参与表的操作。系统启动时,SET DELETED 初始值为OFF状态。

[例2-16] 当SET DELETED 为ON状态时,不显示加删除标记的记录。

SET DELETED OFF

USE ts

GO 5

DELETE NEXT 2

LIST书号,书名,单价

屏幕上显示:

记录号书号书名单价

1 *7900630449 Visual C++项目开发48.00

2 *7900637680 VisualBasic 59.00

3 *7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程48.00

4 7507819523 电子商务与网络英语39.00

5 *7505824872 电子商务宝典29.00

6 *7505716565 网络世界的电子商务22.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

11 0.00

SET DELETED ON

LIST

USE

屏幕上显示:

记录号书号书名单价

4 7507819523 电子商务与网络英语39.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

11 0.00

3.恢复命令

格式:RECALL [<范围>] [FOR<条件表达式1>] [WHILE <条件表达式2>] 功能:对指定范围内满足条件的记录取消其删除标记。

说明:

①当省略范围子句和FOR子句,RECALL命令的默认范围是当前记录。

②RECALL命令只能恢复被逻辑删除的记录,不能恢复被物理删除的记录。[例2-17] 记录的删除与恢复

SET DELETED OFF

USE ts

LIST 书号,书名,单价

屏幕上显示:

记录号书号书名单价

1 *7900630449 Visual C++项目开发48.00

2 *7900637680 VisualBasic 59.00

3 *7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程48.00

4 7507819523 电子商务与网络英语39.00

5 *7505824872 电子商务宝典29.00

6 *7505716565 网络世界的电子商务22.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

11 0.00

RECALL RECORD 2

LIST书号,书名,单价

屏幕上显示:

记录号书号书名单价

1 *7900630449 Visual C++项目开发48.00

2 7900637680 VisualBasic 59.00

3 *7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程48.00

4 7507819523 电子商务与网络英语39.00

5 *7505824872 电子商务宝典29.00

6 *7505716565 网络世界的电子商务22.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

11 0.00

RECALL FOR left(书号,2)=’75’

LIST 书号,书名,单价

USE

屏幕上显示:

记录号书号书名单价

1 *7900630449 Visual C++项目开发48.00

2 7900637680 VisualBasic 59.00

3 *7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程48.00

4 7507819523 电子商务与网络英语39.00

5 7505824872 电子商务宝典29.00

6 7505716565 网络世界的电子商务22.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

11 0.00

4.物理删除命令

格式:PACK [MEMO] [DBF]

功能:将加删除标记的所有记录从表中物理删除。

说明:

①如果执行PACK命令时同时打开了表索引文件,则系统自动重建打开的索引文件。

②MEMO:该选项表示只压缩带删除标记记录的备注字段的内容。

③DBF:与MEMO正相反,DBF选项使PACK命令只压缩加了删除标记的记录,而不压缩相应的备注文件。若两个选项都缺省,则既压缩记录也压缩备注文件。

[例2-18] 将ts.dbf中所有加删除标记的记录先恢复,然后将最后的空记录删掉。

USE ts

RECALL all

GO BOTTOM

DELETE

LIST 书号,书名,单价

屏幕上显示:

记录号书号书名单价

1 7900630449 Visual C++项目开发48.00

2 7900637680 VisualBasic 59.00

3 7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程48.00

4 7507819523 电子商务与网络英语39.00

5 7505824872 电子商务宝典29.00

6 7505716565 网络世界的电子商务22.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

11 * 0.00

PACK

USE

屏幕上显示:

记录号书号书名单价

1 7900630449 Visual C++项目开发48.00

2 7900637680 VisualBasic 59.00

3 7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程48.00

4 7507819523 电子商务与网络英语39.00

5 7505824872 电子商务宝典29.00

6 7505716565 网络世界的电子商务22.00

7 7507819493 网络金融与风险投资28.00

8 753592686X 电子商务法律热点20.00

9 7302048231 电子商务概论37.00

10 7115094810 MySQL与电子商务实战32.00

5.清空表

格式:ZAP

功能:删除表库中的全部记录,但保留表结构。

执行ZAP命令时,系统将提示用户是否要删除所有记录。

[例2-19] 将例2-8中的表ts2.dbf清空。

USE ts2

LIST

屏幕上显示:

记录号书号书名册数

1 7900630449 Visual C++项目开发46

2 7900637680 VisualBasic 34

3 7302048231 电子商务概论65

ZAP

LIST

LIST STRU

USE

屏幕上显示:

表结构: D:\TS2.DBF

数据记录数: 0

最近更新的时间: 01/06/03

代码页: 936

字段字段名类型宽度小数位索引排序Nulls

1 书号字符型10 否

2 书名字符型20 否

3 册数数值型 5 否

** 总计** 36

说明:当执行ZAP时,系统弹出一个确认对话框,询问是否ZAP ts2,回答“是”,则将表中所有记录物理删除,但表结构不变。

2.2.6 表数据的替换命令

修改表中的记录可以使用BROWSE命令在交互方式下进行,也可以使用REPLACE 命令,这条命令是非交互的,用于批量修改数据。

格式:REPLACE <字段1> WITH <表达式1 > [, <字段2> WITH <表达式2 > [<范围>] [FOR<条件表达式>]

功能:在指定范围内,将满足条件的记录的某些字段用相应表达式的值替换。

说明:

①首先计算表达式,再用表达式的值替换前面的字段。要求表达式与字段类型匹配。

②当省略范围子句和FOR子句时,REPLACE命令的默认范围是当前记录。

[例2-20] 将ts.dbf中所有附带光盘的书的单价增加5元。

USE ts

LIST 书号,书名,附光盘,单价

屏幕上显示:

记录号书号书名附光盘单价

1 7900630449 Visual C++项目开发 .F. 48.00

2 7900637680 VisualBasic .T. 59.00

3 7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程 .T. 48.00

4 7507819523 电子商务与网络英语 .F. 39.00

5 7505824872 电子商务宝典 .F. 29.00

6 7505716565 网络世界的电子商务 .F. 22.00

7 7507819493 网络金融与风险投资 .F. 28.00

8 753592686X 电子商务法律热点 .F. 20.00

9 7302048231 电子商务概论 .F. 37.00

10 7115094810 MySQL与电子商务实战 .T. 32.00

REPL ALL 单价WITH 单价+5 FOR 附光盘

LIST 书号,书名,附光盘,单价

USE

屏幕上显示:

记录号书号书名附光盘单价

1 7900630449 Visual C++项目开发 .F. 48.00

2 7900637680 VisualBasic .T. 64.00

3 7900101926 https://www.doczj.com/doc/cd2698667.html,编程实例教程 .T. 53.00

4 7507819523 电子商务与网络英语 .F. 39.00

5 7505824872 电子商务宝典 .F. 29.00

6 7505716565 网络世界的电子商务 .F. 22.00

7 7507819493 网络金融与风险投资 .F. 28.00

8 753592686X 电子商务法律热点 .F. 20.00

9 7302048231 电子商务概论 .F. 37.00

10 7115094810 MySQL与电子商务实战 .T. 37.00

实验二 SQL Server 数据表的基本操作与查询

实验二SQL Server数据表的基本操作 一、实验目的 1.掌握创建数据库和表的操作。 2.熟悉SQL Server查询分析器环境。 3.掌握基本的SELECT查询及其相关子句的使用。 4.掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。 二、实验内容 1.创建XSCJ数据库。 2.在XSCJ数据库中创建学生情况表XSQK,课程表KC,学生成绩表XS_KC。 3.在XSQK、KC、XS_KC表中输入数据。 4.启动SQL Server 2000 查询分析器环境。 5.涉及多表的简单查询。 6.涉及多表的复杂查询。 三、实验步骤 1.创建SQL SERVER数据库与数据表 1) 创建XSCJ数据库。 2) 打开创建的 XSCJ数据库,并在“SQL Server Enterprise Mananger” 窗口的右边窗口中选择“表”对象。 3) 选择“操作”菜单中的“新建表”命令,打开SQL Server的表编辑器 窗口。 4) 根据表2-1所示的表结构增加新列。 5) 点击快捷工具栏上的保存快捷按钮,在弹出的“选择名称”对话框中 输入表名XSQK,然后单击“确定”按钮,关闭表编辑器窗口,完成新 表的创建。 6) 打开“表”对象,在“SQL Server Enterprise Manager”窗口的右边 窗口中选择刚才创建的“XSQK”表。 7) 选择“操作”菜单中的“打开表”子菜单下的“返回所有行”命令, 打开表的数据记录窗口。

8) 输入的学生情况数据记录见表2-2。 表2-2 学生情况记录 9) 用同样方法创建课程表KC,表的结构见表2-3所示,表的内容见表2-4 所示。 表2-4 课程表记录 10)创建成绩表XS_KC,表的结构见表2-5所示,表的内容见表2-6所 示。

实验报告1 数据库及表基本操作

实验报告一数据库及表基本操作 姓名:全青青学号:1002010117 班级:无机非一班日期:2 请填入你的班级和做实验的日期。按照《数据库技术及应用——习题与实验指导》第一部分实验指导中“实验三熟悉Access系统集成环境”、“实验四数据库操作”、“实验五表操作”和预习“实验一数据库设计”、“实验二SQL语言应用”的实验内容,边完成各项实验操作,边按要求填写该实验报告。 一、实验目的 1.掌握Access 2003的基本操作。 2.掌握建立一个数据库文件,并对其实施打开与关闭的操作方法。 3.掌握创建表的基本操作方法。 4.掌握对各表完成部分数据操纵的方法。 二、实验报告内容 1.按照P.10实验3-2的操作提示将创建的空数据库命名为“某某的第一个数据库”(注:某某为自 己的姓名),保存位置为以自己姓名命名的文件夹,并将保存文件的对话框粘贴到此:

2.按照P.15实验4-2的操作提示,关闭自己所创建的数据库;再按照P.15实验4-1的操作提示, 找到保存自己所创建的数据库的位置,打开自己所创建的数据库,并将打开文件的对话框粘贴到此:

3.参照P.16实验5-1的操作提示,预习“实验一数据库设计”并根据P.3中实验1-4的8个表结 构逐一定义每个表每个字段的名字、类型、长度等相关内容,并将定义好的每一个表设计视图窗口粘贴到此: 表1-1-1 “学院”表结构(表设计视图窗口)

表1-1-2 “系”表结构(表设计视图窗口)

表1-1-3 “班级”表结构(表设计视图窗口)

表1-1-4 “学生”表结构(表设计视图窗口)

实验3 数据表的基本操作

实验3 数据表的基本操作 实验目的 ●掌握数据表的创建、修改和删除操作 ●学会使用企业管理器和Transact-SQL语句操作数据表 背景知识 在使用数据库的过程中,接触最多的就是数据库中的表。表是数据存储的地方,是数据库中最重要的部分,管理好表也就管理好了数据库。 表是由行和列组成的。创建表的过程主要就是定义表的列的过程。表的列名在同一个表中具有唯一性,同一列的数据属于同一种数据类型。除了用列名和数据类型来指定列的属性外,还可以定义其它属性:是否为空、默认值、标识符列、全局唯一标识符列等。 约束是SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。在SQL Server中有5种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和默认约束(Default Constraint)。 实验示例 1. 创建数据表 一、使用企业管理器创建数据表 在myDB数据库中新建一个数据表myTable,演示各种数据类型列以及含有空值列、默认值列、标识符列、全局唯一标识符列属性的数据类型列。注:如果没有myDB数据库,就参考实验2创建一个myDB数据库。 在企业管理器中,展开数据库“myDB”节点,右键单击“表”对象,从弹出的快捷菜单中选择“新建表”命令,如图3-1所示,就会出现新建表窗口,在新建表窗口中可以定义列名称、列定义、长度、精度、小数位数、是否允许为空、默认值、标识符列等。

数据库及表的基本操作

第四章数据库与表的基本操作 实验4-1 数据库及表的操作 (一)实验目的 1.掌握创建数据库的基本操作方法。 2.熟练掌握创建表结构和输入记录的操作方法。 3.熟练掌握修改表结构、浏览和修改表记录数据的操作。 4.熟练掌握建立索引的操作。 5.掌握创建表间联系的操作。 (二)实验内容及步骤 1.创建数据库 【实例4-1】在实验2-1所建立的“教学管理.pjx”项目中,创建一个“学生成绩.dbc”数据库。 操作步骤如下: (1)打开“教学管理.pjx”项目。 (2)在“项目管理器”窗口中,选择“数据库”,然后单击“新建”按钮,打开“新建数据库”对话框,单击其中的“新建数据库”按钮,打开“创建”对话框,如图4-1所示。 图4-1“创建”对话框 (3)在“保存在”文本框中,选择保存数据库的文件夹“程序VX”;在“数据库名”文本框中,输入数据库名称“学生成绩”。 (4)单击“保存”按钮,即在指定位置建立一个“学生成绩.dbc”数据库文件。 此时,在VFP主窗口中弹出一个“数据库设计器”窗口,同时还激活了“数据库设计器”工具栏,如图4-2所示。

图4-2“数据库设计器”窗口 2.创建数据表 【实例4-2】在“教学管理.pjx”项目中,创建学生表(Student.dbf)、成绩表(Grade.dbf)、课程表(Course.dbf)、授课表(Teach.dbf)和教师表(Teacher.dbf)。各个表的结构和数据记录如图4-3、图4-4、图4-5、图4-6、图4-7、图4-8、图4-9、图4-10、图4-11和图4-12所示。 图4-3学生表(Student.dbf)的结构 图4-4学生表(Student.dbf)的记录浏览窗口

数据库与表的基本操作

第四章数据库与表的基本操作 实验4-1数据库及表的操作 (一)实验目的 1.掌握创建数据库的基本操作方法。 2.熟练掌握创建表结构和输入记录的操作方法。 3.熟练掌握修改表结构、浏览和修改表记录数据的操作。 4.熟练掌握建立索引的操作。 5.掌握创建表间联系的操作。 (二)实验内容及步骤 1.创建数据库 【实例4-1】在实验2-1所建立的“教学管理.pjx”项目中,创建一个“学生成绩. dbc”数据库。 操作步骤如下: (1)打开“教学管理.pjx”项目。 (2)在“项目管理器”窗口中,选择“数据库”,然后单击“新建”按钮,打开“新建数据库”对话框,单击其中的“新建数据库”按钮,打开“创建”对话框,如图4-1 所示。 图4-1“创建”对话框 (3)在“保存在”文本框中,选择保存数据库的文件夹“程序VX”;在“数据库名”文本框中,输入数据库名称“学生成绩”。 (4)单击“保存”按钮,即在指定位置建立一个“学生成绩.dbc”数据库文件。此时,在VFP主窗口中弹出一个“数据库设计器”窗口,同时还激活了“数据库设计

18 器”工具栏,如图4-2所示。 数据库应用学习与实训指导 图4-2“数据库设计器”窗口 2.创建数据表 【实例4-2】在“教学管理.pjx”项目中,创建学生表(Student.dbf)、成绩表(Grade.dbf)、课程表(Course.dbf)、授课表(Teach.dbf)和教师表(Teacher.dbf)。各个表的结构和数据记录如图4-3、图4-4、图4-5、图4-6、图4-7、图4-8、图4-9、图4-10、图4-11 和图4-12所示。 图4-3学生表(Student.dbf)的结构 图4-4学生表(Student.dbf)的记录浏览窗口

实验2-oracle数据库和表基本操作(一)

实验二数据库和表的基本操作(一) 一、实验内容、步骤 1.进入“Enterprise Manager Console”控制台,建立如下 表格,并将其保存在system表空间中。 2.进入MS-DOS方式下。 3.按顺序分别执行以下几组命令,仔细观察屏幕显示,比较其有什么异同之处: (1) sqlplus /nolog (以不连接数据库方式启动sql*plus) Show sga ;(显示实例的SGA区大小) (2) conn system/jsjtx as sysdba;(以具有sysdba或sysoper 权限的数据库用户system连接到默认的 Oracle数据库--jsjtx) Show sga; Show user; (查看当前用户) Conn system/jsjtx;(切换到system模式,即以system用户模式连接到数据库) Show user; Select * from tab;(查看当前用户的所有表和视图) Select * from “307计通123”;(查看自建表307计通123中的内容)

(3) conn scott/tiger; Show user; Select * from tab; Select * from dept; (4) shutdown normal;(仔细分析其执行后屏幕提示,如果出现异常,如何解决?) 二、实验目的要求 1.掌握sql*plus的基本使用方法,连接并打开数据库的方法,关闭数据库的方法; 2.熟悉一些数据库操作的基本命令:sqlplus /nolog; connect;show user;select * from tab;select * from <数 据表>;shutdown normal。 三、实验报告内容要求 1.写出利用企业控制台建立数据表的主要步骤。 2.描述上述每一组命令的执行结果,并比较其异同。 3.总结实验中所用命令的用法。

数据结构线性表基本操作(C语言)

#include #include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status; typedef int ElemType; #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct { ElemType *elem; int length; int listsize; }SqList; Status InitList_Sq(SqList *L); //构造空的线性表 void DestroyList_Sq(SqList *L); //销毁一个线性表 void ClearList_Sq (SqList *L); //将L置为空表 Status ListEmpty_Sq (SqList L); //空表返回TRUE Status ListLength_Sq (SqList L); // 返回元素个数 Status GetElem_Sq (SqList L, int i, ElemType *e); //用e返回第i个元素算法2.2中使用 Status LocateElem_Sq(SqList L, ElemType e, Status (* compare)(ElemType, ElemType)); // 在L中找到一个值与e满足compare()的元素的位序 Status PriorElem_Sq(SqList L, ElemType cur_e, ElemType *pre_e); //用pre_e返回cur_e的前驱 Status NextElem_Sq(SqList L, ElemType cur_e, ElemType *next_e); //用next_e返回cur_e的后继 Status ListInsert_Sq(SqList *L, int i, ElemType e); //在第i位插入新的元素e Status ListDelete_Sq(SqList *L, int i, ElemType *e); //删除第i个元素用e返回 //算法2.3

数据表的基本操作

数据表的基本操作(1) 学习目标:1、继续熟悉wps表格的应用环境,了解数据表的组成。 2、学会数据表的编辑操作,掌握数据表中基本数据的输入方法,并能 进行简单应用。 学习重点:1、学会数据表的基本编辑操作 2、掌握数据表中基本数据的输入方法 学习难点:特殊格式数据的输入 学习过程: 一、继续熟悉wps表格的应用环境 1、回顾上节课所学。 2、启动打开wps表格的应用环境完成一些操作: 1)、新建一个工作薄。 2)、指出行号与列标,怎样表示单元格的地址?什么是活动单元格? 3)、对数据表重命名。 二、学习数据的输入 1、文本字符的输入:包括汉字,英文字母及一些符号。 方法:单击要输入数据的单元格,直接输入内容,按回车键 完成任务:A1:abc A2:黄河学校 A3:计算机 A4:@#¥ 2、数值数据的输入:简单归纳为以下几个 1)输入普通数值数据:完成:B1:100 2)输入负数:在数字前加一个负号“-”,或给数字加上圆 括号。完成:B2:-5 C2:(5) 3)输入小数:一般可以直接在指定的位置输入小数点即可 完成:B3:3.1415 4)输入分数:格式通常为“分子/分母”。如"1/5"应先输入“0” 和一个空格,然后输入“1/5”,如果不输入“0”,wps

表格会把该数据当做日期格式处理。完成:B4:0 1/5 C4:1/5 3、文本型数据:如学号 001 002 003…… 4、有规律数据的输入:数列的输入2、4、6、8、10…… 2、4、8、16、32…… 三、完成数据输入练习:1、照下图在第二张工作表中完成“初一(3)班学生周末 时 间 支 配 情 况 调 查 表(单位:分)”的输入。完成后练习今天学到的所有操作。 2、在sheet3中完成: 1)、在A列单元格中依次输入以下内容:高中、4.56、78%、45.00、¥45.00、 1/2、-25等数据 2)、在B列中输入

相关主题
文本预览
相关文档 最新文档