计算机二级VFP-管理系统中计算机应用实训_第1页
计算机二级VFP-管理系统中计算机应用实训_第2页
计算机二级VFP-管理系统中计算机应用实训_第3页
计算机二级VFP-管理系统中计算机应用实训_第4页
计算机二级VFP-管理系统中计算机应用实训_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

管理系统中计算机应用

实训

1.数据模型数据模型是用来描述现实世界中的事物及其联系的,它将数据库中的数据按照一定的结构组织起来,以能反映事物本身及事物之间的各种联系层次模型有仅有一个根节点无父节点,其他节点有且仅有一个父节点。学生学号姓名性别出生日期籍贯社会关系学籍称呼姓名工作单位专业班级课程名成绩个人简历学校入学时间毕业时间政治面貌个人鉴定网状模型

可以有多个节点但无父节点,一个节点可以有多个父节点。学生课程网状模型学号姓名性别出生日期籍贯课程号课程名学时学分社会关系学籍称呼姓名工作单位专业班级个人简历成绩学校入学时间毕业时间政治面貌个人鉴定课程号成绩关系模型操作对象和结果都是二维表学号系部姓名性别出生年月入学成绩籍贯050101电子朱明明女88

/06/20590湖北050102管理张晓男87/03/20580江苏050103信息王伟男87/09/01589江苏050104旅游李晓云女86/01/03587浙江2.1VF6.0的功能、特点2.2VF6.0安装和运行2.3

VF6.0的文件类型2.VisualFoxPro6.0简介2.1VF6.0的功能特点

自1989年推出VF1.0至今,VF已成为最优秀的数据库管理系统之一。目前最新版本是VF9.0,但VF6.0版本是使用最广泛的,也是最成熟的版本。特点:面向对象、可视化、容易使用、事件驱动2.2VF6.0安装和启动安装步骤:第一步:解压rar文件第二步:在解压的文件中找到setup.exe,双击打开第三步:按照安装向导的提示,输入序列号:11111111,单击下一步按钮。第四步:选择典型安装。下一步直到结束。标题栏状态栏命令区窗口工作区窗口菜单栏工具栏启动VF6.0方法:单击“开始”“

程序”“MicrosoftVisualFoxPro6.0”双击桌面上的VisualFoxPr图标双击VisualFoxPro的相关文件,如项目、表、表单等文件。

2.3VF6.0的文件类型扩展名文件类型扩展名文件类型.DBF表文件.HLP图形方式帮助文件.CDX、.IDX符合索引文件、单索引文件.PJX、.PJT项目、项目备注文件.FPT表备注文件.FRX、.FRT报表文件、报表备注文件.DBC数据库文件.LBX、.LBT标签文件、标签备注文件.DCT、.DCX数据库备注文件/索引文件.MNX、.MNT菜单文件、菜单备注文件.MEM内存变量文件.MPR、.MPX菜单程序文件、编译后的菜单程序文件.DLLWindows动态链接库文件.OCXOLE控件文件.ERR编译错误文件.QPR、.QPX查询程序文件、编译后的查询程序文件.ESLVFP支持的库文件.SCX、.SCT表单文件、表单备注文件.FLLFoxPro动态链接库文件.SPR、.SPX表单程序文件、编译后的表单程序文件.PRG解释执行的程序文件.TXT文本文件.FXP编译后的程序文件.VCX、.VCT可视类库文件、可视类库备注文件.APP生成的应用程序文件.VUEFoxPro2.X视图文件.EXE可执行程序文件.H头文件(VFP或C/C++程序需要包含的)任务1:安装visualfoxpro6.0启动visualfoxpro6.03.VF数据库、表的基本操作3.1项目和项目管理器3.2创建数据库3.3创建数据表FVP项目组织简图查询(.QPR)项目(.PJX)文档数据代码类其他自由表(.DBF)数据库(.DBC)库表(.DBF)备注(.FTP)索引(.IDX)3.1项目和项目管理器

项目是文件、数据、文档和VFP对象的集合。利用“项目管理器”可以很方便地组织和管理项目中的各类数据和对象用户在开发一个应用系统时,通常都是先从创建项目开始的项目文件扩展名为.PJX;项目备注的扩展名为.PJT项目(.PJX)文档数据代码类其他

创建项目的步骤:1.建立工作目录:组织和管理磁盘中的各类文件2.建立项目文件选择“文件/新建”菜单命令,在“新建”对话框中选择“项目”项3.打开项目文件选择“文件/打开”菜单命令,或按工具栏的“打开”按钮,在“打开”对话框中选择项目文件(*.PJX)

3.2创建数据库

数据库是表的集合,即在一个数据库中可以包含若干个通过关键字段相互关联的表。一个数据库文件(.DBC)中存储了所包含的表与表之间的联系,数据库建立后就会在指定文件夹生成三个文件,即数据库文件(扩展名为.DBC)、数据库的备注文件(扩展名为.DCT)、数据库的索引文件(扩展名为.DCX)数据库(.DBC)库表(.DBF)备注(.FTP)索引(.IDX)数据库的创建步骤:1.建立数据库项目管理器:“新建:数据库”2.在项目中添加数据库在项目管理器中按“添加”按钮,在“打开”对话框中选择需要添加的数据库文件.数据库的基本操作1.打开数据库项目管理器:选定要打开的数据库,按“打开”按钮2.关闭数据库

项目管理器:选定要关闭的数据库,按“关闭”按钮3.删除数据库

项目管理器:选定数据库后,按“移去”按钮,将从项目中移去选定的库文件;按“删除”按钮,则将选定的库文件从磁盘上删除3.3创建数据表1.数据表的类型⑴自由表:不属于任何数据库而独立存在的表⑵数据库表:属于某一数据库的表2.数据表的结构数据表形式上是二维表格,用来描述一个实体3.创建表的步骤:创建表结构和输入记录值创建表的步骤:追加记录记录浏览记录浏览有两种方式:编辑和浏览3.3创建数据表INSERTAPPENDAPPENDFROMBROWSEEDITCHANGEREPLACEDELETERECALLPACKZAPLISTDISPLAYBROWSELOCATECONTINUEFINDSEEKCOUNTSUMAVERAGETOTALCOPYLISTSTRUMODISTRUCOPYSTRUCREATEUSESQRTINDEX显示结构编辑结构复制结构统计数据数据表结构数据表记录新建表打开/关闭增加记录删除记录显示记录修改记录检索记录排序索引复制表创建如上表格

任务二:建立“教学管理”数据库,其中有“学生”、“课程”和“成绩”三个表

4.关系数据库标准语言SQLSQL是结构化查询语言功能包括数据查询、数据操纵、数据定义和数据控制。SQL语言使用方式灵活、语句简洁、功能齐全等特点,几乎所有的关系型数据库型系统都支持它。VisualFoxPro自身在安全方面的缺陷,使得它没有提供数据控制功能。SQL虽然使用广泛,但各种数据库在使用它时,在语法、功能方面均有差异。注意:书写时应该注意各个子句之间以空格分隔,子句内部各个项目之间使用逗号分隔。通常每个句子写一行,每行后用“;”结束4.1操作命令

创建数据库createdatabasedatabasename删除数据库deletedatabasedatabasename创建表createtable|dbf

tablename

删除表droptabletablename修改表结构altertabletabelname1add[colunmn]fieldname1fieldtype[(nfieldwidth[,nprecision])]【例1】在数据库“成绩管理”中创建数据库表XS。命令如下:OPENDATABASE成绩管理CREATETABLE学生(XHC(2),XMC(10),XBC(2),CSRQD,SFTYL,XBBHC(2))&&在成绩管理数据库中建立学生表,如图6.3所示。图6.3VF表中的数据类型字段类型代号字段类型代号字符型C浮点型F货币型Y整型I日期型D通用型G日期时间型T字符型C逻辑型L备注型M数值型N双精度型B【例2】为学生表添加NL字段,NL大于零。命令如下:ALTERTABLEXSADDNLN(2)CHECKNL>0ERROR”年龄必须大于零”命令执行后进入学生表的表设计器,如图6.5所示。图6.5【例3】将学生表添加到数据库“成绩管理”中。命令如下:OPENDATABASE成绩管理MODIFYDATABASEADDTABLE学生命令执行后数据库设计器如图6.8所示。图6.84.2SQL的数据操作功能4.2.1数据的插入4.2.2数据的更新4.2.3数据的删除SQL的数据操作功能只要是对已有表中数据的操作,主要包括记录的插入、更新和删除三大方面的操作。从本节开始将要使用“成绩管理”数据库中的表的数据,其具体数据如图6.9所示:图数据的插入

INSERTINTOTableName[(FieldName1[,FieldName2,…])]VALUES(eExpression1[,eExpression2,…])【命令说明】(1)TableName指所要插入记录的表名。(2)FieldName1[,FieldName2,…]指插入记录所要用到的字段。该参数可以不选,默认为对所有字段都需要插入值。(3)eExpression1[,eExpression2,…]指插入记录对应字段的值。(4)所插入字段的值必须和该对应的字段的数据要求一致,包括数据类型、数据长度的范围、数据小数位数。(5)所插入的记录字段的值必须和字段的个数保持一致,不能多也不能少,否则会出错。【例4】给课程表插入一条记录。命令如下:INSERTINTO课程(课程号,课程名称,学分)VALUES(’C6’,’桌面程序设计’,5)由于该命令是对表中所有字段都插入一个值,还可以使用下面命令进行操作:INSERTINTO课程VALUES(’C6’,’桌面程序设计’,5)命令执行结果如图6.10所示。图数据的更新【命令格式】UPDATETableNameSETColumnName1=eExpression1[,ColumnName2=eExpression2…])][WHEREConditon]【命令说明】(1)ColumnName1、ColumnName2…指对所要修改的字段名。(2)eExpression1、eExpression2…指对所要修改字段更新的数据值。可以是常量和表达式。(3)WHEREConditon

指对满足条件的数据进行更新。(4)所更新字段和新的值必须保持一致。【例5】把课程表中政治课程的课程名更改为“思想道德”,学分改为4。命令如下:UPDATE课程;SET课程名称=’思想道德’,学分=4;WHERE课程名称=’政治’命令执行结果如图6.12所示。

图数据的删除【命令格式】DELETEFROMTableName[WHEREConditon]【命令说明】(1)该命令是对指定表的记录进行逻辑删除,需要物理删除还要借助PACK命令。(2)WHEREConditon

指对满足条件的数据进行删除。【例6】删除课程表中课程号为“C6”课程记录。命令如下:DELETEFROM课程WHERE课程号=’C6’命令执行结果如图6.13所示。图中的黑色方块表示作了删除标记,但记录并没有真正删除,还保留在表中。如果要去掉删除标记和物理删除该条记录,可以参见第三章所讲解的表数据删除方法。

图6.134.4SQL的数据查询功能4.4.1数据库的简单查询4.4.2数据库的复杂查询

SQL的数据查询功能是数据库中最常用、最重要的数据操作,它可以在指定的表中查询满足条件的数据,该命令应用广泛,但格式比较复杂。4.4.1数据库的简单查询数据列查询条件查询简单计算查询分组查询查询结果排序查询结果保存【命令格式】SELECT[ALL|DISTINCE][Alias.][Select_Item1[ASColumn1_Name][,[Alias.][Select_Item2[ASColumn2_Name]…]FROM[DatabaseName!]Table[[AS]Local_Alias]【命令说明】(1)ALL|DISTINCE:指查询表中所有数据或去掉重复的记录。(2)[Alias.][Select_Item1[ASColumn1_Name]:从指定的表中(可以使用别名)引用相关的字段或着表达式,ASColumn1_Name对查询结果的列名重新命名。(3)FROM[DatabaseName!]Table[[AS]Local_Alias]:指从指定的表(可以是数据库中的表)查询数据,这里可以给表指定一个别名,在所有字句中都可以应用。1.数据列查询(4)该命令是从指定表中查询表中的所有或者部分列的数据。【例7】查询学生表中所有数据。命令如下:SELECT*FROM学生&&这里*代表所有字段

结果如图6.14所示。【例8】查询学生表的学号和姓名。命令如下:SELECT学号AS学生的编号,姓名ASXMFROM学生结果如图6.15所示。图6.14图6.15【例9】查询选课表中有选课的学生的学号。命令如下:SELECTDISTINCT学号FROM选课结果如图6.16所示。

图6.16【主要命令格式】SELECT…FROM…WHERECondition【命令说明】该命令是查询满足条件的数据,Condition为条件表达式。具体应用如下:(1)使用关系和逻辑表达式的条件查询。【例10】查询成绩不及格的情况。命令如下:SELECT*FROM选课

WHERE成绩<60结果如图所示。2.条件查询(2)使用范围查询BETWEEN…AND…或者NOTBETWEEN…AND…。【例11】查询成绩在80到100之间的情况。命令如下:SELECT*FROM选课

WHERE成绩

BETWEEN80AND100结果如图6.18所示。图6.18(3)使用字符匹配查询LIKE…或NOTLIKE…。%:代表任意长度的字符串。_:代表任意单个字符。【例12】查询所以姓王的学生情况。命令如下:SELECT*FROM学生

WHERE姓名

LIKE'王%'结果如图所示。(4)空值查询ISNULL或ISNOTNULL。【例13】查询学生表系部编号不为NULL的情况。命令如下:SELECT*FROM学生WHERE系部编号ISNOTNULL结果如图所示。

(5)确定集合查询IN或NOTIN。【例14】查询系部编号为”2”或”3”的学生情况。命令如下:SELECT*FROM学生WHERE系部编号IN('2','3')结果如图所示。【主要命令格式】SELECT...FROM…[WHERECondition]【命令说明】(1)SELECT短语后主要书写计算表达式和函数。(2)计算检索的函数主要有:COUNT(DISTINCT|ALL)*)——统计记录个数。SUM(DISTINCT|ALL)<ColumnName>)——计算一数值列的总和。AVG(DISTINCT|ALL)<ColumnName>)——计算一数值列的平均值。MAX(DISTINCT|ALL)<ColumnName>)——求一列的最大值。MIN(DISTINCT|ALL)<ColumnName>)——求一列的最小值。3.简单计算查询【例15】统计学生表中的记录个数。命令如下:SELECTCOUNT(*)AS学生人数

FROM学生【例16】计算选课表的成绩总和、平均分、最大分、最小分。命令如下:SELECTSUM(成绩)AS总和,AVG(成绩)AS平均分,MAX(成绩)AS最大分,MIN(成绩)AS最小分

FROM选课【主要命令格式】SELECT…FROM….GROUPBYGroupColumn[,GroupColumn...][HAVINGFilterCondition]【命令说明】(1)GroupColumn是指分组的标志列。(2)HAVINGFilterCondition是指限制分组的条件。【例6-27】分别统计学生表中的男女生人数。命令如下:SELECT性别,COUNT(*)AS人数

FROM学生GROUPBY性别结果如图6.24所示。4.分组查询【例6-28】统计成绩有两门以上在70分的情况。命令如下:SELECT学号,COUNT(课程号)AS课程门数

FROM选课;WHERE成绩>=70;GROUPBY学号

HAVINGCOUNT(*)>=2结果如图6.25所示。图6.24图6.25【主要命令格式】、SELECT[TOPnExpr[PERCENT]]…FROM….ORDERBYOrder_Item[ASC|DESC][,Order_Item[ASC|DESC]...]【命令说明】(1)Order_Item:指的选定的对查询结果排序的列。(2)ASC|DESC:指的是排序的顺序。ASC指升序,默认为升序。DESC指的是降序。(3)TOPnExpr[PERCENT]:指查询结果显示特定数目的记录。TOPnExpr表示现在最前面的N条记录。TOPnExprPERCENT表示显示查询结果记录数目的百分比。这里必须和排序结合使用,不能单独使用。5.查询结果排序【例6-29】对学生表数据按出生日期的升序降序排序。命令如下:SELECT*FROM学生;ORDERBY出生日期

DESC&&结果如图6.26所示。【例6-30】查询课程号为“C1”,成绩最高的前三名情况。命令如下:SELECT*TOP3FROM选课

WHERE课程号=’C1’;ORDERBY成绩

DESC&&结果如图6.27所示。

图6.26图6.27【主要命令格式】SELECT…FROM….INTOTABLE[|CURSOR]Destination|TOFILEFileName[ADDITIVE]|TOPRINTER[PROMPT]|TOSCREEN]【命令说明】(1)INTOTABLE[|CURSOR]Destination:指查询结果保存到新表。将结果永久保存在表中则使用INTOTABLE;如果接查询结果保存到临时表中则使用INTOCURSOR,临时表的不永久保存,关闭后不在存在。(2)TOFILEFileName:[ADDITIVE]指查询结果保存到文本文件。(3)TOPRINTER[PROMPT]:指查询结果输出到打印机。(4)TOSCREEN:指查询结果到屏幕。6.查询结果保存【例6-31】查询成绩不及格的情况,将结果保存到表BJGQK。命令如下:SELECT*FROM选课

;WHERE成绩<60;INTOTABLEBJGQKSELECT*FROMBJGQK表BJGQK的记录数据如图6.28所示。图6.284.4.2数据的复杂查询联接查询子查询1)自然联接查询自然联接查询也叫等值联接查询或者内联接查询,一般用于查询结果须从两个表或两个以上表中去获取。【一般命令格式】SELECT…FROMTable1INNERJOINTable2ONTable1.Column=Table2.Column…或者SELECT…FROMTable1,Table2…

WHERETable1.Column=Table2.Column[AND…]…1.联接查询【命令说明】(1)命令格式中我们一般使用第二种。指的是从多个表中查询满足条件的数据。要求多个表中互相之间有联系保证有同名字段。(2)Table1.Column=Table2.Column指两个有联系的表中具有的相同字段名。这是建立联接查询的基本条件。(3)该命令给多表建立连接后,可以和前面所有讲的简单查询一起结合使用,查询满足条件的数据。【例6-32】查询学生李小明所选课的情况。命令如下:SELECTA.学号,姓名,课程名称,成绩

FROM学生

A,选课

B,课程

C;WHEREA.学号=B.学号

ANDC.课程号=B.课程号

AND姓名=”李小明”结果如图6.29所示。【例6-33】统计每门课程选课学生的人数。命令如下:SELECT课程.课程号,课程名称,COUNT(学号)AS学生人数FROM课程,选课;WHERE课程.课程号=选课.课程号;GROUPBY1结果如图6.30所示。命令中的1指的是查询结果所包含的第一列,也就是课程.课程号。图6.29图6.302.子查询【一般命令格式】SELECT…FROM…WHERE…(SELECT…FROM…)【命令说明】(1)子查询适合用于查询结果必须先从一个查询中来得来。(2)子查询可以使用IN、NOTIN、关系运算符等。【例6-37】查询没有选课的学生情况。命令如下:SELECT*FROM学生

WHERE学号

NOTIN;(SELECTDIST学号

FROM选课)结果如图6.34所示。【例6-38】统计学生表中的记录个数。命令如下:SELECT姓名

FROM学生

WHERE学号

IN;(SELECT学号

FROM选课

GROUPBY1HAVINGCOUNT(课程号)>4)结果如图6.35所示。图6.34图6.35本章实训实验目的:掌握VisualFoxPro6.0的安装与启动掌握VisualFoxPro6.0的界面操作(项目、数据库、数据表)熟练掌握SQL数据库表的增、删、改的命令使用根据下面提供的数据,用SQL完成以下的操作。1.创建数据库TSGL,并打开。建立程序61.prg,并输入以下命令:createdatabasetsglopendatabasetsgl2.在数据库TSGL中创建以下表。表的结构如下:TS(SSHC(10),SMC(30),ZZC(6),TSDJHC(10),CBSC(10),JGN(6.2))JYZ(JSZHC(5),XMC(10),XBMC(8),BJC(4))JYDJ(JSZHC(5),TSDJHC(6),JSRQD)建立程序62.prg,并输入以下命令:createtablets(sshc(2),smc(30),zzc(6),tsdjhc(10),cbsc(10),jgn(6.2))createtablejyz(jszhc(5)primarykey,xmc(10),xbmc(8),bjc(4))createtablejydj(jszhc(5),tsdjhc(6),jsrqd)实验内容:3.给数据库TSGL中所创建表输入数据,具体数据如下:表TS的数据如下表:sshsmzztsdjhcbsjgTP311.138VisualFoxPro程序设计教程匡松T00101川大29TP311.138VisualFoxPro程序设计教程匡松T00102川大29TP311.138数据库应用基础周察金T00201高等20.90TP311.138SQLServer2000实例教程杨学全T00301电子25C931.6管理信息系统李永平C00101科学18表JYZ的数据如下表:jszhxmxbmbj01101扬扬电子系01-101201田田计算机系02-101202同同计算机系02-201102天天电子系01-2表jydj的数据如下表:jszhtsdjhjsrq01201C002012005-03-2001101T001012005-03-1601202T002012005-04-2101102T002012005-03-2001101T002012005-03-1601102T003012005-03-0501101T003012005-04-1601202T001012005-03-0601201T002012005-03-20建立程序63.prg,并输入以下命令:opendatabasetsgl*给表TS插入数据*insertintotsvalues("TP311.138","VisualFoxPro程序设计教程","匡松","T00101","川大",29)insertintotsvalues("TP311.138","VisualFoxPro程序设计教程","匡松","T00102","川大",29)insertintotsvalues("TP311.138","数据库应用基础","周察金","T00201","高等",20.90)insertintotsvalues("TP311.138","SQLServer2000实例教程","杨学全","T00301","电子",25)insertintotsvalues("C931.6","管理信息系统","李永平","C00101","科学",18)*代码接下页*给表JYZ插入数据*insertintojyzvalues("01001","扬扬","电子系","01-1")insertintojyzvalues("01201","田田","计算机系","02-1")insertintojyzvalues("0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论