《数据库程序设计教案.ppt》由会员分享,可在线阅读,更多相关《数据库程序设计教案.ppt(105页珍藏版)》请在三一办公上搜索。
1、2023/11/14,1,数据库程序设计教案,刘丽丽,2,基本内容,第一章 数据库基础第二章 数据库与数据表第三章 查询与视图第四章 结构化查询语言第五章 程序设计基础第六章 表单第七章 报表和标签第八章 菜单第九章 系统的生成,3,第一章 数据库基础,基本操作Visual FoxPro 语言基础变量,4,1.1 基本操作,1系统的启动从程序菜单启动;在资源管理器中双击VFP6.EXE文件;桌面上双击VFP6.EXE文件;在运行对话框中运行VFP6.EXE程序。2系统主窗口标题栏、菜单栏、工具栏、编辑区、命令窗口、状态栏。3系统环境的配置菜单方式:工具选项对话框;命令方式:SET 命令。例:s
2、et clock on;4系统退出 键盘操作:按Alt+F4组合键(关闭当前窗口);Ctrl+Alt+Del组合键-选择VF程序-单击结束任务;命令窗口中执行“quit”命令鼠标操作:文件-退出;单击窗口右端“”按钮;双击窗口左端的Vf图标;单击窗口标题栏左端的图标-单击“关闭”选项。,5,1.2 Visual FoxPro 语言基础,1.数据类型字符型C:用定界符双引号、单引号、或方括号定界。(例:X1=“abide”,X1=abide,X1=abide)数值型N:描述数量的数据类型,可进行运算,例:x2=50.678浮点型F:与数值型数据完全等价,只是在存储形式上采取浮点格式。双精度型D:
3、是更高精度的数值型数据,只用于数据表中字段类型的定义,采用固定长度浮点格式存储。整型I:不包含小数点部分的数值型数据。日期型D:表示日期的数据,8位,mm/dd/yyyy:默认格式例:a=2005-03-21日期时间型T:mm/dd/yyyy hh:mm:ss 例:b=2007-03-26 05:28:14逻辑型L:.T./.F.备注型M:存放较长的字符型数据类型。通用型G:存储OLE对象。注:显示变量的数据类型type(变量),数据类型 表达式基本命令文件类型,6,2.表达式1)数值表达式数值操作符按优先顺序依次为:括号:();乘方:*或;乘:*;除:/;模运算:%;加:+;减:-2)字符表
4、达式:连接两个字符型数据;-:连接两个字符型数据,并把第一个字符型数据的尾部空格移到第二个字符型数据后面;$:测试第二个字符串是否包含第一个字符串。3)日期表达式:一个日期加上天数;-:一个日期减去天数或两个日期相减。4)关系表达式小于:;等于(第一个字符串是否包含第二个字符串):不等于:,#,!=;小于等于:=;字符串精确等于:=5)逻辑表达式与:AND;或:OR;非:NOT,数据类型 表达式基本命令文件类型,7,3.基本命令 1)设置默认路径(拷贝)格式:SET DEFAULT TO 路径注:无路径选项,取消默认路径的设置2)显示格式:?|?AT 列数 FONT“字体名”,字号 STYLE
5、“风格符”注:?:先换行再输出结果;?:不换行就输出结果。例:?“清华大学出版社”FONT“隶书”,40 STYLE“B”3)赋值命令格式1:STORE TO 格式2:内存变量名=例:STORE 10 TO X1,X2,X3 NAME=“张力”注:赋值时定义变量类型。4)显示内存变量格式:DISPLAY|LIST MEMORY LIKE 通配字符 TO PRINTER PROMPT|TO FILE 文件名5)清除格式:CLEAR ALL|WINDOWS|EVENTS注:不含任何选项,清除主窗口;ALL:释放所有内存变量、数组及自定义菜单和窗口,关闭所有的表及相关索引、格式、备注文件,不释放系统
6、内存变量,自动选择1工作区为当前工作区;MEMORY:释放所有内存变量、数组,不释放系统内存变量;WINDOWS:释放所有自定义窗口;EVENTS:终止由 READ EVENTS 启动的事件处理状态。,数据类型 表达式基本命令文件类型,8,4)文件类型,数据类型 表达式基本命令文件类型,9,4)文件类型,数据类型 表达式基本命令文件类型,10,1.3 变量,常量:操作过程中值保持不变。变量:操作过程中值可以变化(内存变量、数组变量、字段变量、系统变量)1.内存变量(store、:赋值的变量)显示:DISPLAY|LIST MEMORY LIKE 通配符 TO PRINTERPROMPT|TO
7、FILE 文件名释放1(释放所有内存变量):clear all释放2(释放指定内存变量):release|all like|except 2.数组变量定义:declare 数组名1(m1,n1),数组名2(m2,n2)注:定义数组后,系统自动为每一个数组赋初值.F.;为整个数组赋同一个值,可赋给数组名;为单个元素赋值,需指定下标。3.字段变量4.系统变量:VF本身内建,不用定义,11,第二章 数据库和数据表,数据库与数据表项目文件的操作数据表的基本操作数据库表的属性设置数据表的维护设置数据表的索引数据表的关联多表操作,12,2.1 数据库与数据表,1.自由表(.DBF:游离在数据库之外的表)的
8、创建:菜单:文件-新建-表-新建文件-命名保存-设计;字段名:不超过10个字符(5个汉字)输入、插入、删除、改变位置、索引(索引文件不可以脱离表,可以随表的打开而打开,并随表的关闭而关闭)、Null(空值,允许该字段的值为空,ctrl+0输入NULL值)。命令:CREATE 向导:文件-新建-表-向导。3.数据表(.DBF:保存在数据库中的表)的建立注:需先建立数据库文件;字段名:不超过128个字符操作:数据库菜单;数据库工具栏;鼠标右键 注:自由表与数据表的转换,自由表 数据库数据表,13,2.数据库(.DBC:用来组织和管理数据表和视图)1)创建菜单:文件-新建-数据库-新建文件-命名保存
9、-设计;命令方式:CREATE DATABASE 文件名|?2)打开:菜单:所有文件都可以通过菜单“文件-打开”命令打开。命令:OPEN DATABASE 文件名|?EXCLUSIVE|SHARED NOUPDATE注:EXCLUSIVE(独占方式打开)|SHARED(共享方式打开)NOUPDATE:只读方式打开。3)删除:DELETE DATABASE DELETETABLES RECYCLE 注:DELETETABLES:删除数据库的同时删除其中的表、视图等。RECYCLE:把删除的文件放入回收站中。,自由表 数据库数据表,14,2.2 项目文件的操作,1.创建(.PJX)菜单方式:新建-
10、项目-新建文件/向导命令方式:格式1:MODIFY PROJECT 格式2:CREATE PROJECT 注:MODIFY命令也可以打开已有的项目文件2.打开(鼠标方式):文件-打开3.关闭鼠标方式:文件-关闭;单击窗口右上角“关闭”按钮;单击窗口左上角控制图标;标题栏右击鼠标-关闭。命令方式:格式:CLOSE ALL DATABASE|PROCEDURE|TABLES 注:该命令可关闭所有工作区中打开的数据库、数据表和索引文件等,并选定1工作区,但不关闭由SET PRINT命令打开的文件,及命令窗口、调试窗口、帮助和追踪窗口。4.选项卡的操作(P31):选定、折叠、展开、拆分、移动、放大、缩
11、小、形成工具栏。5.添加数据库、数据表,15,作业,建立一个文件名为“student”的项目文件,此项目中包括一个文件名为“学生管理”的数据库文件,在“学生管理”数据库中包含四个数据表,分别是:基本情况表、学习成绩表、个人表现表、社会关系表,这些表的结构与记录见06级数学系VF课本P42中图36所示。,16,2.3 数据表的基本操作,1.数据表的打开与关闭格式:use 数据表名 in 工作区 exclusive shared alias 别名注:不带任何选项,关闭当前工作区中数据表;2.浏览与编辑:菜单方式:打开数据表显示/浏览;命令方式:打开数据表 browse(browse last)注:
12、拖动分隔符,成两窗口,浏览/编辑。记录的显示:display fieldlist scope for 条件1 while 条件2 off to printer|to file 文件名scope:all、next n、record n、restoff:不显示记录号display all=list3.追加数据记录追加一条记录:打开数据表browse 表/追加新记录;连续追加:打开数据表browse 显示/追加方式(或 单击下面的空行)成组追加:表/追加记录(APPEND FROM 表名);,select():选择工作区recno():求当前记录号,打开关闭、浏览编辑、追加记录、记录指针的定位记录的
13、逻辑、物理删除及恢复 记录编辑修改,字段值的替换 记录的筛选,17,4.记录指针的定位鼠标定位:移动鼠标单击;菜单定位:表转到记录;命令定位:指针绝对移动命令:go/goto 指针相对移动命令:skip 数值表达式(注:skip=skip+1)5.记录的逻辑删除:只作删除标记,不真正删除。鼠标操作:单击浏览窗口的第二列注:工具选项数据(选中“忽略已删除记录”)set delete on:系统不再显示和处理逻辑删除的记录。set delete off:系统显示和处理逻辑删除的记录。菜单方式:表删除记录注:for:所有满足条件的记录;while:从当前记录开始所有满足条件的记录,遇到不满足条件的记
14、录停止。命令:delete for while 注:scope-all,next n,rest,record n.,打开关闭、浏览编辑、追加记录、记录指针的定位记录的逻辑、物理删除及恢复 记录编辑修改,字段值的替换 记录的筛选,18,6.记录的物理删除:从数据表中彻底删除。菜单方式:表彻底删除(删除所有带删除标记的记录)命令方式:1)PACK:删除所有带删除标记的记录 2)ZAP:删除当前表中的所有记录(不论是否有删除标记)7.记录的恢复(RECALL):恢复做逻辑删除的记录。请参照“记录的逻辑删除自学”8.记录的编辑修改一般记录:单击字段内容修改;备注型:双击鼠标添加修改;通用型:双击鼠标编
15、辑菜单/插入对象。9.字段值的替换菜单方式:表替换字段命令方式:replace with additive with additive for while 注:若替换备注型字段值,“additive”可使替换值追加在原值后面,否则新值替换原值。,打开关闭、浏览编辑、追加记录、记录指针的定位记录的逻辑、物理删除及恢复 记录编辑修改,字段值的替换 记录的筛选,19,10.记录的筛选:选择出符合条件的记录菜单操作:表属性命令操作格式1:set filter to 注:设置记录的筛选,不带任何选项取消筛选;格式2:set fields to,注:设置字段的筛选,set fields to all 取消
16、筛选;格式3:set fields on|off:打开或关闭字段的筛选(默认关闭)。,打开关闭、浏览编辑、追加记录、记录指针的定位记录的逻辑、物理删除及恢复 记录编辑修改,字段值的替换 记录的筛选,20,记录级别的属性(表设计器表):在一条记录的各字段之间进行限制表名属性:可另起一个长表名,当表出现在项目与数据库、查询、视图等设计器窗口时,可显示该长表名,便于对数据表内容的了解;记录有效性属性:规则:是一个关系或逻辑表达式,已经存在的或以后要输入记录必须符合此表达式;信息:输入的记录不满足此表达式时的提示信息。触发器属性删除触发器:控制删除操作,表达式结果为.t.,可删除;为.F.,不可删除,
17、出现提示信息;插入触发器:控制插入操作,表达式结果为.t.,可插入;为.F.,不可插入,出现提示信息;更新控制:控制编辑修改操作,表达式结果为.t.,可修改;为.F.,不可修改,出现提示信息;,2.4 数据库表的属性设置-记录级别的属性,21,2.5 数据表的维护,修改数据表结构菜单:打开数据表显示/表设计器;命令:打开数据表modify structure数据表结构的复制(只复制结构没有记录)命令:copy structure to fields with cdxwith cdx:为新表建立与原表相同的结构复合索引文件。数据表的复制(既有结构又有记录)命令:copy to fields wi
18、th cdx for while,22,2.6 设置数据表的索引,排序:使原数据表中的记录按升序(或降序)全部重新排列,并生产一个新的数据表文件。索引:以升序(或降序)的方式改变原数据表中记录的显示顺序,并生成索引文件,不可脱离原数据表。(可以为一个数据表建立多个不同的索引文件)1)索引关键字的类型主索引(关键字段的内容不可重复,数据表,一数一主索引):唯一确定数据表中记录的排列顺序。候选索引(关键字段的内容不可重复,数据表|自由表,一表多候选索引):唯一确定数据表中记录的排列顺序。普通索引(关键字段的内容可重复,数据表|自由表,默认)唯一索引(关键字段的内容可重复,重复只保留第一条,和低版本
19、兼容),索引简述索引的操作,23,1)创建索引文件创建简单索引创建复杂索引2)打开:随着数据表的打开而打开3)关闭:随着数据表文件的关闭,所有索引文件自动关闭。4)确定主控索引:数据表记录以某个索引进行排序,则这个索引就称为该数据表的主控索引。只打开一个索引,则此索引为主控索引;一个接一个打开,最后打开的索引为主控索引;一次打开多个索引,排在最前面的为主控索引;注:索引文件打开后,其中的索引标识(Tag)不起作用,数据表记录顺序保持原始顺序,必须执行确定主控索引的操作后,数据表记录的排列顺序才会跟着变化。命令方式1:set order to TAG ASCENDING|DESENDING命令方
20、式2:USE ORDER TAG ASCENDING|DESENDING菜单方式:表属性索引顺序5)删除索引:菜单方式:表设计器索引;命令方式:DELETE TAG ALL|,;,索引简述索引的操作,24,2.7 数据表的关联,1)数据表之间联系的分类一对一(1:1)联系:当前表中的一条记录可以唯一对应另一个表中的一条记录;一对多(1:n)联系:当前表中的一条记录可以对应另一个表中的多条记录;多对多(m:n)联系:当前表中的多条记录可以对应另一个表中的多条记录。注:在数据表之间可以建立“永久关联”和“临时关联”两种连接。永久关联:被保存在数据库中的数据表间的联系,随数据库长期保存,随数据库的打
21、开而打开,关闭而关闭。临时关联:使用时临时建立的表间联系,数据表关闭则临时关联消失。父表:创建数据表之间的关联时,当前所使用的数据表;子表:创建数据表之间的关联时,被关联的表。创建关联的必要条件:1)两个要建立关联的数据表中存在同类字段;2)每个数据表事先要以该“同类字段”建立了索引。,关联简述关联操作临时关联,25,1)建立表间的一对一关联注:两个表都具有同一类属性的字段;父表和子表分别以该字段作过主索引或候选索引。操作:在数据库设计器中建立。2)建立表间的一对多关联注:父表作主索引,子表作普通索引。操作:在数据库设计器中建立。3)调整或删除关联删除关联:选中关联线按Del键(或右键/删除关
22、系)编辑关联:选中关联线右键/编辑关系(或数据库/编辑关系)4)建立数据表间的参照完整性操作1:选中关联线右键编辑关系/参照完整性;操作2:选中关联线右键编辑参照完整性;操作3:数据库菜单编辑参照完整性。,关联简述 关联的操作 临时关联,26,临时关联:可在数据表之间建立,也可在自由表之间建立注:父表已作主索引(或候选索引),子表已作普通索引。操作:菜单方式:打开数据工作期选定父表单击“关系”选定子表及关联字段选定父表关联字段注:(1)浏览父表的记录,会自动关联子表的相应记录;(2)关闭“数据工作期”窗口不会影响两个表的关联;(3)关闭数据表后,关联自动消失。命令方式:set relation
23、 to into|注:(1)缺省选项取消当前的临时关联;(2)是主(当前)表的连接索引关键字;(3)用|指定连接(子)表。(4)父表为当前表,两表都设置了主控索引,关联简述关联的操作临时关联,27,2.8 多表操作,VF允许最多同时打开32 767 个数据表,每次操作只能选中其中一个。1.工作区解释:工作区是一个编号区域,指内存中的一块存储区域,用区号和别名来标识。区号:1(或0)32 767;区名:AJ(10);后面:w11w32767命令:select 注:每个工作区只能打开一个数据表,系统启动后,默认一号工作区为当前工作区。别名:某个工作区中数据表文件的别名2.数据表别名:系统在内存中引
24、用和识别数据表的标识。每当数据表打开时,系统要求必须为数据表指定一个唯一的别名。数据表的别名是临时性的,关闭数据表时会自动释放。下次打开数据表时,可为它指定完全不同的另一个别名。格式:use alias 注:省略选项,系统以原文件名作为别名。,工作区、别名数据工作期、多表操作,28,数据工作期:是一个独立的工作状态和操作环境,包含了自己的一组工作区及打开的数据表、索引及表间的关联,并为表单、报表等提供了动态的操作环境。打开:窗口/数据工作期(set view on);关闭:文件/关闭(set view off);多表的打开与关闭利用数据工作期 use in 区号|区名 一个数据表在多个工作区打
25、开利用数据工作区命令:use alias again,工作区、别名数据工作期、多表操作,29,第三章 查询与视图,查询文件视图操作,30,3.1 查询文件,用查询设计器创建查询(.QPR):用设计器创建查询,原理也是使用SQLSelect创建查询,但只能实现相对简单的查询,没有Select语句功能强大。打开查询设计器的方法:文件新建/查询/新建文件;项目管理器:数据查询新建;查询文件的创建:创建单表查询:操作:打开查询设计器添加一个表;创建多表查询:操作:打开查询设计器添加多个表运行查询文件项目管理器:选定查询文件运行按钮;查询设计器中:查询菜单运行查询;查询设计器中:工具栏运行按钮;查询设计
26、器中:CtrlQ快捷键;查询设计器中:右击鼠标运行查询;程序菜单运行;命令窗口:DO 查询文件名.qpr(必须写扩展名)。,创建与运行查询设计器选项卡 查询输出方式,31,查询设计器的选项卡1)字段卡:选定字段、字段表达式(对字段做运算后输出);2)联接卡:设置联接类型及联接条件;3)筛选卡:选取符合条件的记录;4)排序依据卡:对记录进行排序;5)分组依据卡:对同一字段值的内容进行统计;6)杂项卡:设置显示的记录数等。查询输出方式:1)浏览:browse浏览窗口;2)临时表:一旦退出系统,临时表消失;查看内容:查询菜单运行查询显示菜单浏览。3)表:数据表;查看内容:同上。,创建与运行查询设计器
27、选项卡 查询输出方式,32,创建与运行查询设计器选项卡 查询输出方式,4)图形:Excel图形;如不可用,则执行命令:_GENGRAPH=C:Program FilesMicrosoft Visual StudioVfp98WizardsWZGRAPH.APP查看内容:运行查询。5)屏幕:只屏幕;屏幕、打印机;屏幕、文本文件。屏幕之间暂停:记录很多时,满一屏暂停,任意键继续,Esc键终止。6)报表:报表格式文件页面预览:可在预览窗口观察输出结果;活动控件台:可将查询结果送到当前活动窗口;报告之前释放页:在打印输出前,先空走一页纸。查看内容:查询菜单运行查询;7)标签:标签格式文件查看内容:查询
28、菜单运行查询;,33,3.2 视图操作,视图(只能保存在数据库中):本地视图、远程视图(可更新表)。单表视图:由一个数据表生成,一般只包含数据表的部分字段。注:视图是依托数据库而存在,创建视图应首先打开相应的数据库。1)用视图设计器创建文件新建/视图/新建文件;数据库新建本地视图;项目管理器中选定“本地视图”新建。2)用视图向导创建:在“新建本地视图”窗口中选择“视图向导”。3)用命令创建格式:CREATE SQL VIEW AS SELECT 字段列表FROM WHERE 注:忽略下划线中的选项,将打开视图设计器。浏览视图中的内容:select*from 视图文件名,创建单表视图创建多表视图
29、,34,多表视图:由两个以上数据表或视图建立的新视图。1)使用设计器创建用创建单表视图的方法打开“视图设计器”。2)使用命令创建同“创建单表视图”的命令格式,显示字段如相同需用文件名加以标识。查看视图程序(需先打开视图设计器)查询查看SQL选项;快捷菜单“查看SQL选项”;视图设计器工具栏查看SQL选项视图设计器祥解更新:钥匙设置关键字段(如希望视图中数据的修改影响到源表,必须设定);铅笔设置可更新字段(只在视图中);发送SQL:使更新影响到源表;SQL WHERE:多用户操作环境:使用更新:SQL delete然后insert删除后插入,SQL update:直接修改。,创建单表视图创建多表
30、视图,35,第四章 结构化查询语言(),SQL既可在数据库中使用,也可在C,FORTRAN等高级语言中使用。SQL命令动词:数据查询:SELECT()数据定义:CREATE,DROP,ALTER数据操纵:INSERT,UPDATE,DELETE数据控制:GRANT,REVOKE,36,1、基本格式:select ALL|DISTINCT 别名.as 列名|*from 数据库名!知识点:DISTINCT:结果不包含完全相同的记录;*:代表所有字段。在字段表达式中可以出现集函数,如:sum(字段),avg(字段),count(字段),min(字段),max(字段)例1:select 学习成绩.高数
31、+学习成绩.哲学 as 总分,高数,哲学 from 学习成绩2、select where 例2:select 女生总分:,sum(体育),人数:,count(*)from 学习成绩,;基本情况 where 学习成绩.学号=基本情况.学号 and 基本情况.性别=女知识点:and,or,not;字段 between 值1 and 值2;字段 not between 值1 and 值2;字段 in(值1,值2,);字段 not in(值1,值2,);字段 like 通配符(:任意字符串,_:任何一个字符)字段 is NULL(字段值是空值),基本查询联接查询嵌套查询合并查询,4.1 SQL查询,3
32、7,3、排序:selectorder by 字段asc|desc,TOP PERCENT 注:TOP PERCENT应和order by联用。例:select*from 学习成绩 order by 学号 top 34、分组:selectgroup by 分组字段 having 注:having 应和group by联用,如未和其联用,则和where的功能相同。例:select 社会关系.学号,qsrs:,count(*)from 社会关系;having 学号 ADDITIVE:某个文本文件 注:ADDITIVE 将查询结果追加到文本文件后面。into cursor:只读临时数据表文件 into
33、 dbf|table:数据表文件 into array:二维数组,基本查询联接查询嵌套查询合并查询,38,联接查询:selectfrom 表1 inner join 表2 on 1)两个表之间的连接 内部连接:只包含满足条件的记录;格式:selectfrom 表1 inner join 表2 on 等价于:select from 表1,表2 where 右连接:包含满足条件的记录,右端表全部记录;格式:selectfrom 表1 right outer join 表2 on 注:outer可以不用,强调是一个外连接。左连接:包含满足条件的记录,左端表全部记录;格式:selectfrom 表1
34、left outer join 表2 on 完全连接:包含满足条件的记录,左右表中所有记录 格式:selectfrom 表1 full outer join 表2 on 2)单表自身连接格式:selectfrom 表 别名1,表 别名2 where 例:select xxcj1.高数,xxcj2.哲学;from 学习成绩 xxcj1,学习成绩 xxcj2;where xxcj1.学号=xxcj2.学号 and xxcj1.高数xxcj2.哲学,right|left|full,基本查询联接查询嵌套查询合并查询,39,嵌套查询格式:selectfromwhere(selectfromwhere)比
35、较符:=(左边是否包含右边)、(!=,#)、=、=、=(完全相等)in:父字段值在子字段值里any:以子表达式最小值决定主表达式结果;all:以子表达式最大值决定主表达式结果;not exists:以子表达式值作为主表达式的条件例:select*from 基本情况 where exists(select*from 学习成绩 where 学号=基本情况.学号)合并查询(格式:select union select)例:select*from 个人表现 where 学号=9901101 union select*from 个人表现 where 学号=9901103注:两个表的输出字段的类型和宽度必
36、须一致。,父查询 子查询如增加排序控制,则只能放在最外层结构,基本查询联接查询嵌套查询合并查询,40,1、表的定义格式:create table|dbf free(,),)null not null check(字段有效性规则)error“错误信息”default 字段初值 primary key unique,check(表的有效性规则)error“错误信息”说明:free:表示所创建的表是自由表,不添加到数据库中。如数据库没打开,所创建的表也是自由表。null|not null:表示允许或不允许该字段为空值。check(字段有效性规则)error“错误信息”:指定字段的有效性规则,当增加一
37、条空白记录时,就进行有效性检查。error“错误信息”:指定字段有效性检查出现错误时的错误提示信息。default 字段初值:当增加一条空白记录时,指定字段的默认值。primary key:指定该字段为主索引字段,索引标识名称与字段名称相同。unique:创建与字段同名的候选索引标识。check(表的有效性规则)error“错误信息”:指定表的有效性规则,C(字符),D(日期),T(日期时间),N(数),F(浮数),I(整数),B(双精度),Y(货币),L(逻辑),M(备注),G(通用),P(图片),只适于数据表,基本表视图,4.2 SQL数据定义,41,2、表的删除格式:drop table
38、 3、表的修改格式:alter table add|alter column(,)null not null check(字段有效性规则)error“错误信息”default 字段初值 primary key unique 说明:add:增加一个字段。alter:修改字段。column:无意义,起提示作用。4、视图的定义格式:create view as select 语句5、视图的删除格式:drop view,基本表视图,42,插入数据格式1:insert into(,)value(,)说明:把表达式的值插入到指定的字段值中。格式2:insert into from array|memvar
39、说明:把数组或内存变量的值插入到记录中。更新数据格式:update 库名!set=,where 删除数据 格式:delete from where,插入数据 更新数据 删除数据,4.3 SQL数据操纵,43,第五章 程序设计基础,程序设计方法面向过程方法(DOS):通过程序命令流来完成所有工作。面向对象方法(Windows):通过系统提供的对象模型来完成大部分工作。程序设计概述结构控制语句多模块程序程序的调试,44,5.1 程序设计概述,创建菜单方式:文件新建程序新建文件;命令方式:modify command 程序文件名注:省略“程序文件名”,则默认“程序1”为文件名编辑修改菜单方式:文件打
40、开;命令方式:modify command 程序文件名注:保存快捷键:CtrlW;放弃存盘:Esc键或CtrlQ键程序的运行菜单方式:程序运行;命令方式:DO;编辑中执行:工具栏“!”按钮,程序的创建、编辑修改及运行简单输入/输出命令,45,简单输入/输出命令格式:INPUT 提示信息 to 功能:等待用户从键盘输入数据,回车键结束输入,输入的值赋给内存变量,字符串须加定界符。格式:ACCEPT 提示信息 to 功能:等待用户从键盘输入字符串,回车键结束输入,不须定界符。格式:WAIT 提示信息 to 内存变量 WINDOW AT nRow,nColumnTIMEOUT nSeconds:以窗
41、口的形式显示指定信息。内存变量:用于保存用户键入的字符,类型为字符型。若用户按的是Enter键或单击鼠标,则保存的是空串。,程序的创建、编辑修改及运行简单输入/输出命令,46,5.2 结构控制语句,三种基本程序结构:顺序、分支、循环顺序结构:例1:在屏幕上显示由*组成的菱形(sequence.prg)分支结构1、条件语句(最多允许384层嵌套)语句格式if else endif例2:在基本情况表中查找某个学生,如找到则显示该学生的姓名,性别,否则显示“查无此人!”(find_if.prg)注:locate:顺序查找表中满足指定条件的第一条记录。格式:locate for 条件 eof():指示
42、数据表文件尾;found():查找结果,顺序结构分支结构循环结构,47,2、多分支选择结构(最多允许384层嵌套)语句格式DO CASE CASE CASE CASE OTHERWISE ENDCASE例3:打开成绩表,统计学生的数学成绩是属于哪个层次(优:10090;良:8980;中:7970;及格:6960;不及格:=60,顺序结构分支结构循环结构,48,1、基本循环结构(最多允许384层嵌套)语句格式do while loop exit enddo注:loop:使程序无条件的调回到do while语句,重新判断条件;exit:使程序无条件的跳出循环体,接着执行enddo后面的语句.例4:
43、在学习成绩表中查找某人记录(find_dowhil.prg),顺序结构分支结构循环结构,49,2、计数循环结构语句格式:for=to step loopexitendfor|next例5:计算1到100的和(分别用do while语句和for语句实现:for.prg;dowhile2.prg),顺序结构分支结构循环结构,50,3、扫描(指针型)循环结构语句格式scan|for|whileloopexitendscan作用:按表文件记录的顺序在指定范围内从头到尾扫描每一条记录,每扫描一次就执行一次循环体语句,直到全部扫描完跳出endscan语句。,顺序结构分支结构循环结构,51,定义过程调用过程
44、内存变量的作用区域 参数接收过程库自定义函数,52,例:*计算m!n!,子程序n!clearpublic s1,s2,sinput 请给变量m赋值(m0):m to minput 请给变量n赋值(n0):n to ndo 3_30PP with ms1=s?s1do 3_30P with ns2=s?s2s=s1+s2?sreturn,procedure 3_30PP m1;写不写都可parameters m1s=m1do while m11s=s*(m1-1)m1=m1-1enddoreturns,53,由于程序分为主程序和子程序等不同层次,所以各级程序中使用的变量也有不同的级别和不同的作用
45、范围。1、公共(Public)变量注:在各级程序段中都可以使用,直到程序运行结束才被释放。必须先用命令定义以后才能使用。格式:public 注:在命令窗口中,直接用赋值语句定义的变量也认为是公共变量。2、私有(Private)变量注:只在定义该类变量的子程序及其下级程序中起作用,一旦返回上级程序便自动释放。格式:private 注:在程序中不加定义而使用的变量也认为是私有变量。3、局部(Local)变量注:只在定义它的子程序中使用,进入上级或下级程序时,都自动释放;也必须先用命令定义以后才能使用;如果当前局部变量与上级程序中的变量同名,则隐含原变量,直到返回上级程序时释放当前私有变量,恢复原隐
46、含变量。格式:local 注:所有定义好的变量(公共、私有、局部)都被自动赋值予逻辑初值.F.,定义过程调用过程内存变量的作用区域 参数接收过程库自定义函数,54,参数接收格式1:PARAMETERS 格式2:LPRARMETERS 作用:中的参数是一组内存变量或数组,它们与过程调用命令中参数一一对应,按顺序分别接收调用命令中对应参数中的值。系统最多可以有27个参数,各参数之间用“,”分隔。注:中的变量名不一定和调用命令中中变量名相同,但参数数量应当不多于调用命令中参数的数量。格式1创建私有变量,格式2创建局部变量。例:输出学生档案表中性别为男生或女生的记录。(mainP1,moduleP1)
47、过程库:包含很多个过程的程序文件注:如要调用一个过程库中的过程,程序必须首先用以下命令打开过程库set procedure to,定义过程调用过程内存变量的作用区域 参数接收过程库自定义函数,55,定义函数格式:FUNCTION*如有参数,则第一行命令应是参数接收命令*parameters 参数列表 return 调用函数变量函数名(参数列表),定义过程调用过程内存变量的作用区域 参数接收过程库自定义函数,56,5.4 面向过程程序的调试,程序错误的分类:1)语法错误:程序设计结构或命令语法有错误;2)系统错误:由计算机软、硬件引起的错误,例VF本身的缺陷或病毒感染等;3)逻辑错误:不违反系统
48、规则,但却不合逻辑或不合题意的错误。这类错误系统不能自检出来,由程序员自己借助调试器来检查。打开调试器菜单方式:工具调试器命令方式:debug调试器的构成和使用1.跟踪窗口:显示正在调试执行的程序文件:指向调试中正在执行的代码行;:表示断点,程序执行到该代码行时,中断程序执行。2.监视窗口:指定表达式在程序调试执行过程中的取值变化情况指定表达式:在监视窗口编辑,Enter确认。3.局部窗口:显示模块程序中的内存变量的名称、当前取值及类型。4.调用堆栈窗口:显示当前处于执行状态的程序、过程或方法程序。5.调试输出窗口:可在模块程序中安置一些DebugOut命令,当程序执行到此命令后,会计算出表达
49、式的值,并把结果送入调试输出窗口。命令格式:DebugOut 注:为区别于DEBUG命令,DebugOut至少要写出6个字母。,调试器环境设置断点 调试菜单,57,设置断点:工具断点调试菜单介绍:1、取消:终止程序的调试执行,并关闭程序。2、定位修改:终止程序的调试执行,再在文本编辑窗口打开调试程序3、跳出:连续执行被调用程序中的代码,再在调用程序的调用语句的下一行处中断。4、单步:单步执行下一行代码。如下一行代码调用了过程或者方法程序,则此过程或者方法程序在后台执行。5、单步跟踪:单步执行下一行代码。6、调速:设置两行代码之间的延迟秒数。7、设置下一行语句:使光标所在行称为断点恢复后要执行的
50、语句。,调试器环境设置断点 调试菜单,58,第六章 表单,表单的建立与修改面向对象程序设计基础子类的设计与使用表单控件使用1(学习成绩表单)表单控件使用2(基本情况表单)系统登录表单的设计,59,6.1 表单的建立与修改,用“表单向导”建立表单(.SCX):方法:表单新建表单向导 例:建立一个“一对多”的社会关系表运行表单:单击“运行”按钮;表单执行表单用“表单设计器设计”设计表单:方法:表单新建新建表单鼠标右键“数据环境”例:建立“基本情况”表单附:LABEL标签:属性:Caption,FontName,FontSize,ForeColor给表单添加向导控件:“表单控件”工具栏“查看类”Vi