第4章 表与数据库的基本操作.

Slides:



Advertisements
Similar presentations
2014 年 10 月. 学生入学考试 15 位编号 号工号 ****** 北科 MBA 网址: 如: 初试密码为身份证 后六位,登录成功 后可进行修改。
Advertisements

3.1 表的建立 教学内容 :一、建立表结构 ; 二、输入数据. 重点 :建立表 难点 :建立表.
Chapter 3: SQL.
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
走进计算机等级考试 Access2000 最流行的桌面数据库软件 数据库和表 退出 开始.
项目2 字符格式和段落编排 2017年3月7日6时54分.
第二章 数据库及其操作 本章基本目标 *掌握数据库和数据表的操作及与其操作相关的简单命令 *掌握数据库表和自由表的区别以及两者相互转化
(第11讲) Mysql 简介和创建新的数据库 本讲大纲: 1、MYSQL简介与概要 2、访问MYSQL的几种途径
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
第四章 排序、索引与数据库 教学目标: 教学重点:排序、索引。 教学难点:访问远程数据源,创建本地和远程表的视图 。
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
Hadoop I/O By ShiChaojie.
第三章 数据库和表的操作.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
辅导课程六.
网络常用常用命令 课件制作人:谢希仁.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第一讲: 基本流程(1).
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
UI 软件 设计 页面布局(三).
第一章 函数与极限.
第二章 登录UNIX操作系统.
新PQDT论文全文库提交平台.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
顺序表的删除.
标准配色方案 背景 文本和线条 阴影 强调色 主色一 主色二 主色三 主色四 推荐应用顺序. 标准配色方案 背景 文本和线条 阴影 强调色 主色一 主色二 主色三 主色四 推荐应用顺序.
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
项目二:HTML语言基础.
Web安全基础教程
ES 索引入门
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
数据库系统与应用实验 基于SQL Server 2005.
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
VRP教程 2011.
SCI收录号查询方法介绍 上海大学情报研究所
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Python 环境搭建 基于Anaconda和VSCode.
期末复习.
Polarization of electro- magnetic wave after reflection
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
YOUR SUBTITLE GOES HERE
VB与Access数据库的连接.
数据表示 第 2 讲.
Visual Foxpro程序设计 第4章 表的操作.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
顺序结构程序设计 ——关于“字符串”和数值.
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第4章 表与数据库的基本操作

内容 介绍数据库、数据表的基本概念 数据库和数据表的建立 编辑表中的数据、记录修改与删除 表的索引等有关操作。

概念 数据库(.dbc) 表(.dbf) 就是一个关于某一特定主题或目标的信息集合。 基本单位,是数据库的基础 可以说表是关系数据库系统中的基本结构。 要存数据,为所需记录的信息创建一个表。 由行和列组成的,一行为一个记录,一列为一个字段。

通常所说的表格 一行为一个记录(Record) 一列为一个字段(Field)

二维表简称表(Table)特征: (1)若干记录 (2)若干个字段,每记录具有相同结构的字段 (3)不同类型的字段来存储不同类型的数据 (4)字段的顺序与存储的数据无关 (5)记录在的顺序与存储的数据无关。

表的两要素: 表结构(列) 相应记录(行)

表结构

表的字段 表是由记录组成 记录又由字段组成 字段的属性(表结构) 字段名 字段类型 字段宽度 小数位数

1.字段名 约定: 只能使用字母、汉字、下划线和数字 见名知义 > < = + / \ | [ ] : ? 空格等特殊字符不能使用。 字段名必须以字母或汉字开头,并且长度不能超过128个字符 如:下列哪些合法 不以数字开头 × 3mn 姓名1 mn3 不能含有空格; × m n ×编 号 不能含有各种运算符; × S-N S_N × AI*X

2.字段类型 不同类型的字段来存储不同类型的数据 字符型 货币型 数值型 浮点型 日期型 日期时间型 双精度 整型 逻辑型 备注型 通用型

(1)字符型(Character) 通常用于存储键盘输入的文本数据。 字符型数据必用双引号或单引号或[]来定界 汉字、字母、数字、空格、 符号及标点符号 字符型数据必用双引号或单引号或[]来定界 字符型字段的宽度最大为254 ***** 如: “how” ‘1234’ [中国人]

(2)货币型(Currency) 保存货币数值时,用货币类型而不是数值类型字段 最多保留4位小数位数,多则四舍五入至4位 内存变量用$数值来赋初值 如:x=$999 ? Type(‘x’)

(3)数值型(Numeric) (4)浮点型(Float) 数值型字段用来存储数值数据。 它可以包含数字0~9,也可以带正、负号或小数点 如:1234 100.89 (4)浮点型(Float) 浮点型字段在功能上等价于数值型字段。

(5)日期型(Date) (6)日期时间型(DateTime) (7)双精度型(Double) 用于存储包含有年、月、日的日期数据 长度为8字节 (6)日期时间型(DateTime) 用于存储包含有年、月、日、时、分、秒的日期和时间数据。 (7)双精度型(Double) 双精度型用于存储精度要求较高、位数固定的数值,或真正的浮点数值。

(8)备注型(Memo) 长度固定为4字节 用于存储不定长度的文本数据 当文本数据长度可能大于254,无法使用字符型存储时,使用备注类型字段 所有备注型字段的实际内容存储在和表名相同,扩展名为.FPT的备注文件中

(9)通用型(General) 通用型用于存储OLE对象数据 字段宽度固定为4个字节,用于存储一个4个字节的指针,指向该字段的实际内容 其内容存储在扩展名为.FPT的文件中。 OLE对象包括电子表格、字处理文档、图像或其他多媒体对象等 OLE对象可以用链接方式存储在表中。 存储数据的大小,取决于相的OLE服务程序,和磁盘空间大小的限制。

(10)整型(Integer) (11)逻辑型(Logical) 整型用于存储整数数据 字段宽度固定为4个字节。 取值范围从-2 147 483 647 到2 147 483 646。 (11)逻辑型(Logical) .T.或.Y. 为逻辑真 .F.或.N. 为逻辑假 长度固定为1字节

(12)字符型(二进制)((Character(Binary)) 字符型(二进制)用于存储不需要系统代码页维护的字符数据 其他字段特性同字符型字段 密码(各国) (13)备注型(二进制)((Memo(Binary)) 备注型(二进制)用于存储不需要系统代码页维护的备注字段数据。其他字段特性同备注型字段。

数据类型(小结) 数据类型(Type)13种 D-日期型 I- 整 型 L-逻辑型 M-备注型 G-通用型 Y货币型 C-字符型 N-数值形 F-浮点型 D-日期型 I- 整 型 L-逻辑型 M-备注型 G-通用型 Y货币型

3.字段宽度 规定宽度 字符型字段 254 货币型字段 8 数值型字段 20 日期型字段 8 备注型 4 逻辑型 1 日期时间型 8 字符型字段 254 货币型字段 8 数值型字段 20 日期型字段 8 备注型 4 逻辑型 1 日期时间型 8 通用型字段 4 用于存储一个4个字节的指针,指向该字段的实际内容。整型字段宽度固定为4个字节。

宽度(Width) (小结) (以下类型宽度固定) 货币型、日期型、日期时间型、双精度型:8字节 整型、备注型、备注型(二进制)、通用型:4字节 逻辑型:1字节 数值型:20字节

4.小数位数 有小数的字段: 字段宽度 = 整数部分宽度 + 小数点1位 +小数位宽度 如小数位数不为0,则小数位数至少要比整个字段宽度小2 数值型 浮点型 双精度型 字段宽度 = 整数部分宽度 + 小数点1位 +小数位宽度 如小数位数不为0,则小数位数至少要比整个字段宽度小2

小数位数 一个N形变量宽为6,小数位数为3,则这个变量最大可表示的数为多少? _ _ . _ _ _ 99.999

5.空值(NULL) 空值是用来标识一个字段“没有值”的标志 空值表示没有任何值或没有确定值 空值不等同于数值0、空字符串或逻辑“假” 函数EMPTY() 测试空值 如果允许字段接受NULL值,则应选中该栏所在框 表的关键字段不允许为NULL值

字段类型 中文名称 宽度(字节) 说明 Character 字符型 254 字母、汉字、数字、文本、符号 字段类型 中文名称 宽度(字节) 说明 Character 字符型 254 字母、汉字、数字、文本、符号 Currency 货币型 8 货币单位 Numeric 数值型 20 整数或小数 Float 浮点型 20 同数值型 Date 日期型 8 年、月、日 DateTime 日期时间型8 年、月、日、时、分、秒 Double 双精度型 8 双精度数值 Integer 整型 4 整数 Logical 逻辑型 1 真或假 Memo 备注型 4 不定长的字母、文本、数字 General 通用型 4 OLE图像、多媒体对象

小结 数据库是表和表间关系的集合 表是由表结构和记录组成 表结构是由各不同字段构成 每一字段又具有字段名、数据类型、数据宽度、小数位数等属性 表中的每一个记录又具有相同的字段

建表的步骤: 1)设计表结构 2)建表的结构 creat 表名 3)保存表文件 ctrl+w 4)输入记录 append browse

表结构的创建 1、表设计器 (1)打开“表设计器” (2)在“表设计器”中创建表结构 项目管理器/自由表/新建/新表/保存 注: A、也可从菜单或工具栏中直接新建表 B、与在“项目管理器”中新建表不同的是: 这样新建的表将不包含在项目中 (2)在“表设计器”中创建表结构 表设计器/字段/输入/确定

数据表的建立 如: 一张名为教师档案文件zgda.dbf 编号 姓名 性别 年龄 职称 工作时间 婚否 简历 编号 姓名 性别 年龄 职称 工作时间 婚否 简历 1 张黎黎 女 26 助教 05/24/83 T memo 2 李 艳 女 30 助教 09/14/90 T memo 3 刘 强 男 38 讲师 12/24/76 T memo

职工档案表结构(zgda.dbf) 字段名 类型 宽度 小数位数 索引 NULL 编号 字符型 4 无 升序 否 编号 字符型 4 无 升序 否 姓名 字符型 6 无 无 否 性别 字符型 2 无 无 否 年龄 数值型 2 无 无 否 职称 字符型 8 无 无 可 工时 日期型 8 无 无 否 婚否 逻辑型 1 无 无 否 简历 备注型 4 无 无 可 照片 通用型 4 无 无 可

表的打开 VFP在使用一个表前必须把表打开 打开命令 VFP在结束使用一个表时,必须把表关闭 关闭命令 USE <文件名> CLOSE ALL CLOSE DATABASE/TABLE

修改表结构 1、表设计器 项目管理器/选定表/修改 2、命令 USE books MODIFY STRUCTURE

3、菜单/按钮方式 法1: “表”—“属性” “工作区” “工作区属性”—“修改” 法2: “窗口” —“数据工作期” (“属性”— “修改”)

记录的处理 记录的追加 1、立即输入记录(浏览/编辑/追加方式) 2、浏览窗口下追加(USE/BROWSE)(表/追加新记录) 3、使用INSERT - SQL命令追加记录 insert into zgda(姓名,性别,年龄) values ('洪七','男',70) 4、从其他表中追加记录 命令APPEND APPEND FROM APPEND [ BLANK ]

记录的浏览 1、浏览窗口 2、命令 BROWSE 进入 : BROWSE 命令 项目管理器/选定某个表/单击“浏览”按钮 LIST / DISPLAY BROWSE FIELDS 书号,书名,作者 for ...

如何定制浏览窗口? 重新安排列的位置: 拖动 改变列的宽度: 显示或隐藏表格线: 显示/网格线 分为两个窗格: 左下角拖动

记录的定位 1、记录指针标志 记录号(输入顺序) 记录的开始标志 BOF ( ) 文件头 记录指针标志 ( 当前记录 ) RECNO ( ) 记录的结束标志 EOF ( ) 2、记录的定位方式 绝对定位 go 相对定位 skip 条件定位locate for(表达式) 记录结束标志 记录开始标志 第n条记录 文件头 Go top go bottom Skip Go nRecordNumber

几个概念 记录指针 当前记录 记录定位 记录号RECNO()

例1 use books f f 1 skip -1 t f 1 skip -1 Error f 1 go bott f f 848 假设ZGDA表有848条记录,先后执行以下命令 bof() eof() recno() use books f f 1 skip -1 t f 1 skip -1 Error f 1 go bott f f 848 skip f t 849 skip Error

例2 RECN() Use books 1 go 5 5 skip +2 7 skip -3 4 locate for …

3、记录定位的实现 界面方式 (“表”—“转到记录”) 命令方式 绝对定位:GO( GOTO ) 记录号:绝对定位 goto 定位:条件定位 locate for 作用范围:all,next,record,rest,for 找到/未找到 命令方式 绝对定位:GO( GOTO ) GO( GOTO ) TOP/BOTTOM 相对定位:SKIP(与索引有关)skip=skip 1 快速移动:SEEK 及 FIND

记录的修改 1、在浏览窗口中修改 EDIT / CHANGE / BROWSE 项目管理器/浏览 例:修改books表中第5条记录 use books edit record 5

记录的修改 2、批量记录的修改 “表”—“替换字段”—字段条件 (1)界面方式 (2)命令方式 UPDATE-SQL命令(表不必事先打开,以下同) REPLACE 命令 USE books copy to temp(复制到临时表) use temp REPLACE 单价 WITH 5.00 FOR 单价<5

记录的删除 目的: 节省时空 删除步骤: 逻辑删除 物理删除

逻辑删除 标记要删除的记录(逻辑删除) 给要删除的记录加标记(*号) 浏览窗口: 单击小方框 “表” “删除记录” 命令DELETE FROM 表名[WHERE 过滤条件表达式] 例: 删除教材表中库存在数量为0的记录 delete from books where 库存数量=0

物理删除 彻底删除(物理删除) “表” 命令PACK(独占) 命令ZAP=delete all +pack(独占) “彻底删除” 删除有删除标记的记录 命令ZAP=delete all +pack(独占)

恢复记录的删除 恢复带删除标记的记录 法1: 小方框 黑-->白 法2:“表” “恢复记录” 小方框 黑-->白 法2:“表” “恢复记录” 法3:RECALL [范围][FOR 条件表达式1][WHERE 条件表达式2] 例:recall recall all recall all for 库存数量=0(这里的all 可省) 说明:缺省范围(当前记录,不是全部记录)

筛选记录 界面 “表”—“属性”—“数据过滤器” 命令 SET FILTER TO <条件表达式> SET FILTER TO FOR子句:临时性记录筛选 例:USE ZGDA SET FILT TO 出版社=‘石油大学’ 注意: 是隐藏而非删除 与FOR子句不同

筛选字段 表/属性/字段筛选 SET FIELDS TO <字段1> [, <字段2>]

多表操作 工作区: 用以标识一张打开的表的内存区域 一个工作区在某一时刻只能打开一张表 一张表可以在多个工作区同时打开 (use 表 again) 共有255个工作区 默认工作区号为1区 USE books(默认为1号) LIST USE books1(books自动关闭)

工作区的标识*** 用数字来标识各个工作区(1—255) 用相应工作区中表名来标识工作区 1-10个工作区常用英文字母A-J (此时表没有指定别名,如指定别名,用别名来标识工作区) Sele 5 Use zgda Sele 4 Sele zgda 1-10个工作区常用英文字母A-J Sele 10=sele j

工作区的转换 命令: 如: Select 工作区号/工作区中表别名/A-J Select 0 表示选择未用的号最小工作区 Sele 1 Use zgda Sele B Selct zgda Select 0 表示选择未用的号最小工作区

Select O例子 sele 1 use zgda sele 4 use zggz sele 0 ? select() 返回选择的工作区号 The answer is :2

多表操作 可以同时在多个工作区中打开多个没有打开的表 SELE 1 USE books1 LIST SELE 2 USE books2 一张表不可以在多个工作区同时打开

多表操作 表的别名指定 当前工作区:正在使用的工作区 ALIAS ( ) 函数 “数据工作期”窗口 别名 USE < 表文件名 > ALIAS < 别名 > 例:USE ZGDA ALIAS OK 当前工作区:正在使用的工作区 ALIAS ( ) 函数 ALIAS():测试当前工作区中表的别名 “数据工作期”窗口 别名

操作非当前工作区中的表 把其它的工作区选为当前工作区 Sele 2 在命令中强行指定工作区 GO TOP IN ok

关于表的打开和关闭 刚创建的表处于打开状态* 1、表的打开 界面 命令 多次打开同一张表(同时) 文件/打开 窗口/数据工作期/打开 USE ? 命令 USE <表文件名> USE <表文件名> IN 0 多次打开同一张表(同时) USE <表文件名> AGAIN 例:USE books/SELE 0/USE XS AGAIN

2、表的关闭 界面 命令 注意:SQL语句能自动打开表,但不会自动关闭表! 窗口/数据工作期/关闭 USE USE IN <别名/工作区> CLOSE ALL&&数据库、索引、项目管理器等也被关闭 CLOSE DATABASES &&如果当前没有打开的数据库,则把自由表全部关闭 CLOSE TABLES &&关闭表,不关闭库 退出VFP 注意:SQL语句能自动打开表,但不会自动关闭表!

表的独占与共享使用 表的共享使用: 表的独占使用: 一张表可以同时被多个用户打开 (RECORD UNLOCKED) 一张表只能被一个用户打开(默认) (EXCLUSIVE)

表的独占与共享使用 设置独占与共享打开表的默认状态 强行用独占方式打开表 设置改变,并不改变已经打开的表的状态 工具/选项/数据 SET EXCLUSIVE OFF/ON(共享/独占) 强行用独占方式打开表 “打开”—“独占”复选框 USE < 工作表 > SHARED/EXCLUSIVE 设置改变,并不改变已经打开的表的状态 一张表同时被多次打开时,只以第一次的打开方式为准(窗口/数据工作期)

概念 物理顺序: 逻辑顺序: 一般是按照其输入的顺序进行记录的存储顺序 顺序找,速度慢 不便于查找需要的信息 记录的处理顺序 (快速) 可以使用索引来改变记录的顺序即逻辑顺序 根据表中字段的值,建立具有逻辑顺序的索引文件,然后根据索引文件重新排列数据库表中显示的记录。

表的索引文件 1、索引: 如同目录 数据库的辅助文件,不能单独使用 可以按一个字段索引,也可以多个 一个表可以创建多个索引 索引存储在索引文件中 索引文件中存储着记录号和索引字段的索引值

理解索引 索引可以理解为根据某一字段的值进行逻辑排序的一组指针 按照索引显示记录,VFP按照指针排列的顺序分别读取每一条记录,而这些记录在数据库中的实际存储位置并未改变。

按年龄索引后的表文件 物理顺序 逻辑顺序 记录号 年龄大小 3 1 2 2 1 3 姓名 年龄 姓名 年龄 刘 强 38 李 艳 30 姓名 年龄 张黎黎 26 李 艳 30 刘 强 38 DA.DBF 姓名 年龄 刘 强 38 李 艳 30 张黎黎 26 DA.DBF 记录号 年龄大小 3 1 2 2 1 3 NL.CDX

关键字与索引标识 (1)索引关键字(Index Key) 建立索引的依据(索引表达式) 字段/字段表达式 VFP使用索引关键字来显示和访问表中的记录 (2)索引标识(Tag) 索引关键字的名称(索引名) <=10字节

索引的类型 4种类型索引(根据关键字段) 主索引 候选索引 普通索引 惟一索引

表的索引 2、索引的类型 主索引(Primary indexs) 侯选索引(Candidate indexs) 在数据库表中,每张表只能创建一个主索引 组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值(学号可以,姓名不可以) 自由表不能建立主索引 主索引存储于数据库表的结构复合索引中 侯选索引(Candidate indexs) 在指定的关键字段或表达式中不允许有重复值的索引 一张表中可以建立多个侯选索引 侯选索引可用于数据库表和自由表

表的索引 2、索引的类型 普通索引(Regular indexs) 唯一索引(Unique indexs) 可以决定记录的处理顺序 允许关键字段或表达式的值出现重复 对一张表可以创建多个普通索引(GL) 唯一索引(Unique indexs) 允许有重复值 具有重复值的记录仅存储其中的第一个(出版社) 惟一:对每一个特定的关键字只存储一次,而忽略了重复值第二次或以后的记录

创建索引文件 表设计器 Index命令 注意 “表设计器”——“索引”选项卡 不能对备注字段和通用字段建立索引 不要建立无用的索引 INDEX ON <索引表达式> TAG <索引标识名> [FOR <条件表达式>ASCENDING|DESCENDING](升降序) [UNIQUE|CANDIDATE](唯一索引|候选索引) 注意 不能对备注字段和通用字段建立索引 不要建立无用的索引

索引的建立 步骤: 项目管理器---表---修改 表设计器---索引 输入索引名----类型---表达式 不要对每个字段都建立索引,否则会降低程序的运行效率

对多个字段索引 操作步骤: 可以对多个字段建立索引 其排序是按照表达式的值进行的 项目管理器--选择已索引的表,选“修改” 表设计器,选索引,输入索引的名称 在“表达式”框中,输入对多个索引的表达式 如:按城市与仓库号进行索引,其表达式应为 仓库号+城市 确定 可以对多个字段建立索引 其排序是按照表达式的值进行的

索引的修改和删除 索引的修改 索引的删除 表设计器 命令 “表设计器”——“索引”选项卡 INDEX命令修改原索引 DELETE TAG TagName

索引的使用 设置主控索引 取消主控索引 主控索引:决定显示或访问表中记录的顺序的索引 主控索引可以是: 打开后再设置主控索引 复合索引文件中的一个标识(主控标识) 一个独立索引文件(主控索引文件) 打开后再设置主控索引 窗口 /数据工作期 /属性/索引顺序 命令 SET ORDER TO TAG <标识名> 取消主控索引 SET ORDER TO

索引应遵循原则 (1)为了提高速度,用普通索引、候选索引或主索引 (2)控制字段的重复值对数据库“表”用“主索引”或“候选索引”,对于“自由表”,用“候选索引”。

数据库的设计 数据库是一种工作环境 存储了一个“表”的集合 在表之间可以建立关系 对数据字段可以设置属性和触发规则 一个数据库文件具有.DBC的后缀。 不同主题内容的信息保存在不同的表当中

数据库的设计步骤: 确立“数据库”的功能: 确定表的种类与表的结构: 确定表间的关系: 确定收集信息的范围,并仔细收集这些信息 根据每个表的信息,确定表中的“字段”,将字段作为“表”中的一列 确定表间的关系: 将所创建的“表”加以分析,确定各个字段之间的“关系” 要明确为“一对一”、“一对多”关系 对于“多对多”关系转化为“一对一”、“一对多”关系

建自由表还是数据库表 自由表 数据库表有更为强大的功能 只存储相对独立的信息 没有依靠其它表的信息或被其他表所引用,可以使用自由表 它可以使用长表名和长字段名 表中的字段可以有标题和注释 表中的字段可以设置“默认值” 能设置字段级和记录级“规则” 对于插入、删除、修改等数据库操作可以设置触发器 它还可以实现同远程数据源的连接,创建本地视图和远程视图

数据库的简单操作 可通过 项目管理器 表设计器 数据库设计器

数据库的打开 操作步骤如下: 项目管理器,选择想要打开的数据库 选择修改按钮,进入数据库设计器

数据库设计器的操作 全部折叠 全部展开 在库设计器中,选中表,右点击鼠标,选择折叠或展开 库设计器上右击鼠标 在出现的快捷键中,选择“全部折叠” 全部展开 库设计器上,右点击鼠标 在快捷键中,选择“全部展开” 在库设计器中,选中表,右点击鼠标,选择折叠或展开

重排: 数据库属性: 关闭数据库设计器 选择菜单数据库,然后选择重排 重排方式,然后按确定 右击鼠标 选择属性 可以输入数据库的属性 选择显示的类型 选择“确定” 关闭数据库设计器

把自由表添加到数据库中 方法一 文件---打开,打开项目 选中的数据库是:教工 选中数据库下的“表”文件类型 单击“添加”按钮 选中要加入的表文件,再按“确定” 当自由表添加到数据库中时,其“表设计器”也变成了“数据库设计器”,即也拥有了数据库的所有属性

把自由表添加到数据库中 方法二 文件---打开,打开项目 选中的数据库是:教工 选修改按钮,显示数据库设计器 选择数据库菜单 再选“添加表” 选择要加入的表名,按确定 如果所选择的是自由表,就添加到所选中的数据库中 表已经是数据库表,不能添加

数据库中的表删除 注: 用户向数据库中添加的“表”,只能是自由表 表在同一时间只能属于一个数据库 文件----打开,打开项目 选中的数据库是:教工 选择修改按钮,屏幕显示“数据库设计器 选中要删除或移去的表,选择删除 如果不想删除此表,就选择“移去”,如果要想删除此表,就选择“删除” 注: 用户向数据库中添加的“表”,只能是自由表 表在同一时间只能属于一个数据库

在数据库中查找表 操作步骤如下: 文件--打开,打开项目 选中的数据库是:教工 选择修改,显示数据库设计器-教工窗口 选择“数据库”菜单,选“查找对象”命令 在查找对话框中,选择要查找的表或视图

字段与记录属性的常用概念 1.触发器 在数据库表进行一个插入、更新、删除操作之后,运行的记录事件级代码 不同的事件激发不同的动作 触发器在有效规则之后运行 常用于检查已建立永久关系的数据库表之间的数据完整性 触发器只存在于数据库表中 自由表中不存在触发器 触发器是数据库的一部分 受数据库的管理

2.有效性规则 3.记录级规则 检查输入数据是否满足某些条件的过程 一种与记录有关的有效性规则 当插入或修改字段值时被激活 多用于数据输入的正确性 记录被删除时不用使用有效性规则 记录级规则在字段级规则之后和触发器之前被激活

4.字段级规则 是一种与字段有关的有效性规则 当插入或修改字段值时被激活 多用于数据输入正确性检查 字段级规则在记录级规则和触发器之前被激活

设置字段的显示属性 字段的显示属性: 显示格式 掩码 标题

1.设置字段的标题 操作步骤: 项目管理器 选定表 修改,进入表设计器 选定要添加标题的字段,如姓名 单击“是”按钮,保存表结构 定义数据库字段名称时,以英文缩写为多 难以真正理解字段的含义 标题属性,给字段添加一个说明性标题 操作步骤: 项目管理器 选定表 修改,进入表设计器 选定要添加标题的字段,如姓名 单击“是”按钮,保存表结构 此时浏览表,姓名显示为职工姓名

2.设置字段的显示格式 格式: 常用的格式码: 确定一个字段在表单、浏览窗口或报表中的显示格式 输入所需的格式码 格式实际上是字段的输出掩码 A——表示只允许输出文字字符(禁止数字、空格或标点符号); D——表示使用当前系统设置的日期格式; L——表示在数值前显示填充的前导零,而不是用空格字符; T——表示禁止输入字段的前导空格字符和结尾空格字符; !——表示把输入的小写字母字符转换为大写字母。

3.设置字段的掩码 输入掩码: 常用的输入掩码: 可以确定字段输入的格式 屏蔽非法输入,减少人为的数据输入错误 X——表示可输入任何字符; 9——表示可输入数字和正负符号; #——表示可输入数字、空格和正负符号; $——表示在固定位置上显示当前货币符号; $$——表示显示当前货币符号; *——表示在值的左侧显示星号; .——表示用点分隔符指定数值的小数点位置; ,——表示用逗号分隔小数点左边的整数部分,一般用来分隔千分位。

例如 注: 年龄字段的输入掩码为99 姓名的显示格式指定为AT 设置格式 输入掩码: 年龄字段只能接受数字输入,而不能输入空格字符、字母等 姓名两个字段只能接受字母或汉字输入,而不能输入空格字符、数字 注: 设置格式 一个作用是限制显示输出, 输入掩码: 另一个作用是限制输入

输入字段的注释 注释使字段意义更加明确 步骤: 表设计器 “字段注释”文本框中,输入描述信息

“表达式生成器”窗口 有...按钮,显示一个对话框 表达式: 用运算符把内存变量、字段变量、常数和函数连接起来的式子 表达式用于计算和描述一个操作条件 根据处理结果返回一个值 数值型 字符型 日期型 逻辑型

表达式生成器 方便快捷地生成表达式 5个部分: 表达式文本编辑框 函数列表框 变量列表框 表或视图下拉列表框 控制按钮

1.表达式文本编辑框 用于编辑表达式 从列表框选择出来的选项将显示在这里, 直接在这里输入和编辑表达式 可以输入各种各样的操作条件 字段级有效性规则 记录级有效性规则 参照完整性规则

2.函数列表框 分为: 字符函数列表框: 可以选择表达式所需的函数 字符函数 数学函数 逻辑函数 日期函数 有用于处理字符和字符串的函数及字符运算符

3.变量列表框 4.表或视图下拉列表框 变量列表框 列出了当前表或视图的字段变量 从变量列表框中,可以选择表达式所需的变量 内存变量 系统变量 从变量列表框中,可以选择表达式所需的变量 4.表或视图下拉列表框 可以选择当前打开的表或视图

5.控制按钮 4个命令按钮: 确定 取消 检验 选项 完成表达式生成,并退出表达式生成器 单击“检验”按钮,可检验生成的表达式是否有效 单击选项,进入表达式生成器选项对话框

字段有效性 为了防止这些非法数据的录入 通过显示属性来控制 通过字段验证方式来控制 字段的显示格式 输入掩码 只是码级的限制 合法的字符组合在一起是否合法、是否符合逻辑就无法在此进一步

字段验证 字段有效性有3个表达式文本框: 数据库表的字段属性之一 字段通过了字段显示格式和输入掩码的限制,输入了数据以后,还要通过字段验证才可以存储到字段中去 字段有效性有3个表达式文本框: 规则 信息 默认值

字段的默认值 步骤: 如: 新记录输入时所默认的字段值 可以简化操作,提示输入格式,减少输入错误,提高输入速度 表设计器中的“默认值”属性框中 输入默认值 如: 性别字段输入默认值“女” 单击“正确”按钮

2.设置字段有效性原则 一个规则判断输入的数据是否符合字段的要求 在规则文本框中,可以输入字段验证的规则 字段输入完成,系统计算表达式的值 如值为真,输入通过字段规则的验证 否则不允许输入的值存储到字段中去 例如 教工年龄数据必须大于0 小于0,输入的数据是无效的

有效性规则: 字段级有效规则 字段中单个信息输入的数据是否有效 记录级有效性规则 整条记录输入完毕后才开始检查数据的有效性

使用长表名与注释 步骤: 表设计器中,可用长表名和表的注释 在“表名”框中,输入长表名 输入表的注释

表名: 长表名 可以由字母、数字、下划线或汉字组成 第一个字符必须是字母、下划线或汉字 默认的表名及.DBF文件名 数据库表,可以建立一个长表名 最多可以包含128个字符 可以用来代替短表名来标识数据库表 定义了长表名,表在界面中,显示长表名 表的注释可以使表的功能易于理解

使用长字段名、标题与注释 自由表的字段名最多可包含10个字符 数据库字段名最多可以包含128个字符 从库中移去表,其长字段名将被截断为10个字符

字段的说明: 使表更容易被理解更新 项目管理器中,选择字段后,会显示该字段的注释文本 数据库表中的每个字段可以有一个标题

创建和编辑关系 关系: 永久关系 临时关系 永久关系一旦创建就保存在数据库文件中 在打开数据库时随即被打开 在“数据库设计器”和数据环境中显示为表索引间的连接线 在永久关系的基础上,可设置表间的参照完整性规则,用以保证数据库各表相关数据的一致性 临时关系 在使用时临时创建的 在“查询与视图设计器”中,是自动作为默认连接条件的数据库表间关系 关闭其中一个表时关系即被自动关闭

临时关系(关联) 通过主表记录指针的移动来控制子表记录指针的移动 这是临时关系和永久关系不同的特征 在一对多关系表间,建立临时关系以后,在关系的“一”方表中,选择一条记录时,会按关系字段的值自动访问到“多”方表中的相关记录

永久关系: 通过连接不同表的索引可以很方便地建立表之间的关系,被存储在数据库文件中,所以将这种关系称为永久关系 VFP 6.0就自动将永久关系作为查询、视图、表单和报表的默认关系 利用永久关系还可以存储参照完整性信息

建立永久关系 主关键字字段与外部关键字字段: 主关键字字段 外部关键字字段 哪个表包含主记录,哪个表包含相关记录 关联的表有一些公共字段 用于标识主表中的某一特定记录 根据主关键字字段建立一个主索引 外部关键字字段 用于标识相关表中的相关记录 外部关键字字段建立一个普通索引 哪个表包含主记录,哪个表包含相关记录 并且普通索引和主索引必须带有相同的表达式

三种关系: 一对一 一对多 多对多 表A中的一条记录,在表B只能有一条记录 B的每一条记录也在表A中只能有一条记录与之对应 并不常使用 最为普通 表A中一条记录,表B中有多条记录对应 表B中的一条记录,在表A中只有一条 一方要建立主关键字或候选关键字 多方要使用普通索引 多对多 转化为“一对一”或“一对多”关系

(a)1:1联系 (b)1:m联系 (c)n:m联系 班级 班长 领导 1 学生 组成 m 课程 选修 n (a)1:1联系 (b)1:m联系 (c)n:m联系

建立永久关系 永久性关系并不控制表内记录指针间的关系 步骤如下: (1)建立表的索引 (2)拖拽: 一方要建立主关键字或候选关键字 多方要使用普通索引 (2)拖拽: 在“库设计器”上,“一”方的主索引,拖拽到“多”表的与其对应的普通索引之上

建立临时关系(关联) 使用菜单建立表之间的关联 (1) 选择【窗口】菜单中的【数据工作期】选项。 (2) 单击【打开】,在【打开】对话框中选择要打开的数据库。 (3) 在【数据库中的表】列表框中,选择要打开的表,然后按【确定】按钮,则打开的表会出现在【数据工作期】窗口。重复以上步骤,可在不同工作区打开多个表。 (4) 在【数据工作期】窗口中选择要建立关系的父表,再按【关系】按钮,此时在【关系】框中将加入父表,且表名下面有一根折线,表示该表要与其他表建立关系。 (5) 选择要关联的子表,先打开【设置索引顺序】对话框,然后弹出【表达式生成器】窗口,单击字段列表框中的用来建立关联的某一字段。按【确定】按钮,关闭表达式生成器。

参照完整性 表间彼此相关,改一表,可能使其关系发生变化 删除主表中记录,相关表中的记录就找不到与之对应的父记录,就破坏了表之间的原有关系 参照完整性,利用相关表间的制约关系,互相参照,控制相关表数据的完整性

参照完整性规则 更新规则 删除规则 插入规则 控制在相关表中的插入、更改或删除记录

例如 当主表中没有相关的记录时,记录不得追加到相关子表中 当主表中某条记录在相关子表中有相关记录时,这条主表记录不允许删除 当主表的关系字段值改变将导致相关子表中出现无关记录时,在主表中不允许做这种改变

步骤如下: 在“库设计器”中,双击关系线,打开编辑关系对话框 单击参照完整性按钮,打开生成器 单击要实施参照完整性的关系行 单击“更新”右边的箭头 选择“级联”、“限制”或“忽略” 单击“确定”按钮

级联: 限制: 忽略: 更新主表关系字段时,同时自动更新子表中的相关记录的关系字段值 子表中有相关记录时,禁止更新主表相应记录的关系字段值 表示忽略主子表间的关系,不限制主表关系字段的更新