《Visual FoxPro 数据库程序设计》教学总结

时间:2019-05-12 00:55:49下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《《Visual FoxPro 数据库程序设计》教学总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《《Visual FoxPro 数据库程序设计》教学总结》。

第一篇:《Visual FoxPro 数据库程序设计》教学总结

《Visual FoxPro 数据库程序设计》

教学总结

Visual FoxPro 数据库程序设计作为国家计算机等级考试的一部分,其重要性不言而喻。该课程的突出特点是可视化操作居多,简单、易于理解,结合本人的教学过程及同学们的学习特点,主要有以下两点值得注意的地方:

1.学生学习的主动性有待加强。学生对该课程的接受相当快,很容易理解和上手,但通常学生们在上完课之后,几乎不会再利用业余时间复习,这严重影响了辅导的有效性。

2.VFP课程作为一种可视化的软件系统,其界面操作是很重要的一部分,如果条件允许,建议在多媒体教室进行该课程的讲解。相信直观的多媒体教学方式能使教学效果事半功倍。以上是本人考虑的有待改进的地方,如有偏颇,望谅解。当然,鉴于荣宇教育严格的管理制度和学生考试意识的浓重,相信本次考试会取得比较良好的成绩。

《Visual FoxPro 数据库程序设计》

考点总结

一 VFP基础知识

1.基本概念—选择和填空题

数据库,数据模型,数据库管理系统,类和对象,事件,方法 2.关系数据库

(1)关系数据库:关系模型,关系模式,关系,元组,属性,域,主关键字和外部关键字(2)关系运算:选择,投影,连接

(3)数据的一致性和完整性:实体完整性,域完整性,参照完整性—掌握完整性与索引类型之间的对应关系,以及不同索引类型的作用

3.VFP的基本数据元素:

(1)常量,变量,表达式--掌握不同类型常量所占的字节数

(2)常用函数:字符处理函数,数值计算函数,日期时间函数,数据类型转换函数,测试函数--掌握不同函数的返回值类型 二 VFP数据库的基本操作

1.数据库和表的建立、修改与有效性校验:--上机题的第一题,必须掌握

(1)表结构的建立与修改

(2)表记录的浏览、增加、删除与修改(3)创建数据库,向数据库添加或移除表(4)表的索引:主索引、候选索引、普通索引、唯一索引 2.多表操作(1)选择工作区

(2)建立表之间的关联:一对一的关联,一对多的关联。(3)设置参照完整性(4)建立表间临时关联

3.建立视图与数据查询—上机题的第二题,必须掌握(1)查询文件的建立、执行与修改(2)视图文件的建立、查看与修改(3)建立多表查询(4)建立多表视图

三 SQL(笔试部分最重要的章节,是二级考试的核心内容,必须熟练掌握,机试部分也有所体现)1.SQL的数据定义功能:(1)create table(2)alter table 2.SQL的数据修改功能:(1)DELETE(2)INSERT(3)UPDATE 3.SQL的数据修改功能:(1)简单查询(2)嵌套查询

(3)连接查询:内连接,外连接,左连接,右连接,完全连接(4)分组域计算查询(5)集合的并运算

四 项目管理器、设计器和向导的使用 1.使用项目管理器:(1)使用“数据”选项卡(2)使用“文档”选项卡 2.使用表单设计器:--上机题(1)在表单中加入和修改控件对象(2)设定数据环境 3.使用菜单设计器:(1)建立主选项(2)设计子菜单

(3)设定菜单选项程序代码

4.使用报表设计器--上机题的最后一题,但出的几率不大(1)生成快速报表(2)修改报表布局(3)设计分组报表(4)设计多栏报表

复习建议:

笔试部分:在熟悉教材的基础上,反复做培训机构发的套题,做完套题后,再回头看教材,然后再回头重新做题,如此在不断的反复中查漏补缺。

机试部分:在发的模拟光盘里有上机样本试题,附有视频演示,熟悉考试的机试环境。

第二篇: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 <数组名>(<下标上限1> [,<下标上限2>])[,„] DECLARE <数组名>(<下标上限1> [,<下标上限2>])[,„] §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 <条件> <语句序列1> ENDIF 2.一般形式的条件语句

IF <条件> <语句序列1> ELSE <语句序列2> ENDIF 3.多分支语句

DO CASE CASE <条件1> <语句序列1> CASE <条件2> <语句序列2> „„ CASE <条件n> <语句序列n> [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 <条件1>] [WHILE<条件2>] <循环体> [LOOP] [EXIT] ENDSCAN §2.6 多模块程序设计

模块是一个相对独立的程序段,它可以被其他模块所调用,也可以去调用其他的模块。通常,把被其他模块调用的模块称为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。§2.6.1 模块的定义和调用

1.模块的定义:模块可以是命令文件,也可以是过程。

语法格式:

PROCEDURE | FUNCTION<过程名> <命令序列> [RETURN[<表达式>]] [ENDPROC︱] 打开过程文件的命令格式: SET PROCEDURE TO[<过程文件1>[,<过程文件2>,„]] [] 关闭过程文件的命令格式:

格式1: SET PROCEDURE TO 功能:关闭所有打开的过程文件

格式2:RELEASE PROCEDURE <过程文件1>[,<过程文件2>,„] 2.模块调用

格式1:DO <文件名>︱<过程名> 格式2:<文件名>︱<过程名>()

§2.6.2 参数传递

1.PARAMETERS和LPARMETERS语句传递参数

PARMETERS<形参变量1>[,<形参变量2>,„] LPARMETERS <形参变量1>[,<形参变量2>,„] 2.调用模块程序

格式1:DO <文件名>︱<过程名>WITH<实参1>[,<实参2>,„] 格式2:DO <文件名>︱<过程名>(<实参1>[,<实参量2>,„])

§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 lExpression1] [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 eExpression TO IDXFileName|TAG TagName [OF CDXFileName] [FOR lExpresssion][COMPACT] [ASCENDING|DESCENDING] [UNIQUE|CANDIDATE] [ADDITIVE] §3.4.4 使用索引

命令格式:SET ORDER TO [ nIndexNumber | [TAG] TagName ] [ASCENDING|DESCENDING] §3.4.5 使用索引快速定位

Seek命令格式:SEEK eExpression [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 eExpression1 INTO nWorkAreca | cTabeleAlias

§3.8 排序

排序是将记录按需要的顺序重新排列,产生一个新的数据库文件,实现从物理上对数据库的重新排列。

物理排序: SORT TO TableName ON FieldName1[/A | /D] [/C] [, FieldName2 [/A | /D] [/C] „] [ASCENDING | DESCENDING] [FOR lExpression1] [ 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(eExpression1[,eExpession2,„])格式二:INSERT INTO dbf_name from ARRAY ArrayName | from memvar §4.3.2 更新数据

格式:UPDATE TableName

set Column_Name1=eExpession1 [,Column_Name2=eExpession2„] 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 lExpession1 [ ERROR cMessageText1]] [DEFAULT eExpession1] [PRIMARY KEY | UNIQUE] [REFERENCES TableName2 [TAG TagName1]] [NOCPTANS] [, FieldName2 „ ] [, PRIMARY KEY eExpression2 TAG TagName2 |, UNIQUE eExpession3 TAG TagName3] [, FOREIGN KEY eExpression4 TAG TagName4 [NODUP] REFERENCES TableName3 [TAG TagName5]] [, CHECK lExpression2 [ERROR cMessageText2]])| 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 lExpression1 [ERROR cMessageText1]] [DEFAULT eExpression1] [PRIMAY KEY | UNIQUE] [REFEENCES TableName2 [TAG TagName1]] 格式2为:

ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL|NOT NULL] [SET DEFAULT eExpression2] [SET CHECK lExpression2 [ERROR cMessageText2]] [DOP DEFAULT ] [DROP CHECK] 格式3:

ALTER TABLE TableName1 [DROP [COLUMN] FieldName3] [SET CHECK lExpression3 [ERROR cMessageText3]] [DROP CHECK] [ADD PRIMARY KEY eExpression3 TAG TagName2 [FOR lExpression4]] [DROP PRIMARY KEY ] [ADD UNIQUE eExpression4 [TAG TagName3 [FOR lExpression5]]] [DROP UNIQUE TAG TagName4 ] [ADD FOREING KEY [eExpression5] TAG TagName4 [FOR lExpression6] 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检索和操作数据库的两个基本工具或手段:查询和视图,它们都是根据基本表定义的,定义方式也类似,通过本章的学习要求掌握查询和视图的建立与使用方法。

本章作业:

上机练习课后习题三

教学后记:

第三篇:计算机二级《MySQL数据库程序设计》知识点总结

MySQL知识点总结

.数据操作:检索、排序、过滤、分组、汇总、计算、联接、子查询与组合查询.表操作:表的创建、修改、删除和重命名、表数据的插入、更新和删除.索引(含主、外键)、视图

.难度编程:存储过程与存储函数、触发器与事件、PHP.数据库管理:事务处理、用户与权限、备份与还原、数据库维护

1.检索数据:select„from„

Select [distinct] prod_id,prod_name from products [limit 4,5];2.检索排序:order by„

Select * from products order by prod_id [asc|desc],prod_name [asc|desc];3.过滤数据:where 字句

= <>!= >>= <<= between(1)普通where 字句

Select prod_id,prod_name from products where prod_name=’liyang’;Select prod_id,prod_name from products where prod_id between 10 and 50;Select prod_id,prod_name from products where prod_name is [not] null;(2)组合where字句:使用AND和OR连接多个条件表达式,且AND次序优于OR;(3)IN 与NOT操作符

Select prod_id,prod_name from products where prod_id [not] in(1,2,3)|prod_name in(’zhangsan’,’lisi’,’wangwu’);(4)LIKE操作符与通配符:“%”与“_”

Select prod_id,prod_name from products where prod_name like ’%liu%’;Select prod_id,prod_name from products where prod_name like ’_u%’;找出u位于名字的第二个位置的prod_id和prod_name。(5)正则表达式 4.计算字段

(1)拼接字段:concat(„,„)Select concat(姓氏,名字)as 姓名 from orders;Select concat(vend_name,’(’,vend_country,’)’)from vendors;(2)算术运算

Select prod_name,prod_price,prod_num,prod_price*prod_num as prod_money from products;4.使用数据处理函数:文本处理函数、日期和时间处理函数、数值处理函数。5.汇总数据:聚集函数 SUM()AVG()COUNT()MAX()MIN()Select avg(distinct prod_price)from products;Select avg(prod_price)均价,max(prod_price)最高价 from products;6.分组数据:group by„ 创建分组、过滤分组、分组排序

Select count(prod_id),prod_id from products where prod_id>1000 group by prod_id having count(prod_id)>2 order by prod_id;求出prod_id大于1000且产品数量大于2的产品数量,并按prod_id排序,注意分组语句中对象要前后一致,如下划线部分。7.使用子查询:进行过滤select„where„in(select„where„in(select„))、作为计算字段使用子查询。8.联接:join„on„(1)普通联接

Select oi.order_num,oi.prod_id,p.prod_name,p.vend_id,v.vend_name from orderitems oi join products p on oi.prod_id=p.prod_id join vendors v on p.vend_id=v.vend_id where vend_name=’liyang’;可同时联接多个表且可同时用于数据过滤,这种类型的联接一般为内部联接。

(2)自联接:一个表自己与自己联接,注意判断好各字段与前后两个表的关系。(3)自然联接:基本上简历的内部联接都是自然联接。

(4)外部联接:在关系表中没有关联的信息的行也能显示出来的联接,根据表在join字句的左边还是右边可分为左联接与右联接。(5)带聚集函数的联接

Select c.cust_id,count(o.order_num)num_ord from customers c join orders o on c.cust_id=o.cust_id order by c.cust_id;找出客户对应的订单数。

9.组合查询:连接多个(至少两个)查询语句,满足其中一个查询语句条件的结果都会显示出来 union(不重复显示)/union all(可重复显示即全部显示)Select vend_id,prod_id,prod_price from products where prod_price<=5 Union [all] Select vend_id,prod_id,prod_price from products where vend_id in(1001,1002)order by prod_id;注意每个查询必须包含相同的列、表达式或者聚集函数,列的数据类型必须兼容,排序语句只能放在最后面,该排序语句对组合查询语句中的所有select语句都适用。10.全文本搜索:只支持引擎为MyISAM的表,不支持引擎为InnoDB的表,可对搜索结果进行智能排序后输出,具有较高等级的行先返回。

Match(全文本搜索字段)against(’全文本搜索内容’[with query expansion])其中下划线部分为拓展语句,使用该语句,除了可以返回符合所设置的“全文本搜索内容”的数据结果,还可返回与“全文本搜索内容”有较高相似度的数据结果。(1)启用全文本搜索支持

Create table fs(id int not null primary key,c text,c1 text,fulltext(c,c1))engine=MyISAM;(2)进行全文本搜索

Select note_text from productnotes where match(note_text)against(’liyang’ with query expansion);11.插入数据:insert into„{values|select}„

Insert into products(prod_id,prod_name,prod_price)values(1,’豆浆’,2),(3,’鸡蛋’,1);可同时插入多行数据。

Insert into products(prod_id,prod_name,prod_price)select vend_id,vend_name, vend_price from vendors where vend_id<=10;12.更新数据:update [ignore]„set„,一般情况下,若更新的数据中有部分数据出错,则全部数据返回到原来的数据,而ignore的作用在于即使更新的数据中出现错误,只对出现错误的数据返回到原来数据,而未出现错误的数据返回更新后的结果实现更新。update products set prod_name='馒头',prod_price=1 where prod_id=1;update customers set cust_city=concat(cust_city,’市’)| cust_city =replace(cust_city,’市’,’city’)where cust_id>1000;13.删除数据:delete from„ Delete from products where prod_id between 10 an 50;14.表的相关操作

(1)创建表:对表结构进行设置create table„

Create table products(prod_id int null auto_increment primary key,prod_name varchar(50),prod_price int,prod_city varchar(50)default ’广州’)engine= InnoDB;每个字段名后需要设置数据类型,default为指定默认值,只支持常量不支持函数,且只在插入数据时起作用而在更新数据时不起作用,InnoDB是一个可靠的事务处理引擎,但不支持全文本搜索。

(2)更新表:对表结构进行修改 alter table {add|drop}„

Alter table products add prod_city varchar(50); Alter table products drop prod_price;(3)删除表:一旦删除,无法撤销 drop table„

Drop table products;(4)重命名表:rename table„to„

Rename table products to new_products;15.索引的相关操作

(1)创建索引:常用于数据的快速检索,MySQL中,常用索引在物理可分为:BTREE、HASH索引两类;在具体用途上可分为:INDEX、UNIQUE、PRIMARY KEY、FOREIGN KEY、FULL TEXT、SPATIAL等。

1使用create index 语句创建索引,对已存在的表创建索引 ○Create [unique|fulltext|spatial] index index_name [using BTREE|HASH] on tbl_name(index_col_name[,index_col_name„]);Create unique index index_products on products(prod_name(2)desc,prod_price);2使用create table 语句创建索引,创建表的同时创建索引 ○Create table seller(seller_id int not null auto_increment,seller_name char(50),seller_adress char(50),seller_contact char(50),product_type int,sales int,primary key(seller_id,product_type),[unique|fulltext|spatial] index index_seller(sales));3使用alter table语句创建索引,修改表的同时添加索引 ○Alter table tbl_name add {[unique|fulltext|spatial] index index_tbl_name(字段名)|primary key(字段名)|foreign key(字段名)references elsetbl_name(相同字段名)};(2)查看索引:Show index from tbl_name [where expr];(3)删除索引:drop index index_nameon tbl_name语句或alter table语句

Drop index index_name on tbl_name;Alter table tbl_name drop {[unique|fulltext|spatial] index index_tbl_name(字段名)|primary key(字段名)|foreign key(字段名)references elsetbl_name(相同字段名};(下划线部分不确定)16.视图的相关操作

视图:虚拟的表,视图本身不包含表中的列和数据,它包含只是一个SQL查询,常用于 检索数据。*视图的作用与规则。(1)创建视图:Create view view_name as select„[where„];Create view view_products as select prod_id,prod_name,prod_price,prod_num, prod_price*prod_num as prod_money from products where prod_id<=10 [with check option];--下划线部分表示今后对该视图数据的修改都必须符合prod_id<=10(2)查看视图(用法同表): select * from view_name;(3)删除视图:drop view view_name;17.完整性:实体完整性(主键与候选键)、参照完整性(主键与外键)、用户定义的完整性(非空约束与check约束)。

18.创建主键约束:create table语句或alter table语句

Create table products(prod_id int not null auto_increment primary key,c int);作为列的主键约束;

Create table products(prod_id int not null auto_increment,c int,c1 int,primary key(prod_id));作为表的主键约束,且复合主键职能用这种形式创建 Alter table products add primary key(prod_id);备注:实体完整性通过主键约束与候选键约束来实现,候选键约束的创建类似主键约束的创建,实质上同索引。

19.设置表外键:create table语句或alter table语句,外键中列的数目和数据类型必须与被参照表的主键中列的数目和对应数据类型一致。

alter table tbl_name add [constraint fk_name] foreign key(„)references„ Create table products(prod_id int not null auto_increment,c int,c1 int,foreign key(prod_id)references customers(prod_id));alter table products add constraint fk_products_cust foreign key(cust_id)references cust(cust_id);20.存储过程:为了以后的使用而保存的一条或多条SQL语句的集合

--建立存储过程:建立一个可通过输入item_id,输出对应订单总金额的存储过程->Delimiter //--改变分割符为//->create procedure ordertotal(in o_id int,out o_total decimal(10,2))过程名字输入参数及类型输出参数及类型->begin->select sum(item_price*item_num)from orderitems where item_id=o_id into o_total;->if o_total is null then->select ’不存在该订单号’;->end if;->end;->//--执行存储过程:当item_id=200005时,得出对应订单总金额->delimiter;--将分割符改回分号->call ordertotal(200005,@total);--由于不存在输出参数,故定义一个输出变量,变量必须用@开头->select @total;返回结果为149.87 备注:书本第十一章后的编程题,使用update语句,两个参数类型都需要为in。--显示存储过程->Show create procedure ordertotal;--删除存储过程

->Drop procedure ordertotal;21.存储函数

存储函数与存储过程的区别:.存储函数不能拥有输出参数;.存储函数可直接调用,且不需使用call语句,而存储过程的调用必须使用call语句;.存储函数中必须包含一条return语句,而这条特殊的SQL语句不允许包含于存储过程。--建立存储函数:根据给定的cust_id返回客户所在的州名(缩写),若库中无给定的cust_id,则返回“不存在该客户”。->delimiter //->create function fn_search(c_id int)->returns varchar(50)--定义返回的数据类型,与函数部分中的数据类型需统一,如函数中的“不存在该客户”为6个字符,如果这里设置为char(5),则无法输出该结果->deterministic– 表示对于相同的输入值,返回值也相同->begin->declare state char(2);--声明一个变量state,作为输出的州变量->select cust_state from customers where cust_id=c_id into state;->if state is null then->return(select ’不存在该客户’);--注意这里return不用加s->else->return(select state);->end if;->end;->//--执行存储函数

->select fn_search(10001);--删除存储函数

->drop function fn_search;--删除前要确定该函数无依赖关系,即不存在其他存储过程或存储函数调用过该存储函数。

22.触发器:MySQL响应insert、delete、update语句时自动执行的一条MySQL语句,创建触发器时需要给出的4条信息:唯一的触发器名、触发器相关的表、触发器应该响应的活动(insert delete、update)、触发器何时执行(处理前或处理后)。

(1)insert触发器:当对表插入数据时起作用,含有一个虚拟表New,可访问增加的行,只能用after--建立一个insert触发器,用于记录insert语句操作时的系统时间和插入的order_num->delimiter //->create trigger trg_order_insert after insert on orders for each row 触发器 触发器名 执行时间 相关表->begin->insert into order_log(o_date,order_num)values(now(),new.order_num);--order_log是事先建立好的表,用于记录insert语句操作时的系统时间和插入的order_num->end;->//--执行insert触发器->delimiter;->insert into orders(order_date,cust_id)values(’2010-9-15’,10001);--由于order_num是自动递增的,故在这里不作为插入对象(2)delete触发器:当对表删除数据时起作用,含有一个虚拟表Old,可访问被删除的行,只能用after,创建方法与insert类似,区别在于delete和old--建立一个delete触发器,用于记录delete语句操作时的系统时间和删除的order_num->delimiter //->create trigger trg_order_delete after delete on orders for each row 触发器 触发器名 执行时间 相关表->begin->insert into order_log(o_date,order_num)values(now(),old.order_num);--order_log是事先建立好的表,用于记录delete语句操作时的系统时间和删除的order_num->end;->//--执行delete触发器->delimiter;->delete from orders where order_num=20010;(3)update触发器:当对表修改数据时起作用,同时含有new和old两个虚拟表。结合New可访问更新行的记录;结合old可访问更新前行的记录,可用after,也可用before。1用after ○--建立一个update触发器,用于记录update语句操作时的系统时间和更新数据的order_num->delimiter //->create trigger trg_order_update after update on orders for each row 触发器 触发器名 执行时间 相关表->begin->insert into order_log(o_date,order_num)values(now(),old.order_num);->end;->//--执行update触发器->delimiter;->update orders set order_date=’2015-9-18’ where cust_id=10001;2用before ○--建立一个update触发器,如果更新后的prod_price大于原来的1.2倍,则用原来的1.2倍作为当前价格->delimiter //->create trigger trg_order_update before update on orders for each row 触发器 触发器名 执行时间 相关表->begin->if new.prod_price>old.prod_price*1.2 then->set new.prod_price=old.prod_price*1.2;->end if;->end;->//(4)删除触发器:drop trigger trg_name;23.事件:临时触发器,要使用事件调度器,必须开启“event_scheduler”.查看:show variables like ’event_scheduler’;.开启:set global event_scheduler=1;(1)创建事件

CREATE EVENT EVENT_NAME ON SCHEDULE schedule DO event_body;其中schedule的语法格式为

AT timestamp [+INTERVAL interval]„|every interval--指定事件执行的时间,可以为某时刻点即timestamp,或某时刻点开始的interval时间后,或者为每隔interval时间执行一次

[starts timestamp [+INTERVAL interval]]--设置事件开始执行的时间 [ends timestamp [+INTERVAL interval]]--设置事件终止执行的时间

--建立一个事件,用于每个月向customers表中插入一条数据“liyang、广州”,该事件从下个月开始并于2015-12-31结束->delimiter //->create event event_insert on schedule every 1 month->starts curdate()+interval 1 month->ends ’2015-12-31’->do->begin->if year(curdate())<2015 then->insert into customers(cust_name,cust_adress)values(’liyang’,’广州’);->end if;->end;->//(2)修改事件,用于修改时间的状态:alter event event_name{enable|disable};(3)删除事件:drop event event_name;24.管理实务处理:start transaction„

实务处理的术语:

(1)实务(transaction):一组SQL语句;(2)回退(rollback):撤销指定SQL语句的过程;(3)提交(commit):指定未存储的SQL语句结果写入到数据库表里,提交后无法回退;(4)保留点(savepoint):实务处理中设置的临时占位符。

25.安全管理(用户创建修改与删除以及用户权限的查看设置与撤销)(1)创建用户账号:create user ben identified by ’ben’;(2)修改用户账号:update mysql.user set user=’new_ben’ where user=’ben’;--从mysql数据库中的用户表user进行修改(3)查看访问权限:show grants for new_ben;(4)设置访问权限:grant„to„.grant {all|select,update,delete,insert}on {*.*|crashcourse.*|crashcourse.cus tomers} to new_ben;.grant select(cust_id,cust_name)on crashcourse.customers to new_ben;--可针对{整个服务器|整个数据库|数据库中某个表|数据库中某个表的某些字段},对用户同时设置全部或一种或多种权限

(5)撤销访问权限:revoke„from„,用法与grant„to„类似(6)更改口令(密码)

Set password for new_ben=password(’new_ben’);(7)删除用户:drop user new_ben;26.数据库备份与还原.使用SQL语句

backup table tbl_name to„/restore table tbl_name from„(只用于MyISAM表)select„intooutfile„/load data„infile„into table tlb_name.使用命令行实用程序:mysqlhotcopy(只用于MyISAM表)或mysqldump/mysql(1)使用select„intooutfile„/load data„infile„into table tlb_name.备份数据:

Select * from mysql.products into outfile ’d:products.txt’ [Fields terminated by ’,’ optionally enclosed by ’”’

lines terminated by ’nr’;--定义字段间的分割符、字符型数据的存放形式、行与行之间的分割符.恢复数据

Load data infile ’d:products.txt’into table customers.copy [Fields terminated by ’,’ optionally enclosed by ’”’

lines terminated by ’nr’;--必须与备份时一致(2)使用命令行实用程序mysqldump/mysql(文本形式)

进入cmd运行界面(mysqldump—help 可用于获取mysqldump的选项表及更多帮助信息).备份整个数据库服务器、或整个数据库或数据库中某个表

Mysqldump –u root –proot –P 3306 –h localhost {all-databases|mysql_test [products]}>d:data.sql.恢复数据

Mysql –u root –proot –P 3306 –h localhost {all-databases|mysql_test [products]}

(1)analyze table tbl_name;更新表的索引散列程度,检查表键是否正确(2)check table tbl_name;检查一个或多个表是否有错误

(3)checksum table tbl_name;对数据库中的表进行校验,保证数据的一致性

(4)optimize table tbl_name;利用表中未使用的空间并整理数据文件碎片,保证数据读取效率

(5)repair table tbl_name;修复一个或多个可能被损害的MyISAM表 28.二进制日志文件的使用:mysqlbinlog

29.使用PHP进行MySQL数据库编程 编程步骤:

.首先建立与MySQL数据库服务器的连接;.然后选择要对其进行操作的数据库;

.再执行相应的数据库操作,包括对数据的添加、删除、修改和查询等;.最后关闭与MySQL数据库服务器的连接。(1)数据库服务器连接、选择数据库

.使用mysql_connect()建立非持久连接 ”;die();} echo “数据库服务器连接成功!
”;?> //将connect.php部署在已开启的WAMP平台环境中,并在浏览器地址中输入“http://localhost/connect.php”

.使用mysql_pconnect()建立持久连接 ”;echo “用户名:root
”;echo “使用函数mysql_pconnect()永久连接数据库。
”;?>

.使用mysql_select_db(databases[,connection])选择数据库 ”;die();} mysql_select_db(“mysql_test”,$con);if(mysql_errno()){ echo “数据库选择失败!
”;die();} echo “数据库选择成功!
” ?>(2)数据的添加、更新和删除操作,mysql_query(SQL语句[,connection]),insert、update、delete语句可置于函数mysql_query()中从而实现数据的添加、更新和删除操作.数据的添加

/*向数据库mysql_test中的表customers添加一个名为“李中华”的客户的全部信息*/ ”);Mysql_select_db(“mysql_test”,$con)or die(“数据库选择失败!
”);Mysql_query(“set names ’gbk’”);//设置中文字符集

$sql=“insert into customers(’cust_id’,’cust_name’,’cust_sex’)”;$sql=$sql.“values(null,’李中华’,’M’)”;if(mysql_query($sql,$con))echo “客户信息添加成功!
”;else echo “客户信息添加失败!
”;?>

.数据的更新

/*将数据库mysql_test的表customers中的一个名为“李中华”的客户的地址修改为“广州市”*/ ”);Mysql_select_db(“mysql_test”,$con)or die(“数据库选择失败!
”);Mysql_query(“set names ’gbk’”);$sql=“update customers set cust_address=’广州市’”;$sql=$sql.“where cust_name=’李中华’”;if(mysql_query($sql,$con))echo “客户地址修改成功!
”;else echo “客户地址修改失败!
”;?>

.数据的删除

/*将数据库mysql_test的表customers中一个名为“李中华”的客户信息删除*/ ”);Mysql_select_db(“mysql_test”,$con)or die(“数据库选择失败!
”);Mysql_query(“set names ’gbk’”);$sql=“delete from customers”;$sql=$sql.“where cust_name=’李中华’”;if(mysql_query($sql,$con))echo(“客户信息删除成功!
”);else echo(“客户信息删除失败!
”);?>

(3)数据库的查询

.使用mysql_fetch_array(data[,array_type])读取结果集中的记录

/*在数据库mysql_test的表customers中查询cust_id为916的客户的姓名*/ ”);Mysql_select_db(“mysql_test”,$con)or die(“数据库选择失败!
”);Mysql_query(“set names ’gbk’”);$sql=“select cust_name from customers”;$sql=$sql.“where cust_id=916”;$result=mysql_query($sql,$con);if($result){ echo “客户查询成功!
”;$array=mysql_fetch_array($result,MYSQL_NUM);if($array){ echo “读取到客户信息!
”;echo “所要查询客户的姓名为:”.$array[0].“
”;} else echo “未读取到客户信息!
”;} else echo “客户查询失败!
”;?>

.使用mysql_num_rows(data)读取结果集中的记录数

/*在数据库mysql_test的表customers中查询女性客户的人数*/ ”);Mysql_select_db(“mysql_test”,$con)or die(“数据库选择失败!
”);Mysql_query(“set names ’gbk’”);$sql=“select * from customers”;$sql=$sql.“where cust_sex=’F’”;$result=mysql_query($sql,$con);if($result){ echo “查询成功!
”;$num=mysql_num_rows($result);//如果结果为空,则为0行 echo “所要查询的女性客户人数为:”.$num.“位
”;} else echo “查询失败!
”;?>

第四篇:浅谈Visual FoxPro数据库程序设计教学(刘杰)

浅谈Visual FoxPro数据库程序设计教学

重庆市工艺美术学校 刘 杰

[关键词]

案例教学 多媒体课件教学

探究式教学 互动式教学

问题驱动法

[摘要] VISUAL FOXPRO程序设计语言作为中职学生入学后的首门数据库语言课程,但目前采用的还是传统的以教师为主体的课堂讲授方式,教学质量及教学效果不是很理想。本文从教学方法、上机实验、考试考核几个方面对VISUAL FOXPRO语言的教学进行了探究,力求找到好的方法来提高本课程的教学质量。

一、引言

《VISUAL FOXPRO数据库程序设计语言》是中职计算机专业中一门重要的专业课程,而且它作为中职升学高职的一门高考课程,非常重要。它作为学生入学后第一次系统地学习与高级程序设计语言和程序设计有关的内容的一门新课程,加之教科书内容抽象化,牵涉到的概念比较复杂,规则较多,使用灵活,容易出错,在实际的教学中反映出很多问题,再加上授课一般以VISUAL FOXPRO数据库操作为主,VISUAL FOXPRO的操作界面很不直观,使学生不容易理解。因此,尽管VISUAL FOXPRO数据库语言有实用价值,但生涩的教学内容,不易引起学生的学习兴趣,如果不讲究教学方法,则难以达到课程的预期目标。因此,为了提高教学质量,使学生从枯燥乏味中走出来,教师必须利用现有资源重新整合教学内容,改进单

一、乏味的教学方法,力求显现在学生面前的知识有趣而生活化,以提高学生的学习兴趣及学以致用的能力。以下几点是对VISUAL FOXPRO数据库语言程序设计教学的探索:

二、采用案例教学法,培养学生的兴趣和积极性

VISUAL FOXPRO程序设计是应用性很强的一门课程它既有理论又有实践,既讲方法又讲动手能力。一般来说,教材中前几章都是先介绍VISUAL FOXPRO程序设计语言的一些概念和基础知识,然后才介绍程序的建立和运行。这些概念和基础知识,既枯燥又比较抽象难懂。在教学中,我们打破课本原有的顺序组织课堂教学的方式的逻辑结构体系,改用从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和概念的延伸,让学生在轻松愉快的气氛中学习新知识。

案例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,而是以精选出的程序设计的案例为中心,把学习的重点放在具体案例的讲述上,把要学习的语法和概念融

1/4 入到具体案例中来讲解。整个教学过程中强调在应用中学习,从而避免了枯燥的理论说教,不仅能增进学生的学习兴趣,而且对提高学生综合分析和解决实际问题的能力也大有帮助。那么该如何培养学生对VISUAL FOXPRO语言课程的兴趣呢?案例教学法是培养学生学习兴趣的有效途径之一。

三、加强多媒体教学方式的使用

多媒体教学作为一种新型的现代教育技术有很多优点:它集授课、习题、演示等功能为一体,具有生动、形象、直观的特点。教师在教学过程中应利用各类计算机软件,根据所教学生的特点,制作出高水平的VISUAL FOXPRO语言程序设计多媒体课件。

如采用以PowerPoint幻灯片或Authorware来制作的多媒体课件展现知识点并辅以Flash动画演示程序的动态执行过程的方式,使学生对所学知识的理性认识和感性认识有机的结合起来,有助于学生更好地理解和掌握所学内容,激发学生学习的主动性。但是也不能过于依赖课件,教师如果自始至终坐在讲台前,始终以课件授课,难以达到好的教学效果。教师必须在使用课件的同时,穿插使用黑板板书,将重要知识的演绎过程强调出来。同时将课堂教学和网络教学相结合,制作适合自学的网络版课件,发布到课程建设网络平台或校园网上。该课件应层次结构清楚,较之课堂用教学课件内容更加全面、详细,使用学生能够自由选择章节进行下载学习。

多媒体课件主要包括课程内容、算法演示、在线测试、在线讨论以及资源中心五部分功能。多媒体课件可以提供交互式环境供学生学习,并自动根据操作过程进行实时评价。将多媒体课件和教师课堂讲授有机地结合起来,能形成最佳教学任务的综合性手段与教学方案。

四、把握课堂教学方法,提高课堂教学质量

在课堂上教师的着眼点应放在引导学生走向知识,而不是带着知识走向学生,在预设的问题情境中不要急于将结论告诉学生,应让学生经历知识形成过程,提高问题解决的能力。VISUAL FOXPRO程序设计语言的知识体系是一个循序渐进的过程,先后的知识点相关性很大,语句简洁、紧凑,语法限制不太严格,程序设计自由度大。在系统的教学过程中,大部分学生的语法掌握得还是比较好的,但是当涉及到稍为复杂的实际编程问题时,可能还是显得困难,他们面对一个问题,往往心中只有一些模糊的想法,而无法写出具体的程序。这是目前VISUAL FOXPRO语言教学中普遍存在的问题。针对这种情况,我们可以从以下几个方面来解决:

第一、淡化语法、突出算法讲解。注重介绍有关算法概念,即突出程序设计而不是语法。

2/4 在掌握了基本而常用的语法之后,可以根据学习的进度和程序设计的需要学习相关语法。学习新的程序设计语言的最佳途径是编写程序,不是知道的语法越多,程序编得越好,而是自己动手编程越多,编程水平才越有可能得到提高。突出算法,进而带动基本语法的学习,可以更加合理地分配学习时间。

第二、加强程序阅读能力的培养。学生阅读程序的过程也是为程序设计打基础的过程。教学中教师通过例题讲解,使学生逐步理解和掌握语句的格式、功能等,同时也是在为学生学习程序设计作铺垫,教师应有意识地在讲解过程中向学生渗透程序设计的思想和方法,引导学生从模仿开始,逐步过渡到独立进行程序设计。

第三、转变学习方式,提高学生学习兴趣。转变学习方式,实际上是改变一种习惯,即由过去的传授式学习变为自主、合作、探究式学习。为了达到这个目的,就要求教师在讲授知识的时候根据教学内容和学生的实际情况采用多种教学方式进行教学,将教师的“主体”性逐渐削弱,向“主导”过渡,创设和谐的学习氛围。

五、加强实验环节的教学设计,辅助理论教学

VISUAL FOXPRO语言程序设计是一门实践性很强的课程,上机也是整个教学的重要组成部分,因此必须抓好实验教学环节。在上机作业的布置中,既要有基本的较简单的题目,又要有一些具有挑战性的新颖有趣的题目,把它们分作必做题和选做题,这样既可以使每一个学生都能达到满足,又充分地调动了他们的积极性和创造性,以及对VISUAL FOXPRO语言学习的兴趣。

第一、在实验教学大纲的指导下,根据所学知识点选择有代表性的、综合的问题让学生进行编程、调试。在实验开始前要让学生对实验作充分的准备,预习实验内容,明白实验原理和实验目的。实验前应该将实验所涉及的知识点的重点和难点告知学生。在实验过程中针对不同的学生有侧重点的加以指导,在指导的过程中要注意锻炼学生独立思考问题的能力,启发学生的想象力。实验完毕后,每个学生都应对实验用到的知识点进行回顾,总结实验过程中遇到的问题和问题的解决方法。

第二、注重培养学生调试程序的能力。对于简单问题,直接编写出正确的代码是完全可能的,但是大多数问题的解决方案往往都是比较复杂的,而且代码需要不断修改完善,因此调试程序的能力是至关重要的。

第三、培养学生动手能力和独立思考能力。实验时,重点让学生自己动手,学生有问题,尽量给予提示,启发学生自己思考解决问题。指导学生要针对学习任务,依据学习规则,详细设计实习步骤,充分发挥学生的主观能动性,鼓励学生主动对学习的程序、函数、工具及

3/4 方法进行有效操作,从而提高学习质量和效率。

六、合理安排考试考核,注重学生知识的全方位掌握

VISUAL FOXPRO语言程序设计课程的考核应分为闭卷理论考试和上机考试,重点考核学生的程序阅读能力和编写能力。闭卷考试主要考查学生的基本知识、阅读程序和编程能力。考试题型可包括:概念选择、读程序写结果、程序代码填空、程序改错、编写程序题等。在考题内容上注意严格按照教学大纲的要求覆盖各知识点,各知识点的定位重点在基本概念而不是语法细节。

上机考试主要让学生在规定的时间内完成给定的上机题目,重点测试考生调试程序、程序改错、编写程序等综合能力,偏重实际应用性强的题型,编程题灵活多样,或编完整的一个程序,或补充程序的部分函数,重在考核典型算法的应用。平时成绩也要在总成绩中占一定的比例,这样有利于学生对平时作业的重视。

七、结束语

VISUAL FOXPRO语言程序设计课程的教学涉及到诸多方面的因素,需要我们不断地探索新的教学方法和教学模式,激发学生学习该课程的兴趣,使学生不但掌握高级编程语言的知识、编程技术和基本算法,更重要的是掌握程序设计的思想和方法,具备利用计算机求解实际问题的基本能力,只有这样才能达到我们教学的真正目的。

参考文献:

[1] 张小莉,李盛瑜,代秀娟 编,VISUAL FOXPRO语言程序设计,科学出版社有限责任公司

[2]张小毅,数据库基础及应用——VISUAL FOXPRO操作基础及应用,重庆大学出版社 [3] 卢湘鸿,Visual FoxPro 6.0数据库与程序设计(第3版),电子工业出版社

4/4

第五篇:程序设计教学总结

程序设计教学工作总结

在一学期的教学工作中,本人能坚持党的教育方针,认真学习国家的各种法律法规,严格要求自己,努力培养自己的职业道德修养与正确的行为规范,在实际的工作岗位上尽职尽责,自始至终以认真、严谨的治学态度,勤恳、坚持不懈的精神从事教学工作。

为了上好这门课,我按照规范教学规范管理严格要求自己,深入研究教学大纲,认真钻研教材,精心设计教法,认真备写教案,精选典型试题,强化训练,力争在有限的时间,使每一堂课的教学优质高效。重视实践性教学,耐心进行辅导,认真批改和及时评讲作业。广泛涉猎各种知识,形成比较完整的知识结构,严格要求学生,尊重学生,发扬教学民主,使学生学有所得,不断提高,从而不断提高自己的教学水平和思想觉悟,并顺利完成教育教学任务。

在教学中,我采用案例教学法,将抽象的程序设计知识,以一个个实用案例的形式呈现给学生,符合学生

认知规律。学生课堂纪律较好,部分学生参与度较高;学生积极就练习过程中问题提问,学习积极性较高,课堂气氛活跃。本门课程达到教学目标,教学效果良好。

在过去的教学工作中,自己虽然取得了一些成绩,也积累了一些教学经验,但在理论与实践相结合的教学方法中还有待进一步提高。今后,我要更加努力地提高教学质量,成为真正让学生满意的教师。

下载《Visual FoxPro 数据库程序设计》教学总结word格式文档
下载《Visual FoxPro 数据库程序设计》教学总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数据库试题及答案很好的程序设计

    笔试样卷一 参考答案 一、简答题(25分) 2.设有三个关系 S (SNO, SNAME, AGE, SEX, SDEPT) SC (SNO, CNO, GRANDE) C (CNO, CNAME, CDEPT, TNAME) 试用关系代数表达式表示下列查......

    《VFP数据库程序设计》课程改革总结报告

    课程改革 《VFP数据库程序设计》课程改革总结报告 根据国家教委的统一规定,目前初、高中都开设了《信息技术》课程,只不过学习的深度和广度不够,且个别地区存在着一些差异。进......

    数据库程序设计---教务辅助管理系统

    数据库设计实例 教务管理系统 数据库实验七 数据库设计 题目要求: 设计一个教务管理系统。要求管理包括:学生的档案,学生选课的情况,学生每学期的综合测评,教师档案,教师工作量等......

    程序设计总结

     Strcmp的用法 原型:extern int strcmp(const char *s1,const char * s2); 用法:#include 功能:比较字符串s1和s2。 说明: 当s10 即:两个字符串自左向右逐个字符相比(按ASCII值大......

    数据库总结

    数据库老师画的重点 数据库:数据库是长期存储在计算机内、有组织、可共享的大数据集合。 数据库操纵功能:查询select、插入insert、删除delete、修改update 数据库系统的特点:1......

    数据库总结

    数据库总结:共三天的课程 数据库的概念:数据库是一组有序的数据的集合; 数据库的作用:为了有效的管理数据; 数据类型: 一 字符串相关的类型:一般用于人名、大于2147483647(10位数)的......

    程序设计期中考总结[定稿]

    1.Von Neumann提出存储程序计算机模型; 2.存储程序结构特点:以运算器为核心;采用存储程序原理(指令和数据都在存储器);存储器按地址访问的、线性编址的空间;控制流由指令产生;指令由......

    C++程序设计总结

    第一章面向对象编程原理 近五十年间,软件技术经历了多个阶段的发展演变  目前为止最流行的技术还是面向过程编程(POP)  面向过程编程采用了自顶向下的设计方案,问题被看做多个......