资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2016年VFP项目-数据库-表 精讲,-主讲人: 1111,1,严浩,一.三者关系,数据库1 表1 数据库2 表2 项目 数据库3 表3 数据库4 一个项目可以有多个数据库 一个数据库可以有多个表 一张表只能属于一个数据库,2,严浩,二.数据库的建立与使用,1.创建数据库 界面方式 命令方式 create database abc 创建数据库后,自动生成三个文件.dbc, .dct, .dcx 一个数据库主要包含五个内容本地视图远程视图连接数据库表存储过程 2.打开数据库 界面方式 命令方式 open database abc 3.关闭数据库 界面方式 命令方式close database abc 4.设置当前数据库 界面方式 命令方式 set database to abc,3,严浩,二.数据库的建立与使用,5.删除数据库 从项目管理器中移去数据库1,此数据库1仍存在于文件夹中,属于此数据库1的表不能自动成为自由表,不能自由添加到其他数据库中。 从项目管理器中删除数据库2,此数据库2在文件夹中也被删除,下属表变成自由表,可以添加到其他数据库中。 从文件夹中直接删除数据库3,下属表存在且不是自由表。(非法操作) 使一张表变为自由表的命令:free table abc.dbf &使表abc变成自由表,严浩,4,三.数据库表的建立与使用,(一)表结构概述 (二)表结构的创建 (三)表结构的修改 (四)表的打开与关闭 (五)表数据的处理,严浩,5,三.数据库表的建立与使用,(一)表结构概述 1.有关表的基本概念 数据库表与自由表: 自由表+扩展属性+主索引=数据库表 表结构:表名+表头(属性的集合) 字段:表中的一列 记录:表中的一行,严浩,6,三.数据库表的建立与使用,(一)表结构概述 2.字段的基本属性 字段名的命名要求:必须以字母开头,可由数字符号,字母,下划线组成,不分大小写,不允许空格或其他字符。自由表的字段名=10个字符。数据库表的字段名为1-128个字符。如果从数据库中移去一个表,那么此表的长字段名将被截成10个字符。 数据类型及字段宽度: 小数位数: NULL值:,严浩,7,三.数据库表的建立与使用,(二)表结构的创建 1.界面方式:表设计器 2.命令方式: create table 表名(字段名1 类型(长度),字段名n 类型(长度) 例:create table teacher(xm c(10),xh c(12) 表创建成功后,自动生成表文件.dbf和表备注文件.fpt,严浩,8,三.数据库表的建立与使用,(三)表结构的修改 1.界面方式: 2.命令方式: ALTER TABLE 表名 ADD COLUMN 新字段名 类型(长度) &增加字段 ALTER TABLE 表名 ALTER 字段名 新类型(新长度) &修改字段 ALTER TABLE 表名 RENAME 旧字段名 TO 新字段名 &重命名字段 ALTER TABLE 表名 DROP 字段名 &删除字段 例: alter table abc add column jg c(20) &增加jg字段 alter table abc alter zzmm c(20) &修改字段 alter table abc rename zzmm to zzmmdm &重命名字段 alter table abc drop zp &删除zp字段,严浩,9,三.数据库表的建立与使用,(四)表的打开与关闭 1.工作区:表每次打开的时候,都会在内存中分配到一块存储区域,作为工作区,而且计算机都给工作区进行了编号(即工作区号),这个编号范围从1到32767。另外,VFP还规定前10个工作区可用字母A-J作为工作区别名。 2.表的别名:在工作区中打开表时为该表所定义的名称。可以自定义别名,否则系统默认就以表名作为别名。若一张表在多个工作区中被打开,系统默认在表名后依次加_a 、_b。自定义别名的格式: use 表名 alias 别名,严浩,10,三.数据库表的建立与使用,(四)表的打开与关闭 3.表的打开与关闭: 关闭表: use in 2 &关闭指定工作区打开的表 use &关闭当前工作区中的表。 close tables all &关闭所有工作区中的表 打开表: use xs &在当前工作区打开表xs select xs &选择xs表所在的工作区作为当前工作区 select 0 &选择当前未被使用的最小工作区 select 3 &选择3号工作区,严浩,11,三.数据库表的建立与使用,(四)表的打开与关闭 3.表的打开与关闭: 不改变当前工作区,在指定工作区打开表: use js in 0 &不改变当前工作区,在当前未被使用的最小工作区打开js表 use js in 5 &不改变当前工作区,在5号工作区中打开js表 use gz alias salary in 6 &把工资表改别名后在6号工作区打开 use xs again in 11 &在11号区再次打开xs表,严浩,12,三.数据库表的建立与使用,(五)表数据的处理 1.表的浏览与筛选 browse &浏览当前工作区中的表 list &在主窗口显示当前表 browse for xb=女 &筛选记录【显示在表中】 list for xb=女 &筛选记录【显示在主窗口中】 browse fields gh,xm,xb &筛选字段【显示在表中】 list off gh,xm,xb &筛选字段【显示在主窗口中】 browse fields gh,xm,xb for xb=女 set filter to xb=女 &设置记录的筛选条件 set filter to &恢复原来 set fields to gh,xm,xb &设置字段筛选 set fields to all &恢复原来 display all &在主窗口中显示所有记录 display all for xb=女 &在主窗口中显示性别为女的所有记录 display off xm &在主窗口中显示表中所有姓名的字段 display &默认在主窗口中只显示一条记录,严浩,13,三.数据库表的建立与使用,(五)表数据的处理 2.表记录的添加 单条记录的添加: 界面方式:显示 追加方式 命令方式: insert into 表名(字段名1,字段名2) values(表达式1,表达式2) 例:insert into student(xb,xh) values (“男”,“1301021”) 批量记录的导入: append &显示编辑窗口,直接添加记录 append blank &添加一条空记录 append from xs &从学生表中批量导入记录 append from abc delimited &从文本文件中批量导入记录 append from abc xls &从excel文件中批量导入记录,严浩,14,三.数据库表的建立与使用,(五)表数据的处理 3.表记录的修改 界面方式:表设计器 命令方式: 非SQL语言: replace 范围语句 with for 【范围语句】all | next n | rest | record n 例:replace all cj with 75 for kcdm=“60023” replace all bz with “优秀学生” for cj=90 replace all bz with iif(cj=80,“三好学生”,“合格”) SQL语言: update表名 set 字段1= 表达式 where 例:update ab set cj=90 where kcdm=“60023”,严浩,15,三.数据库表的建立与使用,(五)表数据的处理 4.表记录的删除 逻辑删除(可以恢复) 非SQL语言: delete 范围语句 for 条件表达式 in 工作区号表别名 例:delete for xb=“女” &为性别是女的所有记录添加删除标记 recall all &恢复原来 delete &默认给当前的一条记录添加删除标记 recall &恢复原来 SQL语言:delete from 表名 where 物理删除(彻底删除,无法恢复) pack &彻底删除添加了删除标记的记录 zap &彻底删除当前表中所有记录,严浩,16,三.数据库表的建立与使用,(五)表数据的处理 5.表记录的复制 copy to abc &把当前表复制到abc表中 copy to abc fields xh,xm &把当前表内xh和xm记录复制到abc表中 copy to abc for xb=“女” &把当前表内女性记录复制到abc表中 copy to abc xls &把当前表以excel格式复制 copy to abc sdf &把当前表以文本格式复制,严浩,17,三.数据库表的建立与使用,(五)表数据的处理 6.表记录的定位 相对定位和绝对定位: go/goto 5 &绝对定位到第五条记录 go top/go bottom &绝对定位到第一条/最后一条记录 skip 5 &相对定位(在此基础上向后加5) skip -5 &相对定位(在此基础上往前减5) skip &默认在此基础上向后加1 有关表记录定位的命令: ?bof() &判断当前记录是否为表头 ?eof() &判断当前记录是否为表尾 ?recno() &返回当前记录的记录号 ?reccount() &返回当前表中记录的总数目 一张表的记录初值为1,记录尾值为记录总数加1 条件定位:从整张表的第一条记录开始按顺序逐个查找符合条件的记录 locate for jg=“上海” &返回籍贯为上海的第一条记录的记录号 continue &返回籍贯为上海的第二条记录的记录号,严浩,18,四.表索引的建立与使用,(一)有关索引的基本概念 (二)索引的创建和使用,严浩,19,四.表索引的建立与使用,(一)有关索引的基本概念 1.记录顺序: 物理顺序(自然顺序)逻辑顺序(人为顺序) 2.索引: 概念:按表文件中某个关键字段或者字段表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,存放在.CDX中。 作用:提供对数据的快速访问。 特点:让表中记录按照某种逻辑顺序显示,但不改变表中记录的物理顺序。 (即:使用go top/go bottom等定位命令时,结果不受索引影响。),严浩,20,四.表索引的建立与使用,(一)有关索引的基本概念 3.索引关键字(索引表达式): 不同类型字段构成索引表达式时,注意数据类型的统一. 4.索引标识名(索引名):即索引关键字的名称,长度=10个字符。 5.索引类型: 主索引:表中记录不能有重复值,一张表只能有一个主索引。 候选索引:在指定的关键字段或者表达式中不允许有重复值的索引。 普通索引:一张表中可以有多个普通索引。 唯一索引:参加索引的关键字段或者表达式在表中可以有重复值。但具有重复值的记录只显示第一条。,严浩,21,四.表索引的建立与使用,(二)索引的创建和使用 1.索引的创建: 界面方式:表设计器 命令方式: A)index on 索引表达式 tag 索引名 candidate|unique (该命令不能创建主索引) 例:index on xm tag xm1 &设置普通索引 index on xm tag xm2 unique &设置唯一索引 index on xm tag xm3 candidate &设置候选索引 set order to xm1 &设置主控索引 set order to &恢复原来 B)alter table 表名 add primary key|unique 索引表达式 tag 索引名 (该命令可创建主索引和候选索引),严浩,22,四.表索引的建立与使用,(二)索引的创建和使用 2.索引的修改和删除: 界面方式:表设计器 命令方式: delete tag ximing &删除索引名为ximing的索引 delete tag all &删除全部索引
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号