《数据库vfp 第三章 数据库和表(4).ppt》由会员分享,可在线阅读,更多相关《数据库vfp 第三章 数据库和表(4).ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 数据库和表创建、维护和管理数据库创建、维护和管理数据库要点v建立数据库建立数据库v数据库的基本操作数据库的基本操作v数据词典数据词典一、建立数据库可以使用项目管理器或可以使用项目管理器或create database命令等命令等方法建立数据库。在开发环境下通常使用项目管方法建立数据库。在开发环境下通常使用项目管理器建立数据库,在程序运行时刻通常以命令方理器建立数据库,在程序运行时刻通常以命令方式建立数据库。式建立数据库。Create database命令语法格式命令语法格式Create database databaseName|?二、数据库的基本操作v数据库的基本操作包括:数据库的基
2、本操作包括:打开数据库;打开数据库;向数据库中添加表;向数据库中添加表;获取数据库中的表信息;获取数据库中的表信息;从数据库中移去表;从数据库中移去表;删除数据库中的表;删除数据库中的表;多数据库操作;多数据库操作;关闭数据库等关闭数据库等二、数据库的基本操作v打开数据库打开数据库刚创建的数据库会自动保持打开状态,而对于已刚创建的数据库会自动保持打开状态,而对于已经存在的数据库,使用前必须首先打开数据库经存在的数据库,使用前必须首先打开数据库使用交互模式打开数据库使用交互模式打开数据库使用使用open database命令打开数据库命令打开数据库Open database fileName|?
3、exclusive|shared noupdate二、数据库的基本操作v检查数据库的打开状态检查数据库的打开状态Dbc()函数返回当前打开数据库的名称和路径,函数返回当前打开数据库的名称和路径,如果没有打开的数据库,该函数返回空值如果没有打开的数据库,该函数返回空值可使用可使用dbused()函数来检测数据库的打开状态函数来检测数据库的打开状态Adatabase()函数可以把所有打开的数据库的名函数可以把所有打开的数据库的名称和路径保存到内存变量数组中,同时返回打开称和路径保存到内存变量数组中,同时返回打开数据库的数目,如果没有打开的数据库,返回数据库的数目,如果没有打开的数据库,返回0.二、
4、数据库的基本操作v向数据库中添加表向数据库中添加表在打开数据库设计器的情况下,可以通过交互在打开数据库设计器的情况下,可以通过交互模式向数据库添加一个已存在的自由表。此外,模式向数据库添加一个已存在的自由表。此外,可以使用可以使用add table命令向当前数据库添加。命令向当前数据库添加。语法格式:语法格式:vAdd table tableName|?name longtablename要注意的是,被添加的表必须为自由表,且数要注意的是,被添加的表必须为自由表,且数据库必须以独占方式打开据库必须以独占方式打开二、数据库的基本操作v获取数据库中的表信息获取数据库中的表信息使用使用display
5、 tables命令显示表信息命令显示表信息vDisplay tables to printer prompt|to file filename使用使用adbobjects()函数将表信息保存到数组中函数将表信息保存到数组中vAdbobjects(ArrayName,cSetting)使用使用indbc()函数指定的数据库对象是否已经存函数指定的数据库对象是否已经存在于当前数据库中在于当前数据库中vIndbc(cDatabaseName,cSetting)二、数据库的基本操作v从数据库中移去表从数据库中移去表交互模式从数据库中移去表交互模式从数据库中移去表使用命令从数据库中移去表使用命令从数据库
6、中移去表vRemove table TableName|?deletedv重命名数据库中的表重命名数据库中的表可以使用交互模式和命令模式可以使用交互模式和命令模式命令语法格式命令语法格式vRename table tableName1 to tableName2二、数据库的基本操作v从数据库中删除表从数据库中删除表可以使用交互模式和命令模式可以使用交互模式和命令模式命令语法格式命令语法格式vDrop table TableName|fileName|?recylcev交互模式修改数据库交互模式修改数据库可以使用可以使用modify database 命令打开数据库设计命令打开数据库设计器,进行
7、交互式的修改。器,进行交互式的修改。vModify database DatabaseName|?nowait noedit二、数据库的基本操作v多数据库操作多数据库操作Foxpro同时可以打开多个数据库。但只有一个数据库可同时可以打开多个数据库。但只有一个数据库可以成为当前数据库。可以使用命令指定当前数据库以成为当前数据库。可以使用命令指定当前数据库vSet database to databaseName要获得当前数据库的名称,使用要获得当前数据库的名称,使用dbc()函数函数v关闭数据库关闭数据库Close databases allv删除数据库删除数据库Delete database
8、databaseName|?deleteTables三、数据词典所谓数据词典是包含数据库中所有表信息的一个所谓数据词典是包含数据库中所有表信息的一个表。用于存储表的长表名或长字段名、有效性规表。用于存储表的长表名或长字段名、有效性规则和触发器,以及有关数据库对象的定义(如视则和触发器,以及有关数据库对象的定义(如视图和命名连接)图和命名连接)数据词典使数据库的设计和修改更加灵活。使用数据词典使数据库的设计和修改更加灵活。使用数据词典,可以设置字段级和记录级的有效性检数据词典,可以设置字段级和记录级的有效性检查,保证主关键字字段内容的唯一性。如果不用查,保证主关键字字段内容的唯一性。如果不用数据
9、词典,这些功能就必须靠自己编程实现。数据词典,这些功能就必须靠自己编程实现。三、数据词典v数据词典可创建和指定的项目包括:数据词典可创建和指定的项目包括:建立表的主关键字和候选索引关键字建立表的主关键字和候选索引关键字为表和字段指定长名称为表和字段指定长名称为每个字段和表添加注释为每个字段和表添加注释为表的各字段指定标题,这些标题作为表头显示在为表的各字段指定标题,这些标题作为表头显示在browse窗口或窗口或grid列中列中为字段指定默认值为字段指定默认值设置字段的输入掩码和显示格式设置字段的输入掩码和显示格式设置字段级规则和记录级规则设置字段级规则和记录级规则为表设置触发器为表设置触发器建
10、立存储过程建立存储过程建立数据库表间的永久关系建立数据库表间的永久关系建立到远程数据源的连接建立到远程数据源的连接建立本地视图和远程视图建立本地视图和远程视图三、数据词典v设置长表名和表注释设置长表名和表注释为了更清楚地描述表的含义,可以为数据库表设为了更清楚地描述表的含义,可以为数据库表设置长表名和表注释置长表名和表注释可以通过可以通过create table命令的命令的name子句设置长表子句设置长表名。名。可以使用可以使用dbsetprop()函数设置表注释。函数设置表注释。vDbsetprop(cName,cType,cProperty,cPropertyValue)Cname必须是长
11、表名;必须是长表名;cType是是CONNECTION、DATABASE、FIELD、TABLE、VIEW之一。之一。三、数据词典v设置长字段名设置长字段名数据库表允许字段名称最多为数据库表允许字段名称最多为128位字符位字符,而自由表最多而自由表最多只能为只能为10个字符。如将表从数据库中移去,长字段名将个字符。如将表从数据库中移去,长字段名将被截取为被截取为10个字符。个字符。v字段的输入输出格式字段的输入输出格式可以通过格式和输入掩码控制向字段中输入的值,以及可以通过格式和输入掩码控制向字段中输入的值,以及字段的显式格式。字段的显式格式。格式设置决定整个字段的输入方式;输入掩码可以控制格
12、式设置决定整个字段的输入方式;输入掩码可以控制每个字符的输入方式。每个字符的输入方式。v?Dbsetprop(“学生档案表学生档案表.联系电话联系电话“,”FIELD“,”InputMask”,”999-99999999”)三、数据词典v设置字段标题设置字段标题可以为每个字段设置一个标题,在编辑窗口或可以为每个字段设置一个标题,在编辑窗口或grid控件中显示字段时,使用该标题作为列标题。控件中显示字段时,使用该标题作为列标题。vDbsetprop(“testtb.联系电话联系电话”,”FIELD”,”caption”,”telephone”)v设置字段注释设置字段注释添加字段注释可以使用户更容
13、易理解字段的用途添加字段注释可以使用户更容易理解字段的用途vDbsetprop(“testtb.联系电话联系电话”,”FIELD”,”comment”,”该字段用于保存学生的该字段用于保存学生的联系电话联系电话”)三、数据词典v设置字段级有效性规则设置字段级有效性规则可以使用字段级有效性规则控制用户输入到字段可以使用字段级有效性规则控制用户输入到字段中的信息类型或检查其他字段值的字段数据。中的信息类型或检查其他字段值的字段数据。使用表设计器设置使用表设计器设置使用命令设置使用命令设置v使用使用create table命令的命令的check子句或子句或alter table的的set check
14、子句设置字段级规则子句设置字段级规则alter table 学生档案表学生档案表 alter column maths set check maths=0.and.maths=100 error 请输入请输入0-100间的值间的值三、数据词典v设置记录级有效性规则设置记录级有效性规则使用记录级有效性规则,可以控制用户输入到记使用记录级有效性规则,可以控制用户输入到记录中的信息类型。录中的信息类型。使用表设计器设置记录级有效性规则使用表设计器设置记录级有效性规则使用命令设置记录级有效性规则使用命令设置记录级有效性规则v使用可以使用使用可以使用create table的的check和和alter
15、table的的set check子句来设置记录级有效性规则子句来设置记录级有效性规则alter table 学生档案表学生档案表 set check total=chinese+maths error 成绩合计不正确成绩合计不正确三、数据词典v存储过程存储过程存储过程是保存在数据库中的专门进行数据库操存储过程是保存在数据库中的专门进行数据库操作的代码过程。作的代码过程。其通常与触发器结合使用,来控制数据的完整性。其通常与触发器结合使用,来控制数据的完整性。打开数据库时,存储过程被自动加载到内存中,打开数据库时,存储过程被自动加载到内存中,可以和其他过程文件一样进行调用可以和其他过程文件一样进行
16、调用在打开数据库的情况下,执行在打开数据库的情况下,执行modify procedure命令可以打开存储过程文本编辑器命令可以打开存储过程文本编辑器可以使用可以使用display procedure命令显示当前数据库命令显示当前数据库中的存储过程名称。中的存储过程名称。三、数据词典v设置触发器设置触发器触发器是绑定在表上的表达式,当表中的任何记触发器是绑定在表上的表达式,当表中的任何记录被指定的操作命令修改时,触发器被激发。录被指定的操作命令修改时,触发器被激发。触发器作为特定表的属性被创建和存储。触发器作为特定表的属性被创建和存储。触发器必须返回触发器必须返回.t.或或.f.,并且必须返回,
17、并且必须返回.t.时,时,操作才能继续进行操作才能继续进行可以使用表设计器和可以使用表设计器和create trigger命令创建触命令创建触发器。发器。一张表最多只能有一张表最多只能有3个触发器。个触发器。v结合存储过程的触发器示例(见备注)结合存储过程的触发器示例(见备注)三、数据词典v建立和删除表间关系建立和删除表间关系建立表间永久关系建立表间永久关系v设计器方式和命令方式设计器方式和命令方式v使用带使用带foreign key子句的子句的create table或或alter table命令建立永久关系命令建立永久关系删除表间永久关系删除表间永久关系v设计器方式和命令方式设计器方式和命
18、令方式v使用带使用带drop foreign key 子句的子句的alter table命令删除命令删除表间的永久关系表间的永久关系三、数据词典建立表间临时关系建立表间临时关系v使用使用set relation建立临时关系。建立前,必须打开一建立临时关系。建立前,必须打开一个表(父表),而且还必须在另一个工作区打开其他个表(父表),而且还必须在另一个工作区打开其他表(子表)。相关的表通常有一个相同的字段,且子表(子表)。相关的表通常有一个相同的字段,且子表必须建立索引。表必须建立索引。v语句示例:语句示例:set ralation to id into 表表2v在建立一对一关系基础上可使用在建
19、立一对一关系基础上可使用set skip to语句建立语句建立一对多关系。一对多关系。v不带参数的不带参数的set relation to 和和set skip to可以删除一可以删除一对一关系和一对多关系对一关系和一对多关系 三、数据词典v建立参照完整性建立参照完整性参照完整性即根据一系列规则来保持数据的一致性。参照完整性即根据一系列规则来保持数据的一致性。foxpro使用前面介绍的字段级规则、记录级规则、触发使用前面介绍的字段级规则、记录级规则、触发器、存储过程来实现参照完整性规则。器、存储过程来实现参照完整性规则。参照完整性的作用:参照完整性的作用:v当主表没有关联记录时,记录不得添加到相关表中;当主表没有关联记录时,记录不得添加到相关表中;v主表的值不能改变,若这个改变将导致相关表中出现孤立记录;主表的值不能改变,若这个改变将导致相关表中出现孤立记录;v若主表记录在相关表中有匹配记录,则该主表记录不能被删除若主表记录在相关表中有匹配记录,则该主表记录不能被删除参照完整性生成器参照完整性生成器级联、限制、忽略的含义。级联、限制、忽略的含义。
限制150内