资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第4章 数据库操作与SQL语言,讲述数据库的概念和相关操作以及SQL结构化查询语言,11/15/2024,1,数据库DataBase就是按一定的组织结构存储在计算机内可共享使用的相关数据的集合。它以文件的形式组织管理一个或多个数据文件,并被多个用户所共享,它是数据库管理系统的重要组成局部。,在Visual FoxPro中,数据库包含有数据库表、视图等数据实体,又提供了数据字典、各种数据保护和数据管理功能,可将数据库看成是个收集表的“容器。,数据库文件的扩展名是.dbc,在建立数据库时,系统还会建立一个扩展名是.dct的数据库备注文件和一个扩展名是.dcx的数据库索引文件,因此Visual FoxPro数据库包括这3个文件。,11/15/2024,2,4.1 数据库根本操作,4.1.1 数据库建立,数据库的建立有两种方法:使用“数据库设计器和使用建立数据库的命令。,1.用数据库设计器建立数据库,菜单“文件|“新建,翻开“新建对话框,选定“文件类型为“数据库选项按钮,单击“新建文件,翻开“创立对话框,在“数据库名文本框中输入所建的数据库名,单击“保存按钮建立数据库,同时翻开“数据库设计器窗口。,利用“数据库设计器提供的工具或菜单,可以方便的建立数据库表或建立视图,也可以将自由表添加到数据库中,成为数据库表,以及建立数据库表间的永久关联关系等数据库操作。,11/15/2024,3,例4-1 利用“数据库设计器,新建数据库rsgzk.dbc,并将表rsb.dbf、gzb.dbf、bmdm.dbf和zz.dbf添加到新数据库中,成为数据库表。,建立数据库:菜单“文件|“新建命令,选“文件类型为“数据库选项按钮,单击“新建文件,在“数据库名文本框中输入rsgzk.dbc,单击“保存按钮,此时建立数据库rsgzk.dbc,同时翻开“数据库设计器窗口。,添加数据表:在“数据库设计器窗口,单击“数据库设计器工具中的“添加表按钮,在“翻开对话框中选定rsb.dbf,单击“确定按钮,rsb.dbf就添加到了rsgzk数据库中,用同样的方法添加表gzb.dbf、bmdm.dbf和zz.dbf。,11/15/2024,4,2.用命令方式建立数据库,命令格式:,CREATE DATABASE,功能:建立一个数据库同时翻开它。,例如建立gzk.dbc的命令如下:,CREATE DATABASE gzk,11/15/2024,5,3.数据库表,数据库表:归属于某个数据库的表称为数据库表。,自由表:独立存在、不与任何数据库相关联的表称为自由表。,数据库表与自由表是Visual FoxPro中表的两种存在状态,这两种表是可以相互转化的,需要注意的是当数据库表转化成自由表时,其数据库表特有的属性将会丧失。,数据库表的优点:可以使用长表名,可以使用长字段名;可以为字段制定标题和添加注释;可以为字段制定默认值和输入掩码;字段有默认的控件类;可以为字段设定字段级规那么和记录级规那么;支持插入、更新和删除事件的触发器;支持主关键字,表间永久关系和参照完整性规那么等。,11/15/2024,6,4.1.2 数据库操作命令,1.翻开数据库命令,命令格式:,OPEN DATABASE,功能:翻开一个数据库。,例如翻开数据库gzk.dbc的命令如下:,OPEN DATABASE gzk,2.关闭数据库命令,命令格式:,CLOSE DATABASE ALL,功能:关闭当前的数据库和它的表。选择ALL表示关闭所有翻开的数据库和它们的表、所有的自由表以及索引文件,返回1号工作区。,例如关闭当前数据库gzk.dbc的命令如下:,CLOSE DATABASE,11/15/2024,7,3.查看和修改数据库结构,命令格式:,MODIFY DATABASE,功能:翻开数据库设计器,以交互方式查看和修改当前数据库。,例如查看和修改数据库gzk.dbc的命令如下:,MODIFY DATABASE gzk.dbc,4.向数据库中添加表命令,命令格式:,ADD TABLE,功能:向当前数据库添加一个自由表。,例如向数据库gzk.dbc添加自由表gzb1.dbf它为gzb.dbf的复制表和zz1.dbfzz.dbf的复制表。,OPEN DATABASE gzk,ADD TABLE gzb1,ADD TABLE zz1,MODIFY DATABASE&查看添加到数据库里的表,CLOSE DATABASE,11/15/2024,8,5.从数据库中移去表命令,命令格式:,REMOVE TABLE,功能:从当前数据库中移去一个表。,例如从数据库gzk.dbc中移出表zz1.dbf。,OPEN DATABASE gzk,REMOVE TABLE zz1&在确认对话框选“是,移出数据库表zz1,MODIFY DATABASE&查看移出表后的数据库,CLOSE DATABASE,6.删除数据库命令,命令格式:,DELETE DATABASE,功能:从磁盘中删除一个数据库文件。,例如从磁盘中删除数据库文件gzk.dbc。,CLOSE DATABASE ALL&关闭所有翻开的数据库,DELETE DATABASE gzk.dbc&在确认对话框选“是,删除数据库,11/15/2024,9,7.清理数据库命令,命令格式:,PACK DATABASE,功能:从当前数据库中将做了删除标记的记录去除掉。,说明:使用该命令时要求当前数据库必须是独占翻开,并且数据库表和视图均没有被翻开使用。,例如清理数据库gzk.dbc的命令如下:,OPEN DATABASE gzk,PACK DATABASE,CLOSE DATABASE,11/15/2024,10,8选择当前数据库命令,命令格式:,SET DATABASE TO,功能:指定一个翻开的数据库,使它成为当前数据库。如果省略数据库名,那么翻开的数据库都不会成为当前数据库。,例如,翻开2个数据库,设置第一个数据库为当前数据库,然后使用 DBC()函数显示当前数据库的名称:,OPEN DATABASE rsgzk,OPEN DATABASE gzk,SET DATABASE TO rsgzk,?DBC()&在屏幕上显示rsgzk.dbc,11/15/2024,11,9浏览数据库文件,数据库文件.DBC文件本身也是一个表,表中存储了有关数据库及其对象的所有信息。数据库中的每个表、视图、字段、索引标记、永久关系等都有一条记录。,例如浏览数据库rsgzk.dbc的命令如下:,CLOSE DATABASE ALL&浏览前首先关闭.DBC文件,USE rsgzk.dbc&翻开数据库文件必须指明扩展名.DBC,BROWSE,11/15/2024,12,4.2 数据字典,数据字典就是包含数据库中所有表信息的一个表。存储在数据字典中的信息称之为元数据,包括长表名、长字段名、有效性规那么、触发器,表间永久关系以及数据库对象的定义等。,使用数据字典,可以设置字段级和记录级的有效性检查,保证主关键字字段内容的唯一性。,4.2.1 字段级规那么,字段级规那么主要包括显示属性、字段有效性和字段注释三局部。,11/15/2024,13,“格式”文本框中输入格式化代码,确定该字段在浏览窗口、表单和报表中显示的格式,它是对字段格式进行整体控制的。,字段级规则设置,“输入掩码”文本框中键入掩码代码,输入掩码是按位来控制格式的。,显示的标题改为自己希望的标题,字段有效性就是用于数据输入正确性的检验。,说明该字段的用途、特性、使用说明等补充信息,11/15/2024,14,4.2.2 记录级规那么记录级规那么主要包括记录有效性、触发器的设置和表注释。,“教授的基本工资要1650元,其他职工为:,550基本工资3000,职称=教授.AND.基本工资=1650.OR.职称#教授.AND.(基本工资=550.AND.基本工资=3000),每逢星期一才可做插入、追加、更新和删除记录的操作:,CDOW(DATE()=Monday,11/15/2024,15,4.2.3 表间规那么,1.永久关系,永久关系是数据库表间的关系,它们存储在数据库文件中。,利用“数据库设计器来建立永久关系:,在“数据库设计器中,用鼠标从一个表的主索引或候选索引拖到另一个表的任一索引,当出现表间关联连线时就表示关系已建立。用鼠标右键单击连线,弹出快捷菜单,可以进行删除关系、编辑关系和编辑参照完整性操作。,例4-2为例4-1的数据库rsgzk.dbc中的各表建立永久关系。,1 建立各表的索引。,2利用数据库设计器,画出表间关系连线。,建立表rsb与表gzb的连线:形成一条一一关系连线,建立表rsb与表zz的连线:形成一条一多关系连线,建立表rsb与表bmdm的连线:形成一条多一关系连线,11/15/2024,16,一一关系连线,多一关系连线,一多关系连线,建立后各表间的永久关系,11/15/2024,17,2.参照完整性,参照完整性是控制数据库中不同表的主关键字和外部关键字之间数据一致性的关系规那么。参照完整性那么属于表间规那么。,用户可以通过“参照完整性生成器来进行规那么设置,从而控制相关表的更新、删除和插入记录的数据完整性。,1翻开“参照完整性生成器窗口,双击两表之间的连线,在“编辑关系对话框中选定【参照完整性】按钮。,2设置更新、删除、插入三个规那么,更新规那么:是指修改父表中关键字值时所使用的规那么,包括级联、限制和忽略3种。,删除规那么:是指删除父表中的记录时使用的规那么,包括级联、限制和忽略3种。,插入规那么:是指在子表中插入新的记录,或更新已存在的记录时所用的规那么,包括限制和忽略2种。,11/15/2024,18,更新规则,删除规则,插入规则,级联,当父表中的关键字值被修改时,系统用新的关键字值更新子表中所有相关记录,当父表的记录被删除时,系统相应的删除子表中所有相关记录,限制,若子表有相关记录,则系统禁止父表中的关键字值被修改,若子表有相关记录,则系统禁止父表的记录被删除,若父表中不存在匹配的关键字值,则禁止在子表插入一个新记录或更新一个已存在的记录,忽略,允许更新,允许删除,允许插入,11/15/2024,19,在浏览bmdm表时将计算机系的代码修改为A04,则子表rsb中部门是计算机系的所有记录的部门代码字段值都被更新为“A04”。,11/15/2024,20,课堂讨论,什么是数据库?,数据字典的含义是什么?,数据库表和自由表有什么区别?,字段级规那么、记录级规那么、表间规那么如何设置?,11/15/2024,21,
展开阅读全文