版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1数据表的建立3.2数据表的操作3.3数据表的索引第三章数据表的建立和使用3.4工作区的使用3.5表之间的临时关系1本章的重点要求重点掌握表结构的创建、修改和表记录的输入记录的浏览、定位、修改和删除索引的建立和主控索引的设置2
数据库表
自由表VFP中表的类型与数据库相关联的表与数据库无关联的表本章介绍自由表的基本操作33.1数据表的建立表(Table)-----二维表,在磁盘上存为表文件表中的一行为记录(Record)表中的一列为字段(Field)表文件的扩展名为.dbf43.1数据表的建立3.1.1表结构的设计3.1.2表结构的创建3.1.3表结构的修改3.1.4表记录的输入53.1.1表结构的设计定义字段名称
选择数据类型
确定字段宽度
指定小数位数
建立索引
确定是否允许空值6
字段名(FieldName)
见名知义,不能同名
字段名的命名规则P29名称中只能包含字母、下划线“_”、数字符号和汉字名称的开头只能是字母或汉字,不能是数字或下划线“_”自由表的字段名、表的索引标识名至多只能10个字符(即:至多5个汉字)xs_name、基本工资、07专业、所在院系名称3.1.1表结构的设计7
数据类型(Type)-输入数据必须具备的格式
最常用的:
C—字符型N—数值型F—浮点型D—日期型I—整型L—逻辑型M—备注型G—通用型3.1.1表结构的设计8
字段宽度(Width)定义:字段所能容纳数据的最大字节数或数值位数字符型字段的宽度最大为:254个字节数值型和浮点型的宽度最大为:20位
货币型、日期型、日期时间型、双精度型:8字节整型、备注型、通用型:4字节逻辑型:1字节3.1.1表结构的设计9
小数位数(Decimal)字段宽度
=
整数位数+小数点1位+小数位数对数值型、浮点型、双精度型字段3.1.1表结构的设计
索引(Index)放到3.3数据表的索引讲10
空值(.Null.)定义:空值是用来标识一个字段“没有值”的标志注意:(1)空值表示“没有任何值”或“没有确定值”(2)空值不等同于数值0、空字符串或逻辑“假”3.1.1表结构的设计11主要掌握:3.1.2表结构的创建1.利用表设计器建表2.利用SQL命令方式12【例3-1】利用表设计器创建P372附表13教师表(js.dbf)结构。
3.1.2表结构的创建字段名类型宽度NULL值ghC6否xmC8是xbC2是csrqD8是gzsjD8是zcmcC12是jbgzN7,2是xybhC2是jlM4是zpG4是【操作步骤】第1步:打开表设计器(1)项目管理器方式
(2)菜单方式第2步:创建表结构第3步:完成133.1.2表结构的创建第1步:打开表设计器(1)项目管理器方式
14第2步:创建表结构3.1.2表结构的创建第3步:完成15练习:通过菜单方式打开表设计器,创建如下表所示的职工表结构(zg.dbf),并将其添加到“学生学籍管理系统”项目中。3.1.2表结构的创建163.1.2表结构的创建打开表设计器(2)菜单方式选择“文件︱新建”菜单项
173.1.2表结构的创建将通过菜单创建的表添加到项目中18CREATETABLE<表文件名>(<字段名1><字段类型>[(<字段宽度[,小数位数]>)][NULL|NOTNULL][,<字段名2>…])
3.1.2表结构的创建【例3-2】利用CREATETABLE-SQL命令创建附表13教师表(js.dbf)结构。193.1.2表结构的创建CREATETABLEjs(ghC(6),xybhC(2)NULL,xmC(8)NULL,xbC(2)NULL,csrqDNULL,gzsjDNULL,zcmcC(12)NULL,jbgzN(7,2)NULL,jlMNULL,zpGNULL)
字段名类型宽度NULL值ghC6否xmC8是xbC2是csrqD8是gzsjD8是zcmcC12是jbgzN7,2是xybhC2是jlM4是zpG4是203.1.2表结构的创建SETNULLOFF:表示不接受空值,默认状态;SETNULLON:表示可以接受空值。
SETNULLON|OFF:控制表中的字段是否接受空值CREATETABLEjs(ghC(6)NOTNULL,xybhC(2),xmC(8),xbC(2),csrqD,gzsjD,zcmcC(12),jbgzN(7,2),jlM,zpG)
21主要掌握:3.1.3表结构的修改1.利用表设计器修改表结构2.利用ALTERTABLE-SQL命令221.利用表设计器修改表结构(1)项目管理器方式3.1.3表结构的修改修改字段名称、类型、宽度等保存对结构的修改23(2)菜单方式:“文件︱打开”菜单项(3)命令方式:
MODIFYSTRUCTURE1.利用表设计器修改表结构3.1.3表结构的修改242.利用ALTERTABLE-SQL命令3.1.3表结构的修改添加或修改字段ALTERTABLE<表文件名>ADD|ALTER[COLUMN]<字段名1><字段类型>[(字段宽度[,小数位数])]25添加字段:ADD[COLUMN]子句【例3-3】给教师表添加一个字段“jtdz”(家庭地址)。
ALTERTABLEjsADDCOLUMNjtdzC(20)可以省略用ALTERTABLE-SQL命令修改表结构26用ALTERTABLE-SQL命令修改表结构修改字段:ALTER[COLUMN]子句【例3-4】将教师表“jtdz”的字段宽度由20改为30。
ALTERTABLEjsALTERCOLUMNjtdzC(30)可以省略27用ALTERTABLE-SQL命令修改表结构重命名字段:RENAME[COLUMN]子句【例3-5】将教师表字段家庭地址(jtdz)改为dzALTERTABLEjsRENAMECOLUMNjtdzTOdz可以省略28用ALTERTABLE-SQL命令修改表结构删除字段:DROP[COLUMN]子句【例3-6】删除教师表的字段家庭地址(dz)
ALTERTABLEjsDROPCOLUMNdz可以省略293.1.4表记录的输入【例3-7】在【例3-1】创建的教师表(js.dbf)中输入数据记录工号姓名性别出生日期工作时间职称名称基本工资系院编号010001李平男1961-9-41985-8-3教授4500.501010002王一刚男1976-4-92002-8-6讲师300001010003程莉女1980-4-62004-8-9助教1750.501020001方媛女1972-9-41997-8-3讲师2800.502020002邓芳女1973-7-201998-8-5讲师260002020003蒋凯男1977-9-42000-8-2助教185002030001王宏伟男1959-7-241987-8-6教授500003030002陆文龙男1972-12-211996-8-3讲师240003030003谈向东男1973-11-141997-8-3讲师220003040001汪涛男1955-1-101977-8-7教授400004303.1.4表记录的输入【例3-7】在【例3-1】创建的教师表(js.dbf)中输入数据记录1.打开表的浏览窗口2.输入数据记录多条记录:“显示”+“追加方式”一条记录:“表”+“追加新记录”用Tab建移到下一字段31备注型字段的输入:双击M型字段FoxPro规定:含有备注型或通用型字段,在生成表文件(.dbf)的同时,自动生成扩展名为“.fpt”的备注文件特殊字段的输入:3.1.4表记录的输入32通用型字段的输入:双击双击gen字段注意:在输入的前后G与g,M与m变化3.1.4表记录的输入选择“编辑︱插入对象”333.1.4表记录的输入通过INSERTINTO-SQL命令输入记录INSERTINTO<表名>[(<字段1>[,<字段2>…])]VALUES(<表达式1>[,<表达式2>…])
例如:INSERTINTOjs(gh,xm,xb,csrq)VALUES("020004","高山","男",{^1977-2-2})343.2数据表的操作3.2.1表的打开和关闭3.2.2记录的浏览和显示3.2.3记录的定位3.2.4记录的修改3.2.5记录的删除3.2.6数据的筛选353.2.1表的打开和关闭表的打开刚创建的表处于打开状态(1)界面方式(2)命令方式表的关闭363.2.1表的打开和关闭可以通过“显示”菜单判断表是否已经打开
表未打开
表已经打开37①界面方式打开3.2.1表的打开和关闭文件/打开数据工作期/打开项目管理器浏览38①界面方式3.2.1表的打开和关闭表的关闭数据工作期/关闭393.2.4表的独占与共享表的打开②命令方式USE<表文件名>[NOUPDATE][EXCLUSIVE|SHARED]①NOUPDATE指定以“只读”的方式打开表,省略时以“读/写”的方式打开。②EXCLUSIVE指定以“独占”方式打开表。③SHARED指定以“共享”方式打开表。403.2.1表的打开和关闭表的关闭②命令方式(1)关闭当前工作区中表USE
(2)关闭所有工作区中的表CLOSETABLES
(3)关闭所有文件但不释放内存变量CLOSEALL
(4)关闭所有文件并释放内存变量
CLEARALL413.2.2记录的浏览和显示记录的浏览②使用BROWSE命令①使用浏览窗口通过LIST/DISPLAY命令
记录的显示42①使用浏览窗口记录的浏览项目管理器方式菜单方式
使用滚动条、箭头键和Tab键浏览表改变字段的显示顺序改变字段的显示宽度“窗口拆分条”将窗口分为两个窗格以“编辑”和“浏览”方式显示表中的记录43记录的浏览②使用BROWSE命令BROWSE[FIELDS<字段名表>][FOR<条件表达式>]
【例3-12】浏览教师表(js.dbf)中性别为女,基本工资大于2000元的教师的工号、姓名、基本工资。BROWSEFIELDSgh,xm,jbgzFORxb="女"andjbgz>200044记录的显示通过LIST/DISPLAY命令例如: USEjs DISPLAY LIST DISPLAYALL453.2.3记录的定位(1)记录的三个控制标志
(2)记录的定位方式(3)记录定位的实现对记录进行定位,即将记录指针移到指定的记录上。
46(1)记录的三个控制标志
记录号:VFP按输入的顺序为每个记录指定记录的开始标志记录指针标志记录的结束标志3.2.3记录的定位47文件头(包含表结构等信息)第1条记录第2条记录第N条记录...每当打开一个表文件时,记录指针总是指向第一条记录,即RECNO()的返回值为1(1)记录控制标志
记录开始标志BOF()记录结束标志EOF()记录指针标志RECNO()3.2.3记录的定位48打开表时记录控制标志的状态(1)记录控制标志
记录指针的初始值总是1,不可能为0或负数,最大值为记录总数加1表中记录情况BOF()EOF()RECNO()无记录(浏览前).T..T.1无记录(浏览后).F..T.1有记录.F..F.13.2.3记录的定位49移动记录指针指向用户所需操作的记录(即成为当前记录)的过程(2)记录的定位方式3.2.3记录的定位分类:绝对定位
相对定位条件定位
50
绝对定位:把指针移动到指定的位置
例如:“第一个”“最后一个”“记录号n”
相对定位:指针从当前位置开始,相对向前或向后移动若干记录位置例如:“下一个”、“前一个”
条件定位:按照条件自动查找记录(2)记录的定位3.2.3记录的定位513.2.3记录的定位(3)记录定位的实现①界面方式②命令方式523.2.3记录的定位①界面方式当表处于浏览状态时选“表”----“转到记录”绝对定位相对定位单击“记录号”后弹出“转到记录”窗口533.2.3记录的定位单击“定位”后弹出“定位记录”窗口条件定位54条件定位:实现按照条件自动查找记录3.2.3记录的定位作用范围:ALL:表中全部记录NEXT:从当前记录开始的N个记录Record:指定的记录(不受条件限制)Rest:当前记录及其后的所有记录553.2.3记录的定位【例3-14】将记录指针定位到教师表(js.dbf)中性别为“男”且系院编号为“02”的教师记录上。
【操作步骤】第1步:打开表的浏览窗口。第2步:选择“表︱转到记录”,打开“定位记录”对话框。第3步:设置定位条件:xb=”男”andxybh=”02”。第4步:完成。
563.2.3记录的定位通过“表达式生成器”设置定位条件57②命令方式3.2.3记录的定位绝对定位命令:GO/GOTOn:定位到记录号为n的记录上GO/GOTOTOP:定位到第一个记录上GO/GOTOBOTTOM:定位到最后一个记录上相对定位命令:SKIP[<n>]58②命令方式3.2.3记录的定位条件定位命令:LOCATEFOR<条件表达式>[<范围>]定位到满足条件的记录CONTINUE从当前记录开始继续进行条件定位59②命令方式3.2.3记录的定位例3-15
?recno()Usejsgo5skip+2skip–3Locateforxybh=“03”continue返回当前记录号函数147560②命令方式3.2.3记录的定位例3-16:假设js表有15条记录,先后执行以下命令bof()eof()recno()usejsskip-1skip-1gobottskipskip.f..f.1(打开).t..f.1出错:已到文件头.f..f.15.f..t.16出错:已到文件尾61界面方式命令方式3.2.4记录的修改621、界面方式的记录修改当表处于浏览状态时选“表”----“替换字段”【例3-17】对教师表(js.dbf)中职称名称为“教授”的职工,将其基本工资增加200元。选择要替换的字段给出替换表达式选择作用范围,生成替换条件单击“替换”得到结果632、命令方式的记录修改UPDATE-SQL(表不必事先打开)REPLACE(必须先把表打开)REPLACE<字段名1>WITH<表达式1>[ADDITIVE][,<字段名2>WITH<表达式2>[ADDITIVE]…][<范围>][FOR<条件表达式>]
UPDATE<表文件名>SET<字段名1=表达式1>[,<字段名2=表达式2>…][WHERE<条件表达式>]64(1)使用REPLACE命令USEjsREPLACEjbgzWITHjbgz+200FORxb="女“(2)使用UPDATE-SQL命令UPDATEjsSETjbgz=jbgz+200WHERExb="女"WHERE子句缺省时表示所有记录2、命令方式的记录修改【例3-18】将教师表(js.dbf)中性别为“女”的教师的基本工资增加200元。
651、标记要删除的记录2、彻底删除记录3、恢复带删除标记的记录4、对带删除标记记录的访问3.2.5记录的删除663.2.5记录的删除1、标记要删除的记录(逻辑删除)①界面方式②命令方式673.2.5记录的删除①界面方式1单击要删除记录前的小方框小方框变成黑色,为记录添加了删除标记68①界面方式2【例3-19】3.2.5记录的删除当表处于浏览状态时选“表”----“删除记录”选择作用范围给出筛选条件单击“删除”为符合条件的记录添加删除标记693.2.5记录的删除②命令方式DELETE[<范围>][FOR<条件表达式>]DELETEFROM<表文件名>[WHERE<条件表达式>]不预先打开表WHERE子句缺省时表示所有记录703.2.5记录的删除②命令方式例1:delete&&删除当前记录deleteall&&删除所有记录例2:逻辑删除js.dbf中年龄在40岁以上的记录deletefromjswhereyear(date())-year(csrq)>40注意条件表达式的构建712、彻底删除记录(物理删除)3.2.5记录的删除①界面方式②命令方式723.2.5记录的删除①界面方式选“表”----“彻底删除”单击“是”添加了删除标记的记录被彻底删除733.2.5记录的删除②命令方式PACK彻底删除加注了删除标记的记录ZAP=deleteall+pack删除所有记录
必须以独占方式打开表743、恢复带删除标记的记录3.2.5记录的删除①界面方式②命令方式75单击带恢复删除标记的记录前的小方框小方框变成白色,恢复了带删除标记的记录3.2.5记录的删除①界面方式176①界面方式23.2.5记录的删除当表处于浏览状态时选“表”----“恢复记录”选择作用范围给出筛选条件单击“恢复记录”恢复符合条件的记录773.2.5记录的删除②命令方式RECALL[<范围>][FOR<条件表达式>]例:recallrecallallrecallallforxb=‘女’(all
可缺省)784、对带删除标记记录的访问3.2.5记录的删除控制对带删除标记记录的访问
setdeletedon/offON----忽略标有删除标记的记录OFF----(默认值)允许访问标有删除标记的记录setdeletedonbrowforxb="女"793.3数据表的索引3.3.1索引的建立3.3.2索引的修改和删除3.3.3设置主控索引3.3.4利用索引定位记录803.3.1索引的建立物理顺序记录的存储顺序顺序找,速度慢逻辑顺序表中的记录号按照某种顺序重新排列,记录的处理顺序速度快81例如:在Student表中,若要根据入学成绩(score)由高到低重新排序显示表中的记录,用户可以根据score字段来建立索引文件。RecNostudidnamesexbirthdayscore1981101赵文化男2-28-805002981102徐逸华男6-7-814603981103郭茜茜女11-17-825804981201钱途男5-1-803805981202高涵男11-06-806806981203李晓鸣女11-17-82400索引号记录号关键字的值156802358031500424605640064380索引本身并不改变数据的物理顺序,只是把索引信息保存在称之为“索引文件”的另一个文件中。索引文件是索引关键字的值和表的记录号的对照表。82①利用表设计器②利用Index命令3.3.1索引的建立83表设计器方式选择“索引”选项卡排序,输入索引名,选择索引类型,给出索引表达式,单击“确定”3.3.1索引的建立【例3-30】为教师表(js.dbf)建立一个索引,要求索引名为jbgz,索引类型为“普通索引”,索引表达式为基本工资(jbgz)字段,按降序排列。84①排序3.3.1索引的建立用于设置索引的方向,即确定按升序或降序排列记录。②索引名索引的名称(索引标识)以字母、汉字或下划线开头<=10字节85③索引的类型(1)侯选索引(2)主索引(3)普通索引(4)唯一索引3.3.1索引的建立86索引的类型侯选索引(Candidateindexs)不允许索引表达式的值出现重复一张表中可以建立多个侯选索引侯选索引可用于数据库表和自由表3.3.1索引的建立87索引的类型主索引(Primaryindexs)不允许索引表达式的值出现重复对数据库表,可以从候选索引中选取一个作为主索引在数据库表中,每张表只能创建一个主索引自由表不能建立主索引3.3.1索引的建立88索引的类型普通索引(Regularindexs)允许索引表达式的值出现重复对一张表可以创建多个普通索引例:年龄、性别均可以3.3.1索引的建立89索引的类型唯一索引(Uniqueindexs)允许索引表达式的值出现重复在索引文件中,具有重复值的记录仅存储其中的第一个3.3.1索引的建立90四种索引类型的比较索引表达式的值是否允许重复记录使用范围一张表允许创建的索引个数候选索引不允许数据库表和自由表多个主索引不允许数据库表一个普通索引允许数据库表和自由表多个唯一索引允许数据库表和自由表多个3.3.1索引的建立91④索引关键字建立索引的依据字段/字段表达式(索引表达式)3.3.1索引的建立⑤筛选只对满足条件的字段建立索引92字段在表达式中的前后顺序将影响索引的结果
例:XB+XDH与XDH+XB多个数值型字段求和建立的索引表达式,按表达式的和排序
例:COMPUTER+ENGLISH不同类型字段构成表达式,必须转换成相同的数据类型。
例:XB+STR(COMPUTER)函数:STR(数值型转化为字符型)
DTOC(日期型转化为字符型)用多个字段建立索引表达式应注意:93RecNoXBXDH1男054男072男083女05RecNoXBXDH1男053女054男072男08RecNoGHXMXBXDH1E0001王一平男052E0002李刚男083H0001程东萍女054981202赵龙男07XB+XDHXDH+XB用多个字段建立索引表达式应注意:94RecNoXHXMXBCOMPUTERENGLISH1981102徐逸华男75832981103郭茜茜女75903981202高涵男8575RecNoCOMPUTERENGLISH275903857517583COMPUTER+ENGLISH按降序,分数由高到低用多个字段建立索引表达式应注意:95RecNoXHXMXBCOMPUTERENGLISH1981102徐逸华男77832981103郭茜茜女89903981202高涵男7075RecNoXBCOMPUTER3男701男772女89XB+STR(COMPUTER)用多个字段建立索引表达式应注意:STR(数值型转化为字符型)96Index命令INDEXON<索引表达式>TAG<索引标识名>[FOR<条件表达式>][ASCENDING|DESCENDING][UNIQUE|CANDIDATE]
如:INDEXONcsrqTAGbirthday(升序,普通索引)3.3.1索引的建立973.3.2索引的修改和删除表设计器“表设计器”——“索引”选项卡命令INDEX命令修改原索引DELETETAG删除索引标识983.3.2索引的修改和删除【例3-32】用INDEX命令修改教师表中已经建立的索引。【例3-33】用DELETETAG命令删除教师表中已建立好的索引。INDEXONxybhTAGxybhINDEXONxybh+xbTAGxybh
INDEXONghTAGghDELETETAGgh
993.3.3设置主控索引主控索引决定显示或访问表中记录顺序的索引设置主控索引①界面方式②命令方式100界面方式打开表的浏览窗口选择“表”中的“属性”选择索引顺序3.3.3设置主控索引1013.3.3设置主控索引打开表的同时指定主控索引USE<表文件名>ORDER<索引标识名>[ASCENDING|DESCENDING]
【例3-35】假设已经在教师表(js.dbf)中建立了多个索引,使用USE命令在打开表的同时设置其中一个索引为主控索引。USEjsORDERjbgzASCENDINGBROWSE102打开表后再设置主控索引的命令方式SETORDERTO[<索引标识名>][ASCENDING|DESCENDING
例如:USEjsSETORDERTOghBROW取消主控索引SETORDERTO3.3.3设置主控索引1033.3.4利用索引定位记录SEEK命令SEEK命令只能在索引过的表中使用,并且只能搜索索引关键字例:USEjsORDERTAGxmSEEK“王”找到没找到EOF().F..
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品经营企业员工岗位职责
- 研究经费管理改革-洞察分析
- 虚拟现实与船舶驾驶教学资源整合-洞察分析
- 研发投入与产出分析-洞察分析
- 图像元智能识别与跟踪-洞察分析
- 《浙江卷生物》课件
- 云计算环境下的安全防护技术研究-洞察分析
- 勤俭节约是美德讲话稿范文(16篇)
- 移动网络地址转换技术-洞察分析
- 循环经济政策对碱业影响-洞察分析
- 职业健康检查机构执法监督检查表
- 2024年广东开放大学《财务管理》形成性考核参考试题库(含答案)
- 化工类行业分析
- 大班幼儿集体教学活动中有效提问的现状及其改进
- 房屋装修售后服务方案
- 民航服务礼仪(民航服务类专业)全套教学课件
- 《可燃气体检测仪》课件
- 《黄土高填方地基技术规程》
- 部编版九年级中考复习戏剧阅读 (教师版)
- 裸光纤施工方案
- 小学英语-Unit2 Ways to go to school Part B Read and write教学设计学情分析教材分析课后反思
评论
0/150
提交评论