c语言关联查询和数据库.docx

上传人:b****5 文档编号:5770154 上传时间:2023-01-01 格式:DOCX 页数:15 大小:743.66KB
下载 相关 举报
c语言关联查询和数据库.docx_第1页
第1页 / 共15页
c语言关联查询和数据库.docx_第2页
第2页 / 共15页
c语言关联查询和数据库.docx_第3页
第3页 / 共15页
c语言关联查询和数据库.docx_第4页
第4页 / 共15页
c语言关联查询和数据库.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

c语言关联查询和数据库.docx

《c语言关联查询和数据库.docx》由会员分享,可在线阅读,更多相关《c语言关联查询和数据库.docx(15页珍藏版)》请在冰豆网上搜索。

c语言关联查询和数据库.docx

c语言关联查询和数据库

 

实验课程名称VisualFoxpro

实验项目名称关联查询和数据库

专业班级电子信息科学与技术08级1班

学生姓名张辉

学号080712110078

 

实验(三)关联查询和数据库

{实验3-1多表关联与查询}

 

电科081班级张辉

NO.:

080712110078

 

实验目的:

1.理解关联的概念,掌握在数据工作期窗口中建立关联的方法。

2.掌握SELECT-SQL查询命令。

3.掌握用查询设计器建立查询的方法。

 

实验要求:

1.在数据工作期窗口中建立以“订单”为父表,“订单详细”为字表的一多关系;再建立以“订单明细”为父表,“货物”为字表的多一关系的二级关联。

然后查看关联后的效果。

2.用SELECT-SQL命令对上述5个表作多表查询练习。

a.查询联系“东南实业”公司的员工姓名以联系电话。

b.查询订购麻油的订单份数。

3.用查询设计器查询公式订货情况。

 

实验准备:

1.阅读主教材3.1.2节、3.2.3节、3.3节、3.5.1节3.5.2节。

2.创建好订单、订单明细、员工、客户和货物表。

 

订单表:

 

订单明细:

员工:

客户:

货物:

 

实验步骤:

 

3-1

为“关联”建立索引:

为订单明细表的订单号字段建立索引,再为货物表的货号字段建立索引。

如下图:

 

3-2

建立关联:

打开数据工作区窗口→分别用“打开”按钮打开订单表、订单明细表和货物表→在“别名”列表框中选定“订单”,单击“关系按钮”→在“别名”列表框中选定“订单明细”→随即弹出“设置索引顺序”对话框,其列表框中显示“订单明细.订单号”。

选定“确定”按钮→随即弹出“表达式生成器”对话框,其SETRELATION框中显示“订单号”。

选定“确定”按钮,多一关系建立完成→选定“一对多”按钮→在随即弹出的“创建一对多关系”对话框中将“订单明细”从“子表别名”列表框移入“选定别名”列表框中→选定“确定”按钮,一多关系建立完成。

在“别名”列表框中选定“订单明细”→为确定以订单明细表为父表建立下一级关联,在“关系”列表框中也选定“订单明细”→单击“关系”按钮→在“别名”列表框中选定“货物”→在随即弹出的“设置索引顺序”对话框中选定“确定”按钮→在“表达式生成器”对话框中选定“确定”按钮,多一关系建立完成。

 

创建后的结果如下图所示:

 

3-3

查看关联效果:

分别打开“订单”、“订单明细”和“货物”浏览窗口,并按左中右顺序排列→选定“订单”表的某个记录,“订单明细”和“货物”浏览窗口的内容即会关联变化。

 

选定“订单”表的某个记录,“订单明细”和“货物”浏览窗口的内容即会关联变化,

如下图:

 

3-4

查询联系“东南实业”公司的员工姓名及联系电话:

根据“东南实业”公司的客户编号,可在订单表中找到与其联系的员工工号,据此就可在员工表中查出该员工的姓名及电话号码。

SELECT-SQL命令及查询结果如下:

 

3-5

查询订购麻油的订单份数:

先通过货物表与订单明细表联接生成两表货号的记录,再用WHERE子句在这些记录中筛选出货名是“麻油”的记录,此时就可有count函数对两表的任何字段进行计数。

 

下图是命令及查询结果:

 

3-6

用查询设计器查询订货情况:

根据客户表中的客户编号,可在订单表中查出该客户的订单号,然后在订单明细表中查出所订货物的货号及数量,并通过货物表查出相应的货名和库存量。

选定菜单命令“文件|新建”,或单击“常用”工具栏的“新建”按钮,即显示“新建”对话框→文件类型选定为“查询”,单击“新建文件”按钮,即出现查询设计器和“打开”对话框→在“打开”对话框的列表框中双击“客户.DBF”→选定“添加表或视图”对话框的“其他”按钮,然后在“打开”对话框的“其他”按钮,然后在“打开”对话框的列表框中双击“订单.DBF”→在随即出现的“连接条件”对话框中选定“确定”按钮→类似地再通过“其他”按钮分别添加订单明细和货物表,然后关闭“添加表或视图”对话框,此时查询设计器的上窗格如图所示→在查询设计器的“字段”选项卡中,将“可用字段”列表框中的客户.公司名称、客户.联系人、订单.订单号、订单明细.货号、货物.货名、订单明细.数量及货物.库存量移到“选定字段”列表框→选定“排序依据”选项卡,将“选定字段”列表框中的“客户.公司名称”移到“排序条件”列表框→单击“常用”工具栏中的“运行”按钮运行查询。

 

查询设计器的设置如下图:

 

 

查询结果如下图:

 

实验(三)关联查询和数据库

{实验3-2数据库的基本操作}

 

电科081班级张辉

NO.:

080712110078

 

实验目的:

1.掌握数据库的建立和维护方法。

2.掌握设置数据库表字段级验证和记录级验证的方法。

3.为数据库表建立永久关系和设置参照完整性的方法。

 

实验要求:

1.创建“订货”数据库,要求包含订单、订单明细、货物、客户和员工5个表。

2.建立上述数据库表间的永久关系

3.以“货物”表为例设置数据库表属性。

4.练习设置数据库表之间的参照完整性。

 

实验准备:

1.阅读主教材3.6节。

2.准备好实验2-2创建的5个自由表。

 

实验步骤:

3-1

创建“订货”数据库:

执行如下命令创建并打开一个空的“订货”数据库

MODIFYDATABASE订货

然后选定“数据库”菜单的“添加表”命令,双击“打开”对话框中的“订单.DBF”,“订单”字段窗口就出现在数据库设计器窗口中。

用同样方法添加订单明细、货物、客户和员工表。

 

添加后的情况如下图所示:

 

3-2

在建立数据库表间的永久关系:

按表2.3.1为各个表创建主索引和普通索引。

然后,单击“客户”字段窗口中的“客户编号”主索引,按住鼠标左键,拖曳到“订单”窗口的“客户编号”索引位置,松开鼠标或即可画出表间关系先,表示客户表和订单表建立了永久关系。

用同样的方法建立员工表和订单表、订单表和订单明细表、货物表和订单明细表的永久关系。

索引清单

表名

索引关键字

索引标识名

索引类型

订单

订单号

订单号

主索引

客户编号

客户编号

普通索引

工号

工号

普通索引

客户

客户编号

客户编号

主索引

员工

工号

工号

主索引

订单明细

订单号

订单号

普通索引

货号

货号

普通索引

货物

货号

货号

主索引

 

 

3-3

设置“货物”表的字段级验证:

打开表设计器,选定“字段”选项卡→选定列表框中的“货号”字段→在“显示”区的“格式”文本框中输入格式符“!

”,使浏览窗口输入/输出时将字母都转为大写→在“输入掩码”文本框中输入掩码“A9999”,限制输入的货号必须第一位是字母,后4位是数字字符→在“字段有效性”区的“规则”文本框中输入表达式:

“LEN(ALLTRIM(货号))=5”,要求货号必须有5个字符,不能空缺→在“信息”文本框中输入提示信息“”请输入5位货号:

字母开头,后跟4位数字字符。

””,以便在出错时给出明确的提示信息→在“默认值”文本框输入默认值“A”,可提高输入速度,减少输入错误;同时,还提示货号的第一位应输入字母→在“字段注释”编辑框中输入该字段的说明文字。

 

编辑后的结果如下图:

 

3-4

设置“货物”表的记录级验证:

选定“表”选项卡→在“记录有效性”区的“规则”文本框中输入表达式“NOTLEN(ALLTRIM(货号))=0”,确保“货号”字段必须输入数据→在“信息”文本框中输入“”请输入货名!

””,以便在货名字段为空的情况下离开被编辑记录时给出提示→在“触发器”去的“删除触发器”文本框中输入表达式“LEFT(货号,1)#”S””,指定货号以S开头的记录下不能删除。

 

如下图:

 

3-5

练习设置“参照完整性”:

打开“订货”数据库,执行菜单命令“数据库|清理数据库”→选定“编辑参照完整性”命令,随即弹出如图2.3.8所示的“参照完整性生成器”窗口,此时已选定“更新规则”选项卡→单击表格第2行行首的按钮,选定货物表与订单明细表的链接→选定“级联”选项按钮,将货物表与订单明细表的更新规则设置为“级联”→同时打开货物表和订单明细表的窗口→将货物表的“货号”字段值A1052改为A1055→单击订单明细表的浏览窗口,使其成为当前窗口,可见其“货号”字段中的A1052也变成了A1055。

按上述步骤,再将货物表与订单明细表的更新规则设置为“限制”,将货物表的货号字段值A1055重新改为A1052,观察期结果。

提示触发器失败!

 

实验总结:

(1)索引与查询

表中的记录通常按输入的先后顺序排列,用LIST等命令显示表时将按此顺序输出。

若要以另一种顺序来输出记录,则要对表进行排序或索引。

排序与索引都能改变记录输出顺序,后者还能决定记录的存取顺序。

索引不改变记录的物理顺序,而是按某个索引关键字(或其表达式)来建立记录的逻辑顺序。

查询是按照指定条件在表中查找所需的记录。

一般有顺序查询和索引查询,在VisualFoxPro中还支持SQL型的查询命令,即SELECT-SQL命令。

(2)工作区和数据工作区

每次打开一个表,就把,以前从磁盘调入到内存的某一个工作区,以便为数据操作提供足够的内存操作空间。

而每个工作区只允许打开一个表,在同一工作区打开另一个表时打开的表就会自动关闭。

为了方便了解和配置当前的数据工作环境,VisualFoxPro提供一种称为数据工作期的窗口,用于打开或显示表、建立表间关系、设置工作区属性。

这种环境可保存为视图文件,以后需要同样环境时,只需直接打开这一文件,从而免去了重复设置环境的麻烦。

(3)表的关联

在查询多个表中的数据时,常采用关联和联接两种方法。

每个打开的表都有一个记录指针,用以指示当前记录。

所谓关联,就是使不同工作区的记录指针临时建立起一种联动关系,使一个表的记录指针移动时另一个表的记录指针能随之移动。

建立关联的两个表,总有一个是父表,一个是子表。

在执行涉及这两个表数据的命令时,父表记录指针的移动,会使子表记录指针自动移到满足关联条件的记录上。

按照字段表达式值相等来实现关联的原则,若出现父表有多条记录对应子表中一条记录的情况,便称这种关联为多对一关系。

若父表的一条记录对应子表中多条记录,这种关联称为一对多关系。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1