数据与表的基本操作.ppt_第1页
数据与表的基本操作.ppt_第2页
数据与表的基本操作.ppt_第3页
数据与表的基本操作.ppt_第4页
数据与表的基本操作.ppt_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

第2章 Visual FoxPro基础,【主要内容】 2.1 数据库与表的概述 2.2 数据库的操作 2.3表的基本操作 2.4数据完整性,【目的要求】 掌握数据库的基本操作 掌握表的基本操作 掌握排序、索引的基本操作 掌握表间关系的意义及设置,2.1.1数据库,在建立Visual FoxPro数据库时,实际建立的数据库是扩展名为“DBC:”的文件,与之相关的,还会自动建立一个扩展名为“DCT”的数据库备注文件和一个扩展名为“DCX”的数据库索引文件,其中“DCT”和“DCX”这两个文件是供Visual FoxPro数据库管理系统管理使用的,一般不能直接使用这些文件。,在Visual FoxPro中,数据库可以说是一个逻辑上的概念和手段,它通过一组系统文件将相互关联的数据库表及其相关的数据库对象统一组织和管理。,2.1 数据库与表的概述,这两个文件是自动建立的 是供VF数据库管理系统管理使用的, 一般不能直接使用这些文件。,2.1.2 表,在关系数据库中,将关系称为表。在Visual FoXPro中,表就是规则的带有表头的二维表格,如图2.1所示。 表由表结构和表数据组成,表结构包括字段名、字段类型、字段宽度和小数位数等属性,表数据由表中的记录组成。,2.1.2 表,表中的行称为记录,表中的列称为字段,字段由字段变量和字段值组成。表中的第一行由字段变量组成,称为表头,字段变量是多值变量。,2.1.3 数据库与表,数据库管理的重要对象之一就是表,表既可以由数据库管理,也可以单独存在。归数据库管理的表称为数据库表,不归任何数据库管理的表称为自由表。在Visual FoxPro中,通过数据库操作可以将相互关联的数据库表统一管理。,数据库表,自由表,数据库表和自由表可以相互转换 自由表添加到数据库中成为数据库表 数据库表移出数据库成为自由表 一个表只能属于一个数据库 如果要将表从一个数据库转到另一个数据库中,必须先将它移出前一个数据库,才能加入后一个数据库。,自由表和数据库表的关系,2.2 数据库的操作,数据库的基本操作主要包括数据库的建立、打开、修改、指定当前数据库和关闭等,2.2.1 建立数据库,设置默认磁盘目录,使用设置命令,您希望的搜索路径,创建一个新的数据库-菜单法,1,2,3,新建文件名,单击”新建文件“按钮,4,新数据库文件名,新数据库文件名,创建一个新的数据库-菜单法,2命令方式,格式:CREATE DATABASE |? 参数“?”:如果不指定数据库文件名或使用参数“?”,都会弹出如图2-3所示的“创建”对话框。 用命令方式建立数据库不打开“数据库设计器”窗口,数据库只是处于打开状态,可以用MODIFY DATABASE命令或选择“显示”-“数据库设计器”-“数据库设计器”窗口,也可以不打开数据库设计器继续以命令方式操作。 建立数据库后,在“常用工具栏的数据库列表中显示新建立的数据库名或已打开的数据库。,数据库的基本操作,2.2.2打开数据库,1.菜单方式 文件打开- 选择数据库文件(*.dbc)- 确定 “文件”菜单,选择“打开”,在“打开”窗口,在文件类型下拉框内,选择数据库类型,然后输入要打开的数据库名,“确定”按钮,进入“数据库设计器”窗口。 2.命令方式 【格式】 OPEN DATABASE |? 【举例】 在当前目录下打开“教职工”数据库。 open database D:zxd学生数据库,修改一个数据库,【格式】 MODIFY DATABASE |? 【功能】 修改编辑一个数据库。同时打开数据库和数据库设计器窗口 【举例】 修改并编辑“教职工”数据库。 MODI data D:LIULI教职工,2.2.3 设置当前数据库,Visual FoxPro在同一时刻可以打开多个数据库,但在同一时刻只能有一个当前数据库。 【格式】 SET DATABASE TO 数据库文件名:指定一个已经打开的数据库为当前数据库。 如果不指定任何数据库,即输入命令: SET DATABASE TO 将会使得所有打开的数据库都不是当前数据库。 注意:所有的数据库都没有关闭,只是都不是当前数据库。 另外,也可以通过“常用”工具栏中的数据库下拉列表来指定当前数据库。如图27所示,2.2.4 关闭数据库,当数据库不再使用时应该关闭数据库。可以使用CLOSE DATABASE命令关闭当前数据库,也可以使用CLOSE ALL命令关闭所有打开的数据库。 【格式】CLOSE DATABASE CLOSE ALL 【注意】关闭“数据库设计器窗口并不是关闭数据库,2.2.5 删除数据库,删除数据库文件时,首先关闭要删除的数据库,再执行删除数据库操作。 【格式】 DELETE DATABASE|?DELETETABLES RECYCLE 【举例】 删除指定路径D:LIULI下的“教职工”数据库。 DELE data D:LIULI教职工 DELETETABLES:表示在删除数据库的同时,删除数据库中的表。 RECYCLE:表示删除的内容放入回收站。,建立表时,如果存在当前数据库,则建立的表为数据库表,否则,建立的表将是自由表。 表文件的扩展名“.DBF” 如果表中有备注型字段,系统生成一个主名与表名相同的扩展名为”.FPT”的备注文件。,2.3 表的基本操作,建立表时,应首先建立表的结构,再输入表中的数据。表结构是由字段组成的,每个字段包括: 字段名(FIELD_NAME):栏名 字段类型(FIELD_TYPE):栏内数据类型 字段宽度(FIELD_LEN):栏内数据的宽度 小数位数(FIELD_DEC):数值数据的小数位数 NULL:是否接受空值,即不确定的值,2.3.1 表结构的建立,表的结构:由若干栏组成,每栏称为一个字段,每个数据行称为一条记录,1、字段名是表中列的名称,必须以字母、汉字或下划线开头,可以包括字母、汉字、数字和下划线,,2、字段类型是表中每列数据的最大宽度,2、字段类型,字段宽度是表中每列数据的最大宽度,当字段类型为数值型、浮点型或字符型时,需要指定字段宽度,数值型和浮点型的宽度包括符号位、数字、小数点,各占一个字节;字符型和二进制字符型的宽度确定方法为汉字、全角字符占两个字节,半角字符、数字等占一个字节; 其他类型字段的宽度均由Visual FoxPro统一规定, 货币型、双精度、日期型、日期时间型:8字节 备注型、通用型、整型字段:4字节 逻辑型:1字节,3、字段宽度,数值型字段、浮点型字段和双精度型字段可规定小数位数,小数位数至少应比该字段的宽度值小2。,4、小数位数,NULL表示本字段是否接受空值NuLL, 空值是指不确定的值。,5、NULL,6.建立表结构,建立表时,首先要确定表中各字段的上述属性,即确定表的结构。表2-1给出了XSBDBF表中各字段的属性。,6.建立表结构,创建一个新表的方法: 菜单法:“文件” “新建” “表”“表设计器” 命令法:create 表文件名/? 工具法:“新建”工具“表”“表设计器”,创建一个新表-表设计器法,打开表设计器,1,2,3,新建表文件名程,单击”新建表“按钮,创建一个新的表,定义表结构,字段信息,能够接收NULL值标记,对字段加以注释,以提醒自己或其它用户,清楚地掌握字段的属性、意义及特殊用途等,对字段加以注释,1为字段输入注释,进行字段标题的设置,清楚概括学号字段的属性;长度可达128,2设置默认字段值 为了提高表中数据输入的速度和准确性, 设置字段数据的默认值时,注意字段的类型;字符型数据要加定界符“ ”,日期型数据要用到字符日期转换函数(CTOD)等,对入学时间设置默认值,为提高表中数据输入的速度和准确性,除了定义字段的默认值外,还可以定义字段格式和掩码。如,学号字段只接受数字字符,对学号字段设置输入掩码,3设置字段的格式和掩码,禁止在字符串的前后输入空格,格式掩码中可用的功能符和格式符,4设置字段的有效性规则,点击“字段有效性”中“规则”框的三点按钮,可在表达式生成器中设置字段的格式,对学号字段设置规则,违反规则的出错信息,二、 用命令方式创建表,CREATE TABLE 命令,语法,CREATE TABLEDBF TableName FREE (FieldName1 FieldType(nFieldWidth,nPrecision) ,FieldName2 .),表名,自由表,字段名,字段类型,字段长度,小数点位数,范例,直接录入数据:创建完表结构后,在输入数据记录对话框中选择“是”,如下图示,选择“是”,立即输入记录,2.3.2 表的数据录入,2 追加录入数据-对于已经建立好的表,在表的浏览状态下选“显示/追加方式”,可自动在尾部追加N条记录 选“表/追加新记录”,只允许添加一条记录 选“表/追加记录”,从选定文件向当前表添加多条记录,格式一:APPEND BLANK 短语BLANK表示追加一条空记录 格式二:APPEND FROM |? FIELDS SDF 格式三:INSERT INTO (字段1,字段2,) VALUE (表达式1,表达式2,);,命令方式:,菜单方式:,输入数据,选中该项后才能输入汉字,2.3.2 表的数据录入,打开图像文件后将它复制下来,在Visual FoxPro中粘贴该图像,按【Ctrl + W】键保存该图像,1,2,3,2.3.2 表的数据录入,修改数据记录,1,2,双击要修改记录的”照片“字段后打开通用字段编辑窗口,双击照片后打开图像编辑软件,输入记录时的注意事项,逻辑型字段宽度为1,只接受T,Y,F,N这4个字母之一(大小写均可) 日期型数据必须与系统日期格式相符 SET DATE MDY可将系统日期格式转换为美国日期格式mm/dd/yy,(1)把光标定位于“memo”或“gen”。 (2)按Ctrl+PgDn,Ctrl+PgUp或Ctrl+Home等组合键之一或双击鼠标,出现“memo”或“gen”编辑窗口。 (3)输入或编辑数据后,按Ctrl+W或单击关闭按钮,以储存数据和返回数据输入窗口;如果按Ctrl+Q或Esc键则放弃当前所输入的信息而返回。 (4)在备注型或通用型字段数据输入后,该记录的“memo”或“gen”中的第一个字母被改写成大写,变为“Memo”或“Gen”。 备注型与通用型字段值存储在与表文件同名,但扩展名为.FPT的备注文件中。,备注型与通用型字段的输入与编辑,备注型与通用型字段中已填有memo和gen等内容, 等待输入有关数据。操作如下:,2.3.3 表的显示 1.显示表结构 1)菜单方式:显示-表设计器 2)在数据库设计器中显示:右击要显示的表, -快捷菜单选择“修改” 3)命令方式 【格式】DISPLAY|LIST STRUCTURE 【功能】显示表文件的字段结构。,命令格式:,FOR WHILE ,说明:不使用条件和范围短语时,LIST显示全部记录,DISPLAY显示当前记录 范围:ALL:对表中全部记录进行操作; NEXT:对从当前记录在内的以下连续N条记录进行操作; RECORD:只对第N条记录进行操作; REST:对从当前记录到文件尾的所有记录进行操作。 FIELDS子句:指明当前操作涉及表的哪些字段,字段名间用“,”隔开,2.显示表记录,注意:FOR与WHILE子句均指明进行操作的记录的条件。 1.范围缺省时,FOR子句默认为ALL;WHILE子句则只从当前记录开始按条件筛选 2.当发现一个记录不满足条件时,FOR子句跳过该记录继续检查下去;WHILE子句则只操作到这个不满足条件的记录为止。 若两者同时出现,则优先处理WHILE子句,说明:命令与子句,子句与子句,子句的各部分间须至少以一个空格隔开;且各子句的书写顺序任意,区别:,1.修改表结构,菜单方式: 1.选定要打开的表:文件/打开 2.打开表设计器:显示/表设计器 命令方式:USE MODIFY STRUCTURE,添加字段,删除字段,修改字段内容,按着拖动改变字段位置,2.3.4 表的修改,1,2,选择”修改“菜单项,修改表结构,在数据库设计器中修改:右击要修改的数据库表-修改,1.修改表结构,2.修改表数据,在浏览状态下可以直接修改表中的数据,对于大批数据的修改,可用REPLACE命令: REPLACE WITH , with 表达式2FOR ,REPLACE命令功能:根据命令中指定的条件和范围,用表达式的值去更新指定字段的内容。 说明:WITH后面表达式的类型必须与WITH前面字段的类型一致 。,【例】 修改“学生”表的结构,增加“年龄”字段;将所有学生2004年的年龄填入该字段。 USE 学生 MODIFY STRU & 在表设计中添加入学时间字段,确定 replace all 入学时间 with 2008/9/1,2.3.5 表的浏览,菜单方式:在表打开的状态下,显示/浏览 命令方式:BROWSE 在数据库设计器中浏览:右击要修改的数据库表-浏览,表记录的删除可分为逻辑删除和物理删除两种操作。 逻辑删除还可以恢复,即去掉删除标记 物理删除则不可恢复。,2.3.6表记录的删除,可在“浏览”或“编辑”窗口中删除记录 点击作删除标记 选“表/彻底删除”对打了删除标记的记录作真正删除,删除标记当再次单击时,为取消标记,删除记录分两步进行:第一步将要删除的记录做删除标记, 第二步才将记录真正从表中删除。,1逻辑删除记录,若要有选择的删除一组记录,可单击“表/删除记录”,填写对话框。例如:,可将学生表中“入学成绩600分”的所有记录作删除标记; 要作物理删除,再单击“表/彻底删除”。,2.删除、恢复命令方式,格式:DELETE FOR ,格式:PACK DBF MEMO,格式:RECALL FOR ,格式:ZAP,(1)逻辑删除命令,(2).恢复命令-即取消删除标记命令,(3).物理删除命令,(4). 直接删除全部记录:,ZAP命令 与 DELETE ALL 和PACK两条命令执行的结果相同,区别在于ZAP直接执行物理删除。,注意:真删除记录时,表必须用独占方式打开,【例】 Use 学生 Delete next 6 &学生表上1到6条记录加删除标记 List Recall for 性别=男 &取消性别为男的记录的删除标记 Recall &取消当前记录的删除标记 Pack &将带有删除标记的记录从表中删除 Zap &将所有记录从表中删除,在表中,记录指针用于指向某一条记录,记录指针所指的记录称为当前记录。 指针定位是更改记录指针的位置:在表浏览状态下单击某条记录,即可将记录指针指向该条记录。 指针定位也可以用命令方式完成。命令方式完成指针定位一般包括绝对定位、相对定位和条件定位3种。,2.3.7 指针定位,浏览窗口中: 选择“表/转到记录”,指向当前记录的下一条记录,指向当前记录的上一条记录,转向第N条记录,指针指向第一条记录,指针指向最后一条记录,指针指向满足条件的第一条记录,菜单方式,2.3.7 指针定位,1.绝对定位 绝对定位与当前记录无关 n是记录号,即直接定位到记录号所指的记录。 TOP是指当不使用索引时记录号为1的记录,使用索引时是索引项排在最前面的记录。 BOTTOM是当不使用索引时记录号最大的那条记录,使用索引时索引项排在最后面的索引对应的记录。,2.3.7 指针定位,命令方式完成指针定位一般包括绝对定位、相对定位和条件定位。,格式:SKIP N,功能:将记录指针向前或向后作相对若干条记录的移动。 说明: 1、n为正数时,记录指针向下移动, n是负数时,记录指针向上移动。 2、省略选择项,约定为向下移动一条记录, 即SKIP 等价于SKIP 1。,2. 相对移动命令,格式:LOCATE 范围 FOR WHILE CONTINUE,条件是定位的关系表达式或逻辑表达式。,功能:将记录指针定位到指定范围内满足条件的第1条记录上。如果没有满足条件的记录,若给出范围短语,则指针指向范围内的最后一条记录,若未给出范围短语,则指针指向表尾。 如果要使指针指向下一条满足LOCATE FOR条件的记录,可以使用CONTINUE命令。同样,如果没有记录再满足条件,则指针指向表尾。,3. 条件定位,3条件定位,LOCATE是按条件定位记录指针的命令。 格式:LOCATE 范围 FOR 为了判别LOCATE或CONTINUE命令是否找到满足条件的记录,可以使用FOUND()函数测试查找操作是否成功,若找到满足条件的记录,则函数返回T,否则返回F,3条件定位,LOCATE命令常与循环结构结合使用,对表中所有满足条件的记录进行操作,常用的结构为: LOCATE FOR DO WHILE FOUND() 可以用NOT EOF()代替FOUND() CONTINUE ENDDO 即首先找到满足条件的第1条记录,接着在循环体内进行相关操作,然后使用CONTINUE命令找到下一条满足条件的记录,并进行处理。如此循环,一直到没有满足条件的记录为止。,1表的打开菜单方式 “文件”-“打开”,在“打开”对话框,选择将要打开的文件类型、文件名及其路径,单击“确定”按钮。,2.3.8 表的打开与关闭,也可以用以下几种方式打开数据库即相关表 1)打开包含表的数据库,启动数据库设计器 2)双击要打开的表 3)选择显示模式 单击 “显示”、“浏览”:浏览该表(browse) 以一行显示一条记录,每一列显示一个字段。,2打开、关闭表的命令方式,(1) 打开表 【格式】USE 【功能】在当前工作区打开一个表文件。 (2) 关闭表 【格式1】USE 【功 能】关闭当前工作区中正打开的表文件及其索引文件。 【格式2】CLOSE ALL|DATABASES 【功 能】关闭各种类型文件。,2.3.10工作区与同时使用多个表,1、工作区概念 VFP6.0提供了32767个工作区。 每个工作区只能打开一个表文件, 若在已有表文件的工作区打开新的表文件,以前打开的表文件就会自动关闭。 各表在各自的工作区中被操作。,2.3.10工作区与同时使用多个表,别名可以包含多达254个字母、数字或下划线,且必须以字母或下划线开头。,USE XSB ALIAS XB 表示:XB为XSB表所在工作区的别名,2. 工作区的表示:,数字表示:用数字1,2,332767表示。 字母表示:用字母A,B,C,J,W11,W12,W32767表示 别名表示:在某工作区打开表时指定了别名,那么该别名 就可以表示该工作区了。 USE 表名 IN 工作区号ALIAS 别名,格式:SELECT | 工作区是一个大于等于0的数字,用于指定工作区号.,工作区中数据使用规则:,当前区中:直接使用字段区,非当前区中:在字段名前加 区号.或区号-,3、指定工作区,2.3.11 表的索引,1索引概述 索引是一种快速查询和定位技术。若要按特定的顺序定位、查看或操作表中的记录,可以通过索引完成相关的操作。 在Visual FoxPro中,索引不仅提供一种排序机制,还提供关键字技术。 索引是一种逻辑排序方法,它不改变当前表文件记录的物理排序顺序,而是建立一个与该表文件相对应的索引文件。 即创建一个由指向DBF文件记录的指针构成的文件。,2索引关键字,如果一个字段集的值能唯一标识表中的记录而又不含有多余的字段,则称该字段集为候选关键字。一个表中可以有多个候选关键字,可以选择其中一个作为主关键字,简称关键字。 每一个表都有且只有一个主关键字。 在Visual FoxPro中,用候选索引表示候选关键字,用主索引表示主关键字。,(1)关键字,2索引关键字,如果一个字段集不是所在表的关键字,而是其他表的关键字,则称该字段集为外部关键字。 外部关键字常用来实现表与表之间的关系和表与表之间的参照完整性。,(2)外部关键字,3索引文件类型,索引文件分为单索引文件和复合索引文件, 复合索引文件又分为独立复合索引文件和结构复合索引文件。 单索引文件是扩展名为“IDX”的索引文件,用命令方式建立。 独立复合索引文件是文件名与表名不同,扩展名“CDX”的复合索引文件,用命令方式建立。 结构复合索引文件是文件名与表名相同,扩展名为“CDX”的复合索引文件,用命令方式和表设计器均可建立。,4索引类型,分类:分为主索引、候选索引、唯一索引和普通索引 (1)主索引 主索引的重要作用在于它的主关键字特性,主关键字的特性如下: 主索引只能在数据库表中建立且只能建立一个。 被索引的字段值不允许出现重复的值。 被索引的字段值不允许为空值。,如果一个表为空表,那么可以在这个表上直接建立一个主索引。 如果一个表中已经有记录,并且将要建立主索引的字段含有重复的字段值或者有空值,那么Visual FoxPro将产生错误信息。 如果一定要在这样的字段上建立主索引,则必须先删除有重复字段值的记录或有空值的记录。,(2)候选索引,候选索引和主索引具有相同的特性。建立候选索引的字段可以看作是候选关键字,一个表可以建立多个候选索引。候选索引与主索引一样,要求字段值的唯一性并决定了处理记录的顺序。 在数据库表和自由表中均可以为每个表建立多个候选索引。 (3)唯一索引 唯一索引只在索引文件中保留第一次出现的索引关键字值。唯一索引以指定字段的首次出现值为基础,选定一组记录,并对记录进行排序。 在数据库表和自由表中均可以为每个表建立多个唯一索引。,(4)普通索引,普通索引不仅允许字段中出现重复值,并且索引项中也允许出现重复值。它将为每一个记录建立一个索引项,而不管被索引的字段是否有重复记录值。 主索引和候选索引具有相同的功能,除具有按升序或降序索引的功能外,都还具有关键字的特性。建立主索引或候选索引的字段值可以保证唯一性,它拒绝出现重复的字段值。,5索引文件的

温馨提示

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

评论

0/150

提交评论