VF数据库程序设计教案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vf数据库电子教案”。
Visual Foxpro数据库程序设计教案
姓名:
李运娣
系别:
计算机
第1章 Visual FoxPro 数据库基础
本章重点与学习目标:
了解数据库系统的相关概念
数据、数据库、数据库管理系统、数据库系统 数据库管理系统发展过程
概念模型以及常用的数据模型—层次模型、网状模型、关系模型
掌握关系数据库
关系模型的相关属于
数据库设计基础
数据库设计的步骤和过程
了解VF系统的发展过程
数据库管理系统的发展
VF的发展简史及了解Visual FoxPro系统的特点 掌握VF系统的启动与退出方法 熟悉VF系统的用户界面
熟悉VF项目管理器
创建新项目
项目管理器窗口的各类选项卡
教学器材:
多媒体教学
本章课时: 3学时
§1.1 数据库基础知识
§1.1.1 计算机数据管理的发展
1.数据与数据处理 数据是指存储在某一种媒体上能够识别的物理符号;数据处理是指将数据转换成信息的过程。2.计算机数据管理
数据管理:是指对数据的组织、分类、编码、存储、检索、维护等,它是数据处理的中心问题。
数据管理技术的发展过程:人工管理阶段(40年代中--50年代中);文件系统阶段(50年代末--60年代中);数据库系统阶段(60年代末--现在)。
§1.1.2 数据库系统
1.数据库有关概念
数据库(DataBase):指数据库系统中以一定的方式将相关数据组织在一起,存储在外存储设备上形成的、为多个用户共享、与应用程序相互独立的相关数据集合。
数据库管理系统(DBMS): 用于建立、使用和维护数据库的系统软件。数据库管理系统对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
数据库应用系统:数据库应用系统简称数据库系统,是指系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。
数据库管理员(DBA):负责全面管理和实施数据库控制和维护的技术人员。
2.数据库系统的特点
数据库系统是指引进数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。特点:实现数据共享,减少数据冗余;采用特定的数据模型;具有较高的数据独立性;有统一的数据控制功能
§1.1.3 数据模型
1.实体的描述:实体的定义、属性、实体集和实体型 2.实体间联系及联系的类型
定义:实体之间相对应的关系称为联系,它反映了现实世界事物之间的相互关联。
类型:一对一联系;一对多联系;多对多联系 3.数据模型简介
数据模型是在数据库领域中定义数据及其操作的一种抽象表示。类型:网状模型;层次数据模型;关系模型
§1.2 关系数据库 §1.2.1 关系模型
1.关系定义的定义及相关术语
一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。
相关术语:元组、属性、域、关键字、外部关键字 2.关系的特点
关系必须规范化
二维表中的每一列都有唯一的字段名且取值性质相同 二维表中不允许出现完全相同的两行
二维表中可以任意交换行的顺序和列的顺序 3.实际关系模型
一个具体的关系是由若干个关系模式组成。在VF中,一个数据库中包含相互之间存在联系的多个表。这个数据库文件就代表一个实际的关系模型。为了反映出各个表所表示的实际实体之间的联系,公共字段名往往起着“桥梁”的作用。
例1.1 部门-职工-工资关系模型 例1.2 图书-读者-借阅关系模型
§1.2.2 关系运算
1.传统的集合运算:交、并、差 2.专门的关系运算
选择定义:从一个关系模式中找出满足给定条件的记录的操作称为选择,选择是从行的角度进行的运算,相当于对关系进行水平分解。
投影定义:投影运算从关系中选取若干属性形成一个新的关系。连接定义:将两个关系模式的若干属性拼接成一个新的关系模式的操作,对应的新关系中,包含满足连接条件的所有元组。§1.3 数据库设计基础 §1.3.1数据库设计步骤
1.设计原则
概念单一化”一事一地”原则 避免在表之间出现重复字段
表中的字段必须是原始数据和基本数据元素 用外部关键字保证有关联的表之间的联系 2.设计步骤
需求分析
确定需要的表 确定所需字段 确定联系 设计求精
§1.3.2 数据库设计过程
1.需求分析:用户需求主要包括信息需求、处理需求、安全性和完整性要求。
2.确定需要的表:数据库设计过程中最主要的一步就是确定需要的表,分析的过程实际上就是对收集到的数据进行抽象的过程。3.确定所需字段 4.确定联系 5.设计求精
§1.4 Visual FoxPro系统概述
Visual FoxPro6.0是微软公司1998年发布的可视化编程语言集成包Visual Studio6.0中的一员,是一种用于数据库结构设计和应用程序开发的功能强大的面向对象的计算机数据库软件。
§1.4.1 Visual FoxPro 6.0的安装与启动
1.安装步骤
将Visual FoxPro 6.0系统光盘插入CD-ROM驱动器,打开光盘,找到setup.exe文件,双击该文件,进行安装向导。按照安装向导的提示,单击“下一步”按钮根据提示进行安装。2.启动系统
单击Windows的“开始”按钮,选择“程序”“Microsoft Visual FoxPro 6.0”“Microsoft Visual FoxPro 6.0”菜单项。§1.4.2 Visual FoxPro 6.0的主界面
1.菜单操作
下拉式菜单项:
主菜单栏中包括8个下拉式菜单项:文件(F)、编辑(E)、显示(V)、工具(T)、程序(P)、项目(Q)、窗口(W)、帮助(H)。2.命令操作
显示与隐藏命令窗口的方法:
单击命令窗口右上角的关闭按钮可以关闭它,然后通过“窗口”菜单下的“命令窗口”选项可以重新打开。3.项目管理器窗口
项目管理器是VF中各种数据和对象的主要组织工具。一个项目是文件、数据、文档和对象的集合。§1.4.3 工具栏的使用
1.显示或隐藏工具栏 2.定制工具栏
3.修改现有工具栏
§1.4.4 Visual FoxPro 6.0的配置
为了使系统满足个性化的要求,可以定制自己的系统环境。在VF中可以使用“选项”对话框或SET命令进行附加的配置设定,这里主要用“工具”菜单下的“选项”进行设定。§1.5 项目管理器
项目是指文件、数据、文档和对象的集合。“项目管理器”是VF中处理数据和对象的主要组织工具,它为系统开发者提供了极为便利的工作平台,一是提供了简便的、可视化的方法来组织和处理表、数据库、表单、报表、查询和其他一切文件;二是在项目管理器中可以将应用系统编译成一个扩展名为.app的应用文件或.exe的可执行文件。§1.5.1创建项目
1.创建新项目
2.打开和关闭项目 3.各类文件选项卡 §1.5.2 使用项目管理器
1.创建文件 2.添加文件 3.修改文件 4.移去文件
5.其他按钮:“浏览”按钮、“关闭”和“打开”按钮、“预览”按钮、“运行”按钮、“连编”按钮
§1.5.3 定制项目管理器
1.移动、缩放和折叠 2.拆分项目管理器 3.停放项目管理器
§1.6 向导、设计器、生成器简介
VF提供真正的面向对象的程序设计工具,使用它的各种向导、设计器和生成器可以更加简便、快速、灵活地进行应用程序开发。§1.6.1 Visual FoxPro的向导
1.启动向导 2.使用向导
3.修改用向导创建的项 §1.6.2Visual FoxPro的设计器
1.各种设计器:表设计器、数据库设计器、报表设计器、查询设计器、视图设计器、表单设计器、菜单设计器、数据环境设计器、连接设计器
2.打开Visual FoxPro设计器
§1.6.3Visual FoxPro的生成器
各种生成器:表单生成器、表格生成器、编辑框生成器、列表框生成器、文本框生成器、组合框生成器、命令按钮组生成器、选项按钮组生成器 1.启动“表单生成器”
2.对表单中的控件使用相应的生成器 3.使用自动格式生成器来设置控制格式 4.使用参照完整性生成器
本章小结:
本章首先介绍了数据库系统的有关概念、数据库管理系统的功能,然后介绍了VF6.0的初步知识,包括其用户界面、工具栏的使用和系统配置。通过本章的学习希望对数据库的相关知识有所了解,同时也对VF6.0有初步的认识,为后面的进一步学习打下基础。
本章作业:
1.数据库管理员的职责包括哪些方面? 2.简述数据库系统的特点。3.简述关系的特点。
4.数据库有哪些设计原则。5.简述数据库的设计步骤。6.创建项目的方法有哪些?
教学后记:
第2章 VF程序设计基础
本章重点与学习目标:
掌握VF常用数据类型
字符型、数值型、浮点型、双精度、整型等
掌握VF常量、变量的定义与使用方法及运算符和表达式
常量类型、变量类型及使用
VF运算符及优先级、VF各种表达式
了解VF程序设计基本知识及基本程序结构
程序文件的建立与编辑和程序的调用方法
程序的三种结构:顺序结构、分支结构、循环结构
掌握VF的过程与函数的定义及运用方法
子过程与过程的定义及操作 自定义函数的运用
掌握变量的作用域与参数的传递
VF变量的作用域 VF参数的传递
教学器材:
多媒体教学
本章课时:7学时
§2.1 常量与变量
VF主要数据类型有:字符型、数值型、货币型、日期型、日期时间型、逻辑型、备注型、通用型。§2.1.1 常量
常量是指在所有的操作过程中保持不变的数。
VF主要有:数值型常量、货币型常量、字符型常量、日期型常量、日期时间型常量和逻辑型常量。§2.1.2 变量
变量是能够随时更改的。每个变量有一个变量名。
命名规则:变量名以字母,汉字和下划线开头,后接字母、数字、汉字和下划线构成。
VF变量分为字段变量和内存变量
数组:与内存变量不同,数组在使用之前一般要DIMENSION或DECLARE命令显式创建,并且规定数组是一维数组还是二维数组,数组名和数组大小。
数组创建数组的格式:
DIMENSION([,])[,„] DECLARE([,])[,„] §2.1.3 内存变量常用命令
1.内存变量的赋值
格式1 :STORE TO 格式2:=
2.表达式的显示
格式1 :?[] 格式2:??[] 3.显示内存变量
格式1: LIST MEMORY[LIKE][TO PRINTER|TO FILE] 2: DISPLAY MEMORY[LIKE][TO PRINTER|TO FILE] 4.清除内存变量
格式1 :CLEAR MEMORY 格式2:RELEASE 格式3 :RELEASE ALL [EXTENDED] 格式4:RELEASE ALL [LIKE| EXCEPT] 5.表与数组之间的数据传递
将表的当前记录复制到数组 格式1 :SCATTER [ FIELDS][ MEMO ] TO [ BLANK ] 格式2:SCATTER [FIELDS LIKE|FIELDS EXCEPT] [ MEMO ] TO [ BLANK ] §2.2 表达式
表达式是由常量、变量和函数通过特定的运算符连接起来的式子。§2.2.1 数值、字符与日期时间表达式
数值表达式又叫做算术表达式,是最容易理解的一种表达式。数值型数据可以是数值型常量或者变量。
运算符包括:()、**或^、*、/、%、+、-§2.2.2 关系表达式
称为简单逻辑表达式,它由关系运算符将两个运算对象连接起来形成。运算符包括:、>=、=、==、或#或!=、$ §2.2.3 逻辑表达式
由逻辑运算符将逻辑型数据连接形成的,其运算符结果仍然是逻辑数据。运算符包括:.NOT.或!(逻辑非)、.AND.(逻辑与)和.OR.(逻辑或)。§2.2.4 运算符优先级
表达式中出现了多种不同类型的运算符时,其运算符优先级如下:算术运算符>字符运算符和日期时间运算符>关系运算符>逻辑运算。可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。§2.3 常用函数
§2.3.1 数值函数
常用数值函数有:ABS()函数、SIGN()函数、SQRT()函数、PI()函数、INT()函数、CEILING()函数、FLOOR()函数、ROUND()函数、MOD()函数、MAX()函数 §2.3.2 字符函数
常用字符函数有:LEN()函数、LOWER()函数、UPPER()函数、SPACE()函数、TRIM()函数、LTRIM()函数、ALLTRIM()函数、LEFT()函数、RIGHT()函数、SUBSTR()函数、OCCURS()函数、AT()函数、ATC()函数、STUFF()函数、CHRTRAN()函数、LIKE()函数 §2.3.3 日期和时间函数
常用日期和时间函数有:DATE()函数、TIME()函数、DATETIME()函数、YEAR()函数、MONTH()函数、DAY()函数、HOUR()函数、MINUTE()函数、SEC()函数 §2.3.4 数据类型转换函数
常用数据类型转换函数有:STR()函数、VAL()函数、CTOD()函数、CTOT()函数、DTOC()函数、TTOC()函数、宏替换函数 §2.3.5 测试函数
常用测试函数有:BETWEEN()函数、ISNULL()函数、EMPTY()函数、VARTYPE()函数、EOF()函数、BOF()函数、RECNO()函数、RECCOUNT()函数、IIF()函数、DELETED()函数 §2.4 程序与程序文件 §2.4.1 程序的概念
定义:程序是能够完成一定任务的命令的有序集合。这组命令被存放在称为程序文件或命令文件的文本文件中。
程序中经常插入注释,以提高程序的可读性。注释为非执行代码,不会影响程序的功能。
注释方式:NOTE或*,以NOTE或*开头的代码行为注释行,一般用于对下面一段命令的说明。
&&,命令行后可添加注释,对所在行命令的说明。
§2.4.2 程序文件的建立与执行
1.程序文件的建立
2.打开、修改程序文件 3.执行程序文件
§2.4.3 简单的输入/输出/命令
1.INPUT命令: INPUT [] TO 2.ACCEPT命令:ACCEPT [] TO 3.WAIT命令:WAIT [] [TO ] [WINDOW [AT,]][NOWAIT] [CLEAR | NOCLEAR] [TIMEOUT ] §2.5 程序的基本结构 §2.5.1 选择结构
1.简单形式的条件语句 IF ENDIF 2.一般形式的条件语句
IF ELSE ENDIF 3.多分支语句
DO CASE CASE CASE „„ CASE [OTHERWISE ] ENDCASE §2.5.2 循环结构
1.DO WHILE-ENDDO语句
DO WHILE [LOOP] [EXIT] ENDDO 2.FOR语句
FOR = to [step] [EXIT] [LOOP] ENDFOR|NEXT 3.SCAN-ENDSCAN语句
SCAN [] [FOR ] [WHILE] [LOOP] [EXIT] ENDSCAN §2.6 多模块程序设计
模块是一个相对独立的程序段,它可以被其他模块所调用,也可以去调用其他的模块。通常,把被其他模块调用的模块称为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。§2.6.1 模块的定义和调用
1.模块的定义:模块可以是命令文件,也可以是过程。
语法格式:
PROCEDURE | FUNCTION [RETURN[]] [ENDPROC︱] 打开过程文件的命令格式: SET PROCEDURE TO[[,„]] [] 关闭过程文件的命令格式:
格式1: SET PROCEDURE TO 功能:关闭所有打开的过程文件
格式2:RELEASE PROCEDURE [,„] 2.模块调用
格式1:DO ︱ 格式2:︱()
§2.6.2 参数传递
1.PARAMETERS和LPARMETERS语句传递参数
PARMETERS[,„] LPARMETERS [,„] 2.调用模块程序
格式1:DO ︱WITH[,„] 格式2:DO ︱([,„])
§2.6.3 变量的作用域
1.变量的作用域:指变量在什么范围内是有效的或者能够被访问的。
内存变量分类:公共变量、私有变量、局部变量 2.变量的隐藏
开发应用程序时,主程序与子程序不一定是由同一个人来设计的,子程序中用到的变量实际上在主程序中已经建立,子程序的运行会无意间改变主程序中变量的取值。为了解决这个问题,可以采用在子程序中使用PRIVATE命令隐藏主程序中可能存在的变量,使得这些变量在子程序中暂时无效。
格式:PRIVATE PRIVATE ALL[LIKE|EXCEPT] 本章小结:
本章主开始先介绍了语言的一些基本成分,包括常量、变量、函数和表达式,同时也介绍了一些相关的命令,在后半部分主要介绍了程序设计的基本内容,包括程序的概念、程序的基本结构、多模块程序设计等。通过本章的学习要求同学们对程序设计有初步的了解,并且能编写小的算法程序来进行特定的数据处理。本章作业:
上机练习课后习题三
教学后记:
第3章 VF数据库及操作
本章重点与学习目标: 了解VF项目管理器 熟悉VF数据库
数据库的创建方法 数据库的应用 数据库的修改 数据库的删除
掌握VF数据库表的相关操作
数据库表、自由表的创建 表结构的修改
数据库表的关闭与打开 数据库表的基本操作
掌握数据库表索引
索引的类型 索引的建立
了解数据完整性相关概念 教学器材:
多媒体教学
教学课时:4学时
§3.1 Visual FoxPro数据库及其建立 §3.1.1 基本概念
数据库:数据库是一个逻辑上的概念和手段,通过一组系统文件将相互关联的数据库表及其相关的数据库对象统一组织和管理。§3.1.2 建立数据库
常用方法:(1)使用项目管理器中建立数据库
(2)使用“新建”对话框建立数据库(3)使用命令方式建立数据库
格式:CREATE DATABASE[Databasename|?] §3.1.3 使用数据库
常用方法:(1)在“项目管理器”中打开数据库
(2)通过“打开”对话框打开数据库(3)使用命令方式打开数据库 格式:OPEN DATABASE §3.1.4 修改数据库
常用方式:(1)从项目管理器中打开数据库设计器
(2)用“打开”对话框打开数据库设计器
§3.1.5 删除数据库
常用方法:(1)使用项目管理器删除数据库
(2)使用命令方式删除数据库 格式:DELETE DATABASE DatabaseName|? [DELETETABLES] [RECYCLE] §3.2 建立数据库表
§3.2.1 在数据库中建立表
方法:(1)使用项目管理器建立数据库表
(2)使用“新建”或CREATE命令建立数据库表
§3.2.2 修改表结构
方法:(1)在“项目管理器”中修改表结构
(2)在“数据库设计器”中修改表结构(3)使用命令修改表结构
如果当前不在数据库设计器中,则首先要用USE命令打开要修改的表,然后使用命令方式MODIFY STRUCTURE打开表设计器。
§3.3 表的基本操作
§3.3.1 使用浏览器操作表
方法:(1)在项目管理器中将数据库展开至表,并且选择要操作的表,然后单击“浏览”命令按钮即可。(2)在数据库设计器中选择要操作的表,然后从“数据库”菜单中
选择“浏览”,或者对要操作的表单击鼠标右键,然后从快捷菜单中选择“浏览”。(3)在命令窗口中,用USE命令打开要操作的表,然后输入BROWSE 命令来浏览表。
§3.3.2 增加记录的命令
APPEND命令: APPEND命令是在表的尾部增加一个或多个新记录。
格式:APPEND或APPEND BLANK INSERT命令: INSERT命令可以在表的任意位置插入新的记录。
格式:INSERT [BEFORE][BLANK] §3.3.3 删除记录的命令
逻辑删除: DELETE [FOR] 恢复记录的命令: RECALL [FOR] 物理删除有删除标记的记录: PACK 物理删除表中的全部记录: ZAP §3.3.4 修改记录的命令
EDIT或CHANGE命令交互修改:这两个命令均用于交互式地对当前表记录进行编辑、修改,操作界面类似于APPEND界面。修改后用CTRL+W或ESC退出界面
REPLACE命令直接修改: REPLACE 字段名1 WITH 表达式1 [,字段名2 WITH 表达式2]„ [FOR 表达式] §3.3.5 显示记录的命令
LIST/DISPLAY命令: LIST/DISPLAY [[FIELDS] Fiedlist] [FOR lExpreion1] [OFF] [TO PRINTER [PROMPT] | TO FILE FileName] §3.3.6 查询定位命令
用GO、GOTO命令直接定位: GO 记录号 |TOP | BOTTOM SKIP命令: SKIP [nRecords] 用LOCATE命令定位: LOCATE FOR 条件表达式
§3.4 索引
§3.4.1 基本概念 定义:VFP索引是指由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。
分类:主索引、候选索、唯一索引、普通索引 §3.4.2 在设计器中建立索引
1.单项索引
2.复合字段索引:在多个字段上的索引称做复合字段索引。
3.索引文件的种类:非结构单索引文件、非结构复合索引文件、结构复合索引文件
§3.4.3 用命令建立索引
命令:INDEX ON eExpreion TO IDXFileName|TAG TagName [OF CDXFileName] [FOR lExpreion][COMPACT] [ASCENDING|DESCENDING] [UNIQUE|CANDIDATE] [ADDITIVE] §3.4.4 使用索引
命令格式:SET ORDER TO [ nIndexNumber | [TAG] TagName ] [ASCENDING|DESCENDING] §3.4.5 使用索引快速定位
Seek命令格式:SEEK eExpreion [ORDER nIndexNumber | [TAG]
TagName ][ASCENDING|DESCENDING] §3.4.6 删除索引
格式1:DELETE TAG TagName1 格式2:DELETE TAG ALL §3.5 数据完整性
§3.5.1 实体完整性与主关键字
实体完整性是保证表中记录唯一的特性,在VFP中利用主关键字和候选索引字来保证表中记录的惟一性,即实体惟一性。§3.5.2 域完整性与约束规则
域完整性:通过限定字段的取值类型和取值范围来保证域完整性,还可以进一步通过域约束规则来保证域完整性。约束规则也称作字段有效性规则,用于检验输入数据的正确性。
§3.5.3 参照完整性与表之间的联系
建立参照完整性:(1)建立表之间的“永久联系”。
(2)设置参照完整性约束。
§3.6 自由表
§3.6.1 数据库表与自由表
创建自由表:(1)使用项目管理器创建自由表
(2)利用菜单方式创建自由表
(3)利用命令窗口的create命令创建自由表
§3.6.2 将自由表添加到数据库
方法:(1)使用项目管理器添加自由表
(2)使用数据库设计器添加自由表(3)利用窗口命令添加自由表 §3.6.3 从数据库中移出表
方法:(1)使用项目管理器移出表
(2)使用数据库设计器移出表(3)利用命令窗口方式移去表
§3.7 多个表的同时使用
§3.7.1 多个工作区的概念
多工作区: VF中在一个工作区中可以使用一个表,如果在同一时刻需要打开多个表,则只需要在不同的工作区中打开不同的表。系统默认的总是在第1个工作区中工作,如果没有指定工作区,实际是都是在第1个工作区打开表和操作表。
利用命令窗口选择工作区: SELECT nWorkAreca | cTabeleAlias §3.7.2 使用不同工作区的表
Visual FoxPro也允许利用IN 命令在一个工作区内使用另一个工作区的表。即命令: In nWorkAreca | cTabeleAlias §3.7.3 表之间的联系
建立临时关联: SET RELATION TO eExpreion1 INTO nWorkAreca | cTabeleAlias
§3.8 排序
排序是将记录按需要的顺序重新排列,产生一个新的数据库文件,实现从物理上对数据库的重新排列。
物理排序: SORT TO TableName ON FieldName1[/A | /D] [/C] [, FieldName2 [/A | /D] [/C] „] [ASCENDING | DESCENDING] [FOR lExpreion1] [ FIELDS FieldNamelist ] 本章小结
本章主要介绍了VF数据库相关概念与操作,数据库表的创建与基本操作,表索引的创建。通过本章的学习要求掌握数据库的基本操作,表的建立与结构的设置,索引的建立方法,了解数据的完整约束。
本章作业:
上机联系课后习题三
教学后记:
第4章 关系数据库标准语言SQL 本章重点与学习目标: SQL语言概述
了解SQL语言的相关知识 掌握SELECT语句的使用方法
查询功能
掌握SELECT语句的使用方法
了解使用谓词和量词的复杂查询语句
操作和定义功能
掌握插入、更新和删除等操作语句
掌握表的定义、删除和结构修改等定义语句 掌握视图的定义方法
教学器材:
多媒体教学
教学课时:8学时
§4.1 SQL概述
SQL定义:SQL(Structured Query Language)是一种非过程化的语言,也是结构化查询语言的缩写,是关系数据库的标准语言。
§4.2 查询功能
SQL的核心是查询,SQL的查询命令也称SELECT命令,它提供了简单而又丰富的SELECT数据查询语句。语法格式:
SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT][Alias.] Select_Item [AS Column_Name][,[Alias.] Select_Item [AS Column_Name]„]FROM [FORCE][DatabaseName!] Table [[AS] Local_Alias][[INNER |LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN[DatabaseName!] Table [[AS] Local_Alias][ON JoinCondition]]„][[INTO Destination][TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT]| TO SCREEN]][PREFERENCE PreferenceName][NOCONSOLE][PLAIN][NOWAIT] [WHERE JoinCondition [AND JoinCondition„][AND |OR FilterCondition [AND | OR FilterCondition„]]][GROUP BY GroupColumn [,GroupColumn„]][HAVING FilterCondition][UNION [ALL] SELECTCommand][ORDER BY Order_Item [ASC | DESC][,Order_Item [ASC | DESC]„]] §4.2.1 简单查询
定义:简单查询是针对单个表的查询,由SELECT和FROM短语构成无条件查询或由SELECT、FROM和WHERE短语构成条件查询。
举例:课本例4.1~4.5 §4.2.2 简单的连接查询
定义:简单联接查询也是一类基于多个表的查询,与嵌套查询的区别是要查询的结果可以出自多个表中,而嵌套查询的结果是基于一个表中。举例:课本例4.6与例4.7 §4.2.3 嵌套查询
定义:嵌套查询基于多个关系的查询,查询的结果是来自一个表,而查询的条件却涉及到多个表。
举例:课本例4.8、4.9与例4.10 §4.2.4 几个特殊运算符
运算符:LIKE和 between „ and 举例:课本例4.11、4.12与例4.13 §4.2.5 排序
格式:ORDER BY Order_Item [ASC | DESC][,Order_Item [ASC |DESC]„] 举例:课本例4.14与例4.15 §4.2.6 简单的计算查询
字段函数:COUNT、SUM、AVG、MAX、MIN 举例:课本例4.16~4.20 §4.2.7 分组与计算查询
格式:GROUP BY GroupColumn [,GroupColumn„] [HAVING FilterCondition 举例:课本例4.21与例4.22 §4.2.8 利用空值查询
空值:NULL值
举例:课本例4.23与例4.24 §4.2.9 别名与自连接查询
格式: 举例:课本例4.25 §4.2.10 内外层互相关嵌套查询
前面讨论的都是外层查询依赖于内层查询的结果,实际上,有时也需要内、外层互相关的查询,这是内层查询的条件需要外层查询提供值,而外层查询的条件需要内层查询的结果。举例:课本例4.26 §4.2.11 使用量词和谓词的查询
格式说明: [ ANY | ALL |SOME ](子查询)和[NOT] EXISTS(子查询)举例:课本例4.27~4.30 §4.2.12 超连接查询
分类:左联接、右联接、完全联接 命令格式:SELECT„„FROM Table INNER | LEFT | RIGHT | FULL JOIN Table ON JoinCondition WHERE„„ 举例:课本例4.31~4.34 §4.2.13 集合的并运算
定义:并运算是将两个SELECT语句的查询结果合并成一个查询结果。运算符:UNION §4.2.14 VF SQL SELECT的几个特殊选项
1.显示部分结果
2.将查询结果放到数组中 3.将查询结果放到临时文件中 4.将查询结果存放到永久表中 5.将查询结果存放到文本文件中 6.将查询结果直接输出到打印机 举例:课本例4.35、4.36 §4.3 操作功能
§4.3.1 插入数据
格式一:INSERT INTO dbf_name[(fname1[,fname2,„])] VALUES(eExpreion1[,eExpeion2,„])格式二:INSERT INTO dbf_name from ARRAY ArrayName | from memvar §4.3.2 更新数据
格式:UPDATE TableName
set Column_Name1=eExpeion1 [,Column_Name2=eExpeion2„] where condition §4.3.3 删除数据
格式:delete from TableName [where condition] §4.4 定义功能
§4.4.1 表的定义
通过create table命令来建立表,格式为:
create table | DBF TableName1 [NAME LongTableName ] [FREE](FieldName1 FieldType[(nFieldWidth [,nPrecision])] [NULL|NOT NULL] [CHECK lExpeion1 [ ERROR cMeageText1]] [DEFAULT eExpeion1] [PRIMARY KEY | UNIQUE] [REFERENCES TableName2 [TAG TagName1]] [NOCPTANS] [, FieldName2 „ ] [, PRIMARY KEY eExpreion2 TAG TagName2 |, UNIQUE eExpeion3 TAG TagName3] [, FOREIGN KEY eExpreion4 TAG TagName4 [NODUP] REFERENCES TableName3 [TAG TagName5]] [, CHECK lExpreion2 [ERROR cMeageText2]])| FROM ARRAY ArrayName §4.4.2 表的删除
命令为:DROP TABLE table_name
直接从数据库删除表对应的文件。如果是数据库中的表并且相应的数据库是当前数据库,则从数据库中删除了表,否则虽然从磁盘上删除了表文件,但是在数据库中的信息却没有删除,此后会出现错误提示。§4.4.3 表结构的修改
用三种命令格式,格式1为:
ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1
FieldType [(nFieldWidth [, nPrecision ])] [NULL | NOT NULL] [CHECK lExpreion1 [ERROR cMeageText1]] [DEFAULT eExpreion1] [PRIMAY KEY | UNIQUE] [REFEENCES TableName2 [TAG TagName1]] 格式2为:
ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL|NOT NULL] [SET DEFAULT eExpreion2] [SET CHECK lExpreion2 [ERROR cMeageText2]] [DOP DEFAULT ] [DROP CHECK] 格式3:
ALTER TABLE TableName1 [DROP [COLUMN] FieldName3] [SET CHECK lExpreion3 [ERROR cMeageText3]] [DROP CHECK] [ADD PRIMARY KEY eExpreion3 TAG TagName2 [FOR lExpreion4]] [DROP PRIMARY KEY ] [ADD UNIQUE eExpreion4 [TAG TagName3 [FOR lExpreion5]]] [DROP UNIQUE TAG TagName4 ] [ADD FOREING KEY [eExpreion5] TAG TagName4 [FOR lExpreion6] REFERENCES TagName2 [TAG TagName5] [DROP FOREIGN KEY TAG TagName6 [SAVE]] [ RENAME COLUMN FieldName4 TO FieldName5] §4.4.4 视图的定义
格式:CREATE VIEW view_name AS select_statement
本章小结:
本章比较全面地介绍了关系数据库标准语言SQL,重点介绍了SQL语言的查询语句。通过本章的学习,要求掌握SQL查询语句,并对其数据操作和定义有一定的掌握。本章作业:
上机练习课后习题三
教学后记:
第5章 查询与视图
本章重点与学习目标: 熟悉查询设计器
查询设计器的各个选项 运用查询设计器创建查询
掌握VF视图的相关知识
视图的相关概念
视图设计器的运用方法
视图的创建及数据更新方法
教学器材:
多媒体教学
教学课时:2学时
§5.1查询
§5.1.1查询的概念
定义:查询是指向一个数据库发出的检索信息的请求,它使用一些条件提取特定的记录。实质上就是一个预先定义好的SOL SELECT语句,以扩展名为qpr的文本文件保存在磁盘上的。§5.1.2查询设计器
1.打开查询设计器建立查询 2.利用查询向导建立查询 §5.1.3建立查询
例5.1 建立一个含有仓库号、职工号、城市和工资信息的查询
例5.2 在以上基础上为查询增加查询计算表达式,计算出年工资。例5.3 为查询设计排序,先按仓库号升序排列,再按工资降序排列。例5.4 利用分组功能统计各仓库年工资额的合计。§5.1.4查询设计器的局限性
1.当建立查询并存盘后将产生一个扩展名为qpr的文本文件。
2.如果熟悉SOL SELECT,则可以直接用各种文本编辑器,通过自己写的SOL SELECT语句建立查询,最后把它保存查询设计器的局限性为扩展名为qpr的文件。
3.查询设计器只能建立一些比较规则的查询,而复杂的查询(嵌套查询)就不行了。
§5.1.5使用查询
1.查询的运行
2.设计查询的输出形式 §5.2视图
§5.2.1视图的概念
视图:视图是一种基于表或其他视图而定制的虚拟表,因此,视图兼有“查询”和“表”的特点。
分类:本地视图、远程视图: §5.2.2建立视图
建立视图的方法:
1.使用CREATE VIEW命令打开视图设计器建立视图; 2.选择菜单“文件→新建”建立视图; 3.在“项目管理器”中建立视图; 4.直接用SQL命令建立视图。§5.2.3远程视图与连接
1.定义数据源和连接:可以在VFP内部定义数据源和连接。
2.建立连接:使用项目管理器建立连接、使用菜单方式建立连接、使用CRETE CONNECTION 命令 3.建立远程视图
连接建立好之后就可以建立远程视图了。
建立远程视图和建立本地视图的方法基本上是一样的,只是在打开视图设计器时有所不同。
建立远程视图时,一般要根据网络上其它计算机或其它数据库中的表建立视图,所以需要首先选择“连接”或“数据源”,然后再进入界面建立远程视图。
§5.2.4视图与数据更新
1.指定可更新的表 2.指定可更新的字段 3.检查更新合法性 4.使用更新方式 §5.2.5使用视图
1.视图操作 2.使用视图
本章小结:
本章主要介绍了Visual FoxPro检索和操作数据库的两个基本工具或手段:查询和视图,它们都是根据基本表定义的,定义方式也类似,通过本章的学习要求掌握查询和视图的建立与使用方法。
本章作业:
上机练习课后习题三
教学后记:
《VF程序设计》教学大纲课程编号:一、课程性质、目的及开课对象 ㈠课程性质:公共选修课㈡目的:通过本课程的学习,使学生掌握项目管理器、库、表、菜单、报表、标签、查询、视图......
《VF程序设计》教学大纲一、课程名称:《VF程序设计》课程负责人:袁明兰二、学时与学分:48三、适应专业:外语、建筑设计技术、工程监理、艺术、旅游等专业四、课程教材:张彦芳等编......
第一章 VF数据库基础一、什么叫数据:是指存储在某种媒体上的能够识别的物理符号如:数字、字母、文字、特殊字符组成的文本形式数据,还有图形、动画、影像、声音等多媒体数据,而......
第一章 VF基础知识一、选择题1.在一个二维表中,行称为________,列称为________。A) 属性;元组B) 元组;属性 C) 关系;元组D) 属性;关系 2.数据库系统的核心是________。A) 数据库管......
第13课时 创建查询一、教学目的1、使学生掌握使用查询向导创建查询的方法。2、理解查询和查找的区别二、教学重难点 使用查询向导,查询和查找的区别三、教学方法 举例 讲授......