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