(精品)vfp第三章(2).ppt
《(精品)vfp第三章(2).ppt》由会员分享,可在线阅读,更多相关《(精品)vfp第三章(2).ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 数据库与表的创建和使用数据库与表的创建和使用2003-20043.1 3.1 数据库概述数据库概述3.1.1数据库设计的过程分析数据需求确定需要的表确定表的字段确定表之间的关系设计的优化3.1.2数据库的组成表视图连接存储过程表表数据库表 从属于某一个数据库的表,称为数据库表,与自由表相比,具有许多扩展功能和管理特性。自由表 不属于任何一个数据库的表。数据库表与数据库之间的关系:表文件(表文件(.dbf)库文件(库文件(.dbc)前链后链前前链:保存在数据库文件中,包含表文件的路径和表名。链:保存在数据库文件中,包含表文件的路径和表名。后链:保存在表文件中,包含数据库名及其路径。
2、后链:保存在表文件中,包含数据库名及其路径。2、视图(、视图(View)把分散在相关表中的数据通过联结条件把它们收集到一起,把分散在相关表中的数据通过联结条件把它们收集到一起,构成一张构成一张“虚表虚表”,这张,这张“虚表虚表”就是视图。就是视图。视图使数据暂时从数据库中分离出来,成为游离数据,以便视图使数据暂时从数据库中分离出来,成为游离数据,以便在主系统之外收集和修改数据。在主系统之外收集和修改数据。视图分为:本地视图和远程视图视图分为:本地视图和远程视图 3、连接、连接(Connection)保存在数据库中的一个定义,指定了数据源的名称。这里的数保存在数据库中的一个定义,指定了数据源的名
3、称。这里的数据源指的是远程数据源。据源指的是远程数据源。连接远程数据源的方法:通过连接远程数据源的方法:通过ODBC(Open DataBase Connection)4、存储过程、存储过程在数据库中保存过程和代码的地方。包含用户自定义函数中的任何命令和函数,还有永久关系中参照完整性代码。对数据库中的数据进行相似或相同的处理,可以编写成自定义函数或过程保存在存储过程中,以供其他时候调用。3.1.3数据字典数据字典:数据字典:存储在数据库中用于描述所管理的表存储在数据库中用于描述所管理的表和对象的数据,即元数据。和对象的数据,即元数据。数据字典包括:数据字典包括:表的主索引关键字表的主索引关键字
4、数据库表之间的永久性关系数据库表之间的永久性关系长表名和注释长表名和注释.3.2数据库的创建、打开、与使用每创建一个新的数据库都将生成三个文件:每创建一个新的数据库都将生成三个文件:数据库文件(数据库文件(.DBC)关联的数据库备注文件(关联的数据库备注文件(.DCT)关联的数据库索引文件(关联的数据库索引文件(.DCX)注:数据库是一个包容器,但并不在物理上包容注:数据库是一个包容器,但并不在物理上包容任何附属对象,在数据库中仅存储了指向表文件的路任何附属对象,在数据库中仅存储了指向表文件的路径指针。径指针。3.2.1数据库的创建1、界面方式2、命令方式 CREATE DATABASE 数据
5、库名数据库名|?注:注:如果命令中没有数据库名或只给出了?,则命 令自动打开“新建对话框”。如果给出了数据库名,则创建数据库,并使该数据库处于打开状态,但不出现数据库设计器。3.2.2数据库的打开与关闭1、打开数据库、打开数据库打开数据库的命令:打开数据库的命令:OPEN DATABASE 数据库名数据库名 EXCLUSIVE|SHAREDNOUPDATEVALIDATE多次使用该命令可以同时打开多个数据库。多次使用该命令可以同时打开多个数据库。3.2.2数据库的打开与关闭设置当前数据库设置当前数据库 使用“常用”工具栏 使用命令设置:SET DATABASE TO 数据库名注:利用注:利用D
6、BC()函数返回当前打开的数据库的完函数返回当前打开的数据库的完整文件名。整文件名。函数函数DBUSED(数据库名)测试指定的数据数据库名)测试指定的数据库文件是否处于打开状态。库文件是否处于打开状态。关闭数据库关闭数据库(1)使用“项目管理器”(2)使用CLOSE DATEBASES命令 CLOSE DATABASES关闭当前数据库和表。若无当前数据库,则关闭所有工作区内所有打开的自由表、索引文件和格式文件,并选择工作区1。CLOSE DATABASES ALL关闭所有打开的数据库和其中的表、所有打开的自由表、所有工作区内所有索引和格式文件。CLOSE ALL关闭所有的数据库、表、索引以及各
7、种设计器。4、删除数据库利用项目管理器“移去”按钮。利用delete file 3.3表的创建与使用在VFP中,表分两种:自由表与数据库表表以.DBF形式保存,不可以用A-J中单个字母命名。每张表最多有每张表最多有255个字段个字段 记录记录 .字段(字段(Field)表表表结构表结构表记录表记录表的表的组成组成表结构即是表的框架表结构即是表的框架表记录是指表的内容表记录是指表的内容建立表的步骤是建立表的步骤是:先设计表的结构,再在:先设计表的结构,再在VFP 6.0中使用命中使用命令或表设计器建立表的结构,并保存为表文件,然后再输令或表设计器建立表的结构,并保存为表文件,然后再输入记录。入记
8、录。3.3.1 表结构概述表结构概述一、表的结构参数一、表的结构参数字段名字段名(Field Name)字段名取名规则:可以是字母、数字、下划线,只能是字母字段名取名规则:可以是字母、数字、下划线,只能是字母开头,自由表的字段名最多开头,自由表的字段名最多10个字符,数据库表的字段名可以个字符,数据库表的字段名可以达达128个字符。个字符。字段的数据类型(字段的数据类型(Type)数据类型有字符型、货币型、数值型、日期型、日期时间型数据类型有字符型、货币型、数值型、日期型、日期时间型、逻辑型、逻辑型、浮点型、双精度型、整型、备注型、通用型浮点型、双精度型、整型、备注型、通用型字段宽度(字段宽度
9、(Width)字符型最多是字符型最多是254个字符,货币(型个字符,货币(型8)、日期型()、日期型(8)、)、日期时间型(日期时间型(8)、逻辑型()、逻辑型(1)、双精度型()、双精度型(8)、整型()、整型(4)、)、备注型(备注型(4)、通用型()、通用型(4)小数位数(小数位数(Decimal)空值支持(空值支持(NULL)两种方法:两种方法:CREATE TABLE 命令的语法:命令的语法:CREATE TABLE 表名(字段表名(字段1 字段类型字段类型(字段宽度字段宽度,小数位数小数位数)NULL|NOT NULL;,字段字段2 字段类型字段类型;(字段宽度;(字段宽度,小数位
10、数,小数位数)3.3.2创建和修改表结构创建和修改表结构用用“表设计器表设计器”创建(自由表和数据库表)创建(自由表和数据库表)用用CREATE TABLE 命令创建(课本命令创建(课本3.3.8节)节)1.创建表:创建表:例如:例如:创建学生表的命令如下:创建学生表的命令如下:CREATE TABLE xs2(xh C(6),xm C(8),xb C(2),zydh C(6),ximing c(18))创建教师表的命令如下:创建教师表的命令如下:CREATE TABLE js(gh C(5),xm C(8),xb C(2),xdh C(2),zcdh C(2),;csrq D,jbgz N(
11、7,2),jl M)使用使用NULLNULL值值在建立新表时,可以指定字段是否接受在建立新表时,可以指定字段是否接受NULLNULL值。值。在在“表设计器表设计器”对话框中的对话框中的“字段字段”选项卡中选定选项卡中选定.在在CREATE TABLE-SQLCREATE TABLE-SQL命令中,可以使用命令中,可以使用NULL/NOT NULLNULL/NOT NULL子句来设定子句来设定是否让某字段接受是否让某字段接受NULLNULL值。值。例例3 创建创建zg表,其中表,其中gh和和xm不允许为不允许为NULL,csrq允许为允许为NULL值:值:CREATE TABLE zg(gh C
12、(6)NOT NULL,xm C(8)NOT NULL,csqr D NULL)注:当设置表中的字段可以为注:当设置表中的字段可以为NULL,该表最多有该表最多有254个字段。个字段。表结构的修改有两种方法:有两种方法:用用“表设计器表设计器”修改(修改(modify structure)用用ALTER TABLE 命令修改命令修改1)用)用ALTER命令添加字段命令添加字段 例如:将例如:将bjmc字段添加到字段添加到xs表中表中 ALTER TABLE xs ADD COLUMN bjmc C(12)2)用)用ALTER命令重命名字段命令重命名字段 例如:将例如:将bjmc改为改为bj A
13、LTER TABLE xs RENAME COLUMN bjmc TO bj3)用)用ALTER命令删除字段命令删除字段 例如:将例如:将bj字段删除字段删除 ALTER TABLE xs DROP COLUMN bj3.3字段属性与表属性1.数据库表的字段扩展属性:数据库表的字段扩展属性:格式、输入掩码、格式、输入掩码、标题、默认值、验证规则等标题、默认值、验证规则等注意:注意:保存数据时,如何控制现有的数据不对保存数据时,如何控制现有的数据不对照;照;字段的默认控件类的使用字段的默认控件类的使用例:例:数据库表字段的默认值保存在数据库表字段的默认值保存在_文件中文件中 A表表 B.数据库数
14、据库 C.项目项目 D.表的索引表的索引2.数据库表的表属性数据库表的表属性1)长表名与注释)长表名与注释 在创建表时,每张表的表文件名就是表名。在创建表时,每张表的表文件名就是表名。其长度受操作系统的限制,在其长度受操作系统的限制,在VFP中规定,数中规定,数据库表及自由表的表名最大长度为据库表及自由表的表名最大长度为128个字符。个字符。在打开数据库时,长表名可以代替表名。在打开数据库时,长表名可以代替表名。但是使用长文件名打开表时,表所属的数据但是使用长文件名打开表时,表所属的数据库必须是打开的,且设为当前数据库。库必须是打开的,且设为当前数据库。长表名的设置:长表名的设置:可以在可以在
15、“表设计器表设计器”或在使用或在使用CREATE TABLE 命令创建表时,用命令创建表时,用NAME子句子句指定长表名。指定长表名。如:如:CREATE TABLE BK NAME 学生补学生补考表考表(XH;C(6),),KCDH C(2),),CJ N(3,0)2)表记录的验证规则)表记录的验证规则何时设置:何时设置:向表中输入记录时,想要比较两个以上的字段是否向表中输入记录时,想要比较两个以上的字段是否满足一定的条件。满足一定的条件。例如:课时数大于例如:课时数大于4的学分不得少于的学分不得少于2。15岁之前不可能参加工作。岁之前不可能参加工作。何时被激活:何时被激活:和字段级规则一样
16、,在记录值改变时被激活。当把和字段级规则一样,在记录值改变时被激活。当把记录指针移离记录时,都要检查记录级规则。记录指针移离记录时,都要检查记录级规则。如何设置:如何设置:在“表设计器”的“表”选项卡中,在“规则”和“信息”框中输入所需的规则和信息。记录的验证规则是一个逻辑表达式,记录的验证信息是一个带双引号的字符表达式。例如,对例如,对js表中的记录需要满足如下要求:表中的记录需要满足如下要求:。则应在。则应在“记录验证规则记录验证规则”框中输入如框中输入如下的表达式:下的表达式:year(js.csrq)-year(js.gzrq)=18在信息框中输入:在信息框中输入:“工作日期与出生日期
17、工作日期与出生日期必须相差必须相差18年年”可以使用CREATE TABLE 或ALTER TABLE 命令的CHECK子句。如:ALTER TABLE JS SET CHECK year(js.csrq)-year(js.gzrq)=18;ERROR“工作日期与出生日期必须相差工作日期与出生日期必须相差18年年”用以下命令可删除JS表的记录有效性规则:ALTER TABLE JS DROP CHECK3.创建表的触发器创建表的触发器 触发器是绑定在表上的逻辑表达式,触发器是绑定在表上的逻辑表达式,是在插入、更新或删除记录时进行的检是在插入、更新或删除记录时进行的检验规则。验规则。三种触发器的
18、含义:三种触发器的含义:插入触发器:每次向表中插入或追加记录时触发该规则。如该条记录使规则为.T.,则接受该记录;若该规则为.F.,则提出警告,拒绝接受该记录。更新触发器:每次在表中修改记录时触发该规则。如该条记录经修改后使规则为.T.,则接受该记录;若使该规则为.F.,则提出警告,拒绝接受修改。删除触发器:每次在表中删除记录是触发该规则。如该条记录使规则为.T.,则允许被删除;若使该规则为.F.,则提出警告,不允许删除该记录。注:触发器必须返回注:触发器必须返回“真真”或或“假假”,在记录的验证规,在记录的验证规则之后进行。则之后进行。创建触发器:利用“表设计器”使用命令创建插入触发器:CR
19、EATE TRIGGER ON 表名表名 FOR INSERT AS 逻辑表达式逻辑表达式创建更新触发器:CREATE TRIGGER ON 表名表名 FOR UPDATE AS 逻辑表达式逻辑表达式创建删除触发器:CREATE TRIGGER ON 表名表名 FOR DELETE AS 逻辑表达式逻辑表达式移去或删除触发器移去或删除触发器在“表设计器”中直接从触发器区域删除表达式。利用如下命令:DELETE TRIGGER ON 表名 FOR DELETE|INSERT|UPDATE注:如果从数据库中移去或删除表,则所有属于该表的触发器都从数据库中删除。例:对例:对JS表设置如下规则和触发器
20、:表设置如下规则和触发器:(1)工龄在工龄在10年以上(包含年以上(包含10年)年)的教师,最低工资不得低于的教师,最低工资不得低于800元元(2)当当csrq字段的值是字段的值是.NULL.时允许时允许删除,否则不允许删除删除,否则不允许删除(3)只有男教师才可被修改,女教师只有男教师才可被修改,女教师不允许修不允许修设置如下:设置如下:创建表的触发器举例:创建表的触发器举例:(1)在js表中创建一个插入触发器,以防止gh字段为空串(即不填gh字段)(2)在JS表中创建一个更新触发器,以防止gl字段的值大于50(3)在JS表中创建一个删除触发器,以防止“信息管理系”的老师被意外地删除例:例:
21、CJ表中,XH(学号)字段的前两位表示年级,设置如下规则和触发器:(1)若03级的学生是新生,CJ(成绩)字段必须为0(2)只有02级的学生成绩才允许被修改(3)CJ表中所有记录不允许被删除练习:设置设置kc表的属性:表的属性:1、设置设置bxk字段的默认值为:字段的默认值为:.t.2、设置设置kss 字段的标题为:字段的标题为:“课时数课时数”,并,并且每门课的课时数不得低于且每门课的课时数不得低于2个课时个课时3、4个课时以上(包括个课时以上(包括4个课时)的课程的学个课时)的课程的学分不得低于分不得低于2个学分个学分4、课程名为空的课程记录可以被删除课程名为空的课程记录可以被删除5、必修
22、课记录不允许被修改必修课记录不允许被修改4、数据库表的约束机制、数据库表的约束机制 数据库表的字段级和记录级以及表的触发器,为数据的输入和更改实施了约束。3.3.4 表的打开与关闭1、工作区的概念、工作区的概念用以标识一张打开的表的区域。每个工作区都有一个编号,从用以标识一张打开的表的区域。每个工作区都有一个编号,从132747;一个工作区中只能打开一张表,但一张表可以在多个工作;一个工作区中只能打开一张表,但一张表可以在多个工作区中打开(用区中打开(用AGAIN子句);在工作区中已打开的表都有一个别名子句);在工作区中已打开的表都有一个别名(前前1010个工作区号可以用字母个工作区号可以用字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 vfp 第三
限制150内