1 / 89

数据库与表的操作

数据库与表的操作. 第 3 章 数据库与表的操作. 3.1 数据库的设计过程. 3.2 数据库的创建. 3.3 数据库的组成. 3.4 数据库的使用. 3.5 表的创建与修改. 3.6 数据库表与自由表. 第 3 章 数据库与表的操作. 3.7 表的使用. 3.8 表的索引. 3.9 表之间的关系. 3.10 数据库表的扩展属性. 3.11 相关表的参照完整性. 3.12 小型案例实训. 教学目的与要求. 掌握数据库的设计过程. 掌握 数据库的创建与使用. 掌握表的创建、修改与使用. 掌握工作区的概念.

damita
Télécharger la présentation

数据库与表的操作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据库与表的操作

  2. 第3章 数据库与表的操作 3.1 数据库的设计过程 3.2 数据库的创建 3.3 数据库的组成 3.4 数据库的使用 3.5 表的创建与修改 3.6 数据库表与自由表

  3. 第3章 数据库与表的操作 3.7 表的使用 3.8 表的索引 3.9 表之间的关系 3.10 数据库表的扩展属性 3.11 相关表的参照完整性 3.12 小型案例实训

  4. 教学目的与要求 掌握数据库的设计过程 掌握数据库的创建与使用 掌握表的创建、修改与使用 掌握工作区的概念 掌握表索引的概念及创建方法 理解表之间的关系 熟练掌握数据库表属性以及参照完整性的设置

  5. 3.1 数据库的设计过程 3.1 数据库的设计过程 数据库是一个包容器,是相关的数据库表及其关系的集合。例如,图书管理数据库:

  6. 1. 需求分析 2. 确定需要的表 例如,图书管理数据库中包括读者表、图书表、借阅表等等。教学管理数据库中包括学生表、课程表、成绩表等等。 确定表时,应避免重复的信息。 3.1 数据库的设计过程

  7. 3.1 数据库的设计过程 3.确定表的字段 • 每个字段直接和表的主题相关 • 不要包含可推导得到或需计算的数据字段 有了出生年月字段 就不需年龄字段了。 • 收集所需的全部信息 • 以最小的逻辑单位存放信息 • 每张表必须明确主关键字

  8. 3.1 数据库的设计过程 读者表的主关键字是:读者编号

  9. 3.1 数据库的设计过程 图书表的主关键字是:书号

  10. 3.1 数据库的设计过程 借阅表的主关键字? 读者编号+书号

  11. 甲表(主表) 乙表(子表) 3.1 数据库的设计过程 4.确定表之间的关系 • 表与表的关系有三种: • 一对一(1:1) • 一对多(1:n) • 多对多(m:n) 关系型数据库处理的主要是一对多的关系。 “一方”为主表 “多方”为子表

  12. 3.1 数据库的设计过程 组合关键字 主码 主码 图书管理系统中表之间的关系 读者表 外部关键字 借阅表 图书表 成绩表 外部关键字

  13. 3.1 数据库的设计过程 纽带表 一对多 一对多 设计纽带表时把两张表的主键都包含在这个纽带表中 例如,学生表和课程表之间是多对多关系。建立第三张表成绩表,将多对多关系分解成两个一对多关系。

  14. 3.1 数据库的设计过程 5. 优化设计 完成初步的数据库表、字段以及关系设计后,需要进一步的检查分析,进一步的优化设计。

  15. 3.2 数据库的创建 • 创建数据库有两种操作方式: • 界面方式 • 在项目管理器中创建 • 用“文件”菜单“新建” • 命令方式 • CREATE DATABASE 数据库名 • 新建数据库产生三个文件,扩展名分别是:.dbc、.dct、.dcx

  16. 3.3 数据库的组成 由以下几部分组成: • 数据库表 数据库与表之间的链接关系:前链与后链 • 本地视图 • 远程视图 • 连接 ODBC(Open Database Connectivity,开放式数据库互连) • 存储过程

  17. 3.4 数据库的使用 3.4.1 数据库的打开 3.4.2 设置当前数据库 3.4.3 数据库的修改 3.4.4 数据库的关闭 3.4.5 删除数据库 3.4.6 检查数据库的有效性

  18. 3.4.1 数据库的打开 • 在项目管理器中打开 • 使用【文件】菜单【打开】 • 使用OPEN DATABASE 命令打开 Visual FoxPro可以在同一时刻打开多个数据库,但只有一个是当前数据库

  19. 3.4.2 设置当前数据库 • 常用工具栏上“数据库下拉列表”中设置 • 使用SET DATABASE TO [DatabaseName] 例如,SET DATABASE TO TSK

  20. 3.4.3 数据库的修改 • 在项目管理器中修改 • 使用MODIFY DATABASE [DatabaseName|?] 例如,MODIFY DATABASE ?

  21. 3.4.4 数据库的关闭 • 在项目管理器中关闭数据库 • 使用CLOSE DATABASE命令关闭数据库

  22. 3.4.5 删除数据库 • 使用项目管理器删除数据库 • 使用DELETE DATABASE 命令删除数据库 例如,DELETE DATABASE TSK2

  23. 3.4.6检查数据库的有效性 • 打开后检查 VALIDATE DATABASE [RECOVER] • 打开时检查 OPEN DATABASE tsk VALIDATE

  24. 3.5 表的创建与修改 3.5.1 表的创建 3.5.2 表结构的修改

  25. 字段(Field) … 记录(Record) …... 3.5.1 表的创建 表:指存放在磁盘文件中的一张二维表。一张表保存为一个表文件(.dbf) 每张表最多有255个字段 表的记录必须用一个公共的结构来存储,这个公共结构就是表的结构。

  26. 3.5 表的创建与修改 创建表分两步: • 先创建表的结构 • 再输入表记录的内容

  27. 3.5 表的创建与修改 1.表结构 (1)字段名 遵循名称命名规则,自由表的字段名最多10个字符,数据库表的字段名最多可以有128个字符。 (2)字段的数据类型 字符型用C表示、逻辑型用L、日期型用D、数值型用N、货币型用Y、备注型用M、通用型用G表示 (3)字段的宽度 货币型、日期型、日期时间型和双精度型为8个字节,逻辑型为1个字节、备注型和通用型字段宽度为4个字节 (4)小数位数 整数部分的宽度+小数点1位+小数位数宽度 (5)空值(NULL)支持 <Ctrl>+0输入空值

  28. 3.5 表的创建与修改 2.表结构的创建 (1)用表设计器创建表结构 用设计器创建表结构演示,表的扩展名,.dbf 与 .fpt 自由表设计器与数据库表设计器 (2)利用表向导创建表结构 (3)利用CREATE TABLE - SQL命令创建表结构 CREATE TABLE TableName [FREE] (FieldName1 FieldType [(nFieldWidth[,nPrecision])] [, FieldName2 FieldType [(nFieldWidth[,nPrecision]) 例:创建读者表(dz)的命令如下: CREATE TABLE dz (dzbh c(8), xm c(8), xb c(2), dzlb c(4) ,csrq d)

  29. 3.5 表的创建与修改 例3.2 创建图书表(ts.dbf)的结构。 CREATE TABLE ts ( sh c(20) PRIMARY KEY, ; sm c(50), cbsbh c(4),zz c(40),dj n(5,1) CHECK dj>0, ; rkcs n(2,0),kccs n(2,0))

  30. 3.5.2 表结构的修改 1.使用“表设计器”修改 直接修改字段名称、类型、宽度等属性,也可以插入字段、删除字段、调整字段的顺序等。 2.使用ALTER TABLE -SQL命令修改 用ALTER TABLE – SQL命令可以为表增加字段、更改字段、删除字段和重命名字段 例:为图书(ts)表增加一个备注型字段 ALTER TABLE ts ADD COLUMN bz m 例: 删除备注字段 ALTER TABLE ts DROP COLUMN bz

  31. 3.6 数据库表与自由表 3.6.1 数据库表的添加 1.使用项目管理器 2.使用ADD TABLE 命令 解除后链的命令是:FREE TABLE TableName 例如,FREE TABLE ts ADD TABLE ts 3.6.2 数据库表的移去 1.使用项目管理器 2.使用REMOVE TABLE命令 例如,REMOVE TABLE ts

  32. 3.7 表的使用 3.7.1 工作区 3.7.2 表的打开与关闭 3.7.3 表记录的处理

  33. 3.7.1 工作区 1.工作区的概念 最多有32767个工作区 前10个工作区1~10依次用字母A~J表示 从第11个开始依次用W11~W32767表示 2.选择工作区 SELECT nWorkArea| cTableAlias 例如,SELECT 2 SELECT B SELECT TS SELECT 0 表示选择未被使用的最小工作区

  34. 3.7 表的使用 3.数据工作期窗口 在数据工作期窗口,可以对表执行打开、关闭、浏览等操作,可以观察表所在的工作区。

  35. 3.7.2 表的打开与关闭 1.表的打开 (1)使用界面方式打开表 (2)使用USE命令打开表 USE TableName 例如,打开ts.dbf。 USE ts 例如,打开数据库jxsj中的xs表。 USE jxsj !xs

  36. 3.7 表的使用 例执行以下一组命令,出版社表(cbs.dbf)在哪个工作区打开? SELECT 1 USE dz SELECT 3 USE ts SELECT 0 USE cbs SELECT()函数:返回工作区的编号。 SELECT(0)返回当前工作区的编号。 SELECT(1) 返回工作区的最大编号,即32767。

  37. 3.7 表的使用 2.表的关闭 (1)使用界面方式 (2)使用USE命令 USE (3)使用CLOSE 命令 CLOSE TABLES ALL

  38. 3.7.3 表记录的处理 1.表记录的输入 2.表记录的追加 3.表记录的浏览 4.表记录的筛选 5.表字段的筛选 6.记录的定位 7.记录的修改 8.记录的删除 9.记录的恢复 10.带删除标记记录的访问 11.记录的复制 12.记录的统计与汇总

  39. 3.7 表的使用 1.表记录的输入 在“浏览”或“编辑”窗口直接输入,通过菜单【显示】→【浏览】或【编辑】切换。 2.表记录的追加 (1)在浏览窗口追加记录 单击【显示】→【追加方式】菜单项 (2)使用APPEND 命令追加 (3)使用APPEND FROM命令追加 (4)使用INSERT 和INSERT INTO – SQL命令追加

  40. 3.7 表的使用 INSERT INTO – SQL命令的语法 INSERT INTO TableName [(FieldName1 [,FieldName2,…])] ; VALUES(eExpression1[,eExpression2, …]) 例在图书(ts)表中插入记录: INSERT INTO ts (sh,sm,cbsbh,zz,dj)VALUES ;(“I206.09/26P”,”中国文学批评小史”,”F001”,”周勋初著”,50.0)

  41. 3.7 表的使用 (5)备注型和通用型字段的输入 ①备注型字段的输入 双击“memo” 输入内容后“memo”变为“Memo” ②通用型字段的输入 双击“gen”,选择【编辑】→【插入对象】命令,输入数据后显示“Gen”

  42. 3.7 表的使用 3.表记录的浏览 (1)LIST/DISPLAY (2)BROWSE命令 例3.10 浏览ts.dbf中cbsbh为“Z014”的sh、sm、zz。 USE ts BROWSE FIELDS sh,sm,zz FOR cbsbh=”Z014” 4.表记录的筛选 (1)使用“工作区属性”窗口设置 (2)使用SET FILTER TO 命令筛选 SET FILTER TO [条件表达式] 例如:SET FILTER TO cbsbh=”Z014”

  43. 3.7 表的使用 5.表字段的筛选 (1)使用“工作区属性”窗口设置 (2)使用SET FIELD TO 命令 SET FIELD TO [字段名列表] 例如,SET FIELD TO sh,sm,zz 6.记录的定位 (1)记录指针:记录指针是系统内部的一个指示器。 (2)记录的定位 记录的定位分为:绝对定位 GOTO 命令 相对定位 SKIP 命令 条件定位 LOCATE FOR与CONTINUE 定位范围All、Next、Record、Rest

  44. 3.7 表的使用 有关记录指针定位的函数: RECNO():测试当前记录指针所指的记录号。 BOF():测试记录指针是否为表文件的首部。 EOF():测试记录指针是否为表文件的末尾。 RECCOUNT():返回当前或指定表中的记录数目。 FCOUNT():返回指定表的字段数。 FIELD(i):返回表的的第i个字段名称。 FOUND()函数测试是否定位到满足条件的记录。

  45. 3.7 表的使用 例:假设图书(ts)表中有记录,执行下述命令,观察运行结果。 USE ts RECNO() && 返回1 ?BOF() && 返回.F. SKIP -1 ?BOF() && 返回.T. RECNO() && 返回1,RECNO()的返回值最小为1 GOTO BOTTOM RECNO() && 返回表记录的个数。 ?EOF()&& 返回.F. SKIP ?EOF()&& 返回.T. ?RECNO() && 返回表记录的个数+1。

  46. 3.7 表的使用 7.记录的修改 (1)逐个修改 EDIT/CHANGE(编辑修改)和BROWSE (浏览修改) (2)批量修改 ①界面操作方式 在表浏览方式下,选择【表】→【替换字段】菜单项 ②命令方式:REPLACE和UPDATE –SQL 命令

  47. 3.7 表的使用 • REPLACE命令: REPLACE FieldName1 WITH eExpression1 ; [, FieldName2 WITH eExpression2...][Scope]; [FOR lExpression1] [WHILE lExpression2][ADDITIVE] 例:ts表中,cbsbh为“Z014”的图书记录,dj下浮10%。 USE ts REPLACE All dj WITH dj*0.9 FOR cbsbh=”Z014” • UPDATE –SQL 命令: 语法:UPDATE [DatabaseName1!]TableName1 SET ; Column_Name1 = eExpression1[, Column_Name2 = ;eExpression2 ...][WHERE FilterCondition1 [AND | OR FilterCondition2 ...]] 例:ts表中,cbsbh为“Z014”的图书记录,dj下浮10%。 UPDATE ts SET dj=dj*0.9 WHERE cbsbh=”Z014”

  48. 3.7 表的使用 8.记录的删除 (1)置删除标记 ①界面操作方式:【表】→【删除记录】菜单项 ②命令方式(DELETE和DELETE—SQL命令) • DELETE命令: 语法:DELETE [Scope] [FOR lExpression1] [WHILE lExpression2] 例:对ts表中所有cbsbh为“Z014”的记录置删除标记。 USE ts DELETE FOR cbsbh=”Z014” • DELETE—SQL命令: 语法:DELETE FROM [DatabaseName!]TableName; [WHERE FilterCondition1 [AND | OR FilterCondition2 ...]] 例:对ts表中所有cbsbh为“Z014”的记录置删除标记。 DELETE FROM ts WHERE cbsbh=”Z014”

  49. 3.7 表的使用 (2)彻底删除记录 ①界面操作方式:选择【表】→【彻底删除】菜单项 ②命令方式 语法:PACK ZAP命令:一次性删除表的全部,不必预先置删除标记。 9.记录的恢复 RECALL命令 例:恢复ts表中cbsbh为“Z014”的记录。 RECALL ALL FOR cbsbh=“Z014”

  50. 3.7 表的使用 10.带删除标记记录的访问 取决于当前系统的状态 • SET DELETE ON 时,则忽略带有删除标记的记录。 • SET DELETE OFF 时,则允许访问带有删除标记的记录 当前记录是否置删除标记,使用DELETED()函数测试。 如果当前记录置了删除标记,则返回.T.,否则返回.F.。 11.记录的复制 COPY TO Filename [FIELDS FieldList ][Scope] [FOR lExpression] [SDF|XLS] 例:将ts表中的cbsbh为“Z014”的sh、sm、zz复制到Excel表cbsz中。将ts表的结构复制到ts2中。 USE ts COPY TO cbsz FIELD sh,sm,zz FOR cbsbh=”Z014” XLS COPY STRUCTURE TO ts2

More Related