VF基础
VF基础知识总结(1-8章)
11.MIN()函数字符函 Nhomakorabea:日期时间函数:
1.LEN()函数
1.DATE()函数
2.LOWER()函数
2.TIME()函数
3.UPPER()函数
3.DATETIME()函数
4.SPACE()函数
4.YEAR()函数
5.TRIM()函数
5.MONTH()函数
6.LTRIM()函数
6.DAY()函数
小结:排序与索引的区别
1、排序要执行两次,按关键字和记录号,要打开表;而索引只执行一次,按关 键字,不需要打开表;
2、排序生成一个新表,索引是针对原表生成一个指针文件 3、升降序的表示与书写方式不同:排序/a升序/d降序/c不区分大小写,索引 ascending和descending。 4、排序与索引的to的含义不同,排序的to 表示到一个新表,索引的to表示建立 单索引文件。
3、各类文件选项卡: ①“全部”选项卡(以下五项的全部内容) ②“数据”选项卡(数据库、自由表、查询、视图) ③“文档”选项卡(表单、报表、标签) ④“类”选项卡 ⑤“代码”选项卡 ⑥“其他”选项卡
第二章 数据与数据运算
1、字段数据类型(11种)
字符型
C
数值型
N
逻辑型
L(1)
日期型
D(8)
日期时间型 T(8)
****************************************************************** 小结:
1、用use 打开表时,记录号位于第一条记录 2、执行带all的命令,记录指针指向eof()=.T. 3、当为.T.时,bof的记录号总是为1,eof的记录号是记录数+1 4、空表的总记录是0,bof的记录号是1,eof的记录号是1
第一章vf基础
第一章vf基础第一节:知识点:数据信息程序符号含义加工处理数据20 一个学生年龄20岁电影 ----> 暴风影音---->画面,声音数据程序信息考点:一。
计算机管理数据三阶段1:人工阶段数据不具有共享性、独立性2:文件系统阶段数据与程序有一定的独立性、共享性3:数据库系统阶段共享性很高,独立性高,采用特定的数据模型,统一管理控制二。
概念分清关系数据库db 数据库管理系统dbms 数据库应用系统数据库系统ds数据库系统有5部分:数据库,数据库管理系统,程序,数据库管理员,用户核心是数据库管理系统知识点:实体属性实体集实体型考点: 联系一对一一对多多对多数据模型:层次模型网状模型关系模型一对多多对多二维表第二节:关系知识点:术语关系-二维表关系模式--- 实体型元组--行--实体属性--列--字段关键字学生(学号,姓名,年龄,性别。
)学号成绩(学号,课程号,成绩)学号+课程号课程(课程号,课程名,学分)外部关键字域实际关系模型:表示联系1:通过公共字段一对一:在两个表中都是关键字一对多:一方表中是关键字,在多方表中是外部关键字 2:纽带表多对多:包含那两个表中的公共字段考点:vf是关系型数据库管理系统关系特点,关系运算:传统(了解)专门(掌握)选择,投影,连接,自然连接第二章程序设计基础标点符号必须是英文2.1常量:格式数据类型:字符‘张三’ "张三" [张三],如果一种定界符作为字符内容,必须用另一种不同的定界符"'abc'" ['abc'] '"abc"' ["abc"]错误:''abc'' ""abc"" [[abc]]一个汉字长度相当于两个字符 "abc" 3个字符 "张三" 4个字符数值 50 600 1500货币 $50 $800日期 {^yyyy/mm/dd} {^2005/10/25}相关命令设置日期输出的格式set mark to 日期分隔符号 set mark to "-"set dato to ymd|mdyset century on :4位年份set century off :2位年份set century to 世纪值 rollover 年份参照值如果日期中两位年份<年份参照值,所处世纪为指定的世纪值加1如果日期中两位年份>=年份参照值,所处世纪为指定的世纪值set century to 18 rollover 3010/25/09 --->{^1909/10/25}10/25/50 --->{^1850/10/25}日期时间 {^2000/10/27,10:30:20am} {^2000/10/27 10:30:20am}{^2000/10/27,10:30:20pm} {^2000/10/27 10:30:20pm}逻辑 .T. .F.变量:成绩表:学号课程号成绩当前行 10111 201 6010112 301 90.......操作:use 成绩:打开成绩表,默认的第一行是当前行,会自动建立学号,课程号,成绩三个字段变量学号="abc" : 创建了一个内存变量学号?学号:输出10111? m.学号:输出abc建立:变量的类型由值的类型决定的,不固定。
vf数据库基础知识习题与答案
第一章 VF 基础知识、选择题2. 数据库系统的核心是 ___ 。
A) 数据库管理系统C) 数据3. VFP 是一种 _____ 数据库管理系统A) 层次型 C) 关系型4. 支持数据库各种操作的软件系统是 _A) 数据库系统 B) 操作系统C) 数据库管理系统 D) 命令系统5. 在关系模型中,从表中选出满足条件的记录的操作称为A) 连接 B) 投影C) 联系 D) 选择6. 数据库系统与文件系统的主要区别是 __ 。
A) 文件系统只能管理程序文件,而数据库系统可以管理各种类型的文件B) 文件系统管理的数据较少,而数据库系统能管理大量数据C) 文件系统比较简单,数据库系统比较复杂D) 文件系统没有解决数据冗余和数据独立性问题,而数据库系统解决了 这些问题7. 在关系运算中,选择的操作对象是 __ ;投影的操作对象是 __ _;连接的操作对象是 __ 。
A) 一个表;一个表;两个表B) 一个表;两个表;两个表C) 一个表;一个表;一个表D) 两个表;一个表;两个表8. 在关系数据库中,基本的关系运算有三种,它们是 。
A) 选择、投影和统计 B) 选择、投影和连接C) 排序、索引和选择 D) 统计、查找和连接9. VFP 是一种关系型数据库管理系统,所谓关系是指 。
A) 表中各个记录之间的联系B) 数据模型满足一定条件的二维表格式C) 表中各个字段之间的联系D) 一个表与另一个表之间的联系10. 一个仓库里可以存放多个部件,一种部件可以存放于多个仓库,仓库与 部件之间是 的联系。
1. 在一个二维表中,行称为 A) 属性;元组 ,列称为 ____ 。
B) 元组;属性B) 数据库 D) 数据库应用系统 B) 网状型A) 一对一C) 一对多11. 自然连接要求被连接的两关系有若干相同的B) 多对一D) 多对多______12. 数据库类型是根据 A) 文件形式 C) 数据模型 13. 关系是指 ___ A) 元组的集合 C) 属性的集合 14. 对于关系 S (S1, S2, S3, S4),写一条规则,把其中 S2 的属性限制在10-20 之间,则这条规则属于 _ 。
VF数据库基础
【例1】数据库技术的根本目标是要解决数 据的______。(2006年9月)
A)存储问题 B)共享问题 C)安全问题 D)保护问题
【例2】数据库DB,数据库系统DBS,数 据库管理系统DBMS之间的关系是______。 (2006年4月)
A)DB包含DBS和DBMS B)DBMS包含DB和DBS C)DBS包含DB和DBMS D)没有任何关系
1.3 数据库设计基础
(5)设计求精
① ② ③ ④
⑤
⑥
是否遗忘了字段? 是否存在大量空白字段? 是否有包含了同样字段的表? 表中是否带有大量不属于某实体的字段? 是否在某个表中重复输入了同样的信息? 是否为每个表选择了合适的主关键字?
1. 数据库的基本概念
①
②
DBMS的功能: 数据管理的功能(定义、操纵、控制、维护以及 数据字典) 开发应用系统的功能(如学生管理系统、图书借 阅管理系统等等) 常见的DBMS
针对数据库的关系运算 选择、投影和连接
选择运算
从指定的关系中选择满足给定条件的元组 组成新的关系。
[例] 从关系S中选择男生元组组成新的关系S1
投影运算
从指定关系的属性集合中选取若干个属性组
成新的关系。
[例] 从关系S中选择“姓名”、“性别”属性组成新的关系S2
连接运算
自然连接:
两个关系中的元组按相同的字段相等组合新的关系
第一章 Visual FoxPro 数据库基础
本章内容
1.1 数据库基础知识 1.2 关系数据库 1.3 数据库设计基础 1.4 VF系统概述 1.5 项目管理器 1.6 向导、设计器、生成器
第二章 VF基础
二、常量与变量
(一)常量
在命令或程序中直接引用的,其值固定不变的数据。
1、字符型常量 例:‘中国’、‚ABC”、 [123] 2、数值型常量 例:-123.56,789 3、浮点型常量
例:-123e+4
4、逻辑型常量 真:.T. .t. .Y. .y.
假:.F.
.f.
.N.
.n.
5、日期型与日期时间型常量 1)赋值方法 传统格式日期常量: 日期型 严格格式日期常量:{^1999/05/05} 日期时间型: {^1999/05/05 9:30:00 a} (1)传统的日期格式为{mm/dd/yy}或者{mm/dd/yyyy} 。 (2)严格的日期格式:{^yyyy-mm-dd}可以在任何 情况下使用, 而传统的日期格式只能在 SET STRICTDATE TO 0下使用。
汉字
同类字符顺序递增
拼音
比较规则 > < >=
<=
从关系运算符的左边开始
例: ?“ab”<“abc”,“1234”<“ABCD”
? “地方‛<“中央‛ = != 从右串开始比较,比较完则完。 例:?‚ab”=“abc” ?‚abc”=“ab” == 两串完全相同,结果才为真 例:?‚abc”==“ab” ?‛ABC”==“ABC”
设置精确比较环境:
set exact on/off
$ 左边字符串是否包含在右边字符串中 例: ‚ab”$ “acdabde” “ab”$ “aceebe”
说明:A用双等号==时只有当两个字符串完全相同时运算结果才是逻辑真,否则为逻辑假。
B用单等号=时运算结果与SET EXACT 的设置有关。系统默认为OFF,字符串的比 较以右边的字符串为目标,右字符串结束即终止比较。当处于 ON时,先在较短 的字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行比较。
VF程序设计基础
第二章 Visual FoxPro程序设计基础
功能: ①格式1表示清除所有内存变量。 ②格式2表示清除指定的内存变量。 ③格式3表示清除所有的内存变量。在人机会话状态时 其作用与格式1相同。如果出现在程序中,则应该加 上短语ENTENDED,否则不能删除全局内存变量。 ④格式4表示选用LIKE短语清除与通配符相匹配的内存 变量,选用EXCEPT短语清除与通配符不相匹配的内存 变量。
第二章 Visual FoxPro程序设计基础
1.简单的内存变量 变量都有名,通过变量名来使用变量中存放的数 据(访问变量值)。 向简单内存变量赋值不用先定义,赋值时变量不 存在将自动产生。有两种赋值格式: ① <内存变量名>=<表达式> ② STORE <表达式> TO <内存变量名表> ●等号一次给一个变量赋值。STORE 命令可以同时给多 个变量赋相同值,变量名间用逗号隔开。
第二章 Visual FoxPro程序设计基础
③SET CENTURY ON | OFF | TO [ 世纪值] ROLLOVER [年份参照值] 命令功能:用于决定如何显示或解释一个日期数据 的年份。ON显示世纪,即用4位数字表示年份。 OFF不显示世纪,即用2位数字表示年份。该项是 系统默认设置。 ④SET STRICTDATE TO [0|1|2] 命令功能:用于设置是否对日期格式进行检查。 0:不进行严格的日期格式检查。 1:进行严格的日期格式检查。为系统默认设置。 2:进行严格的日期格式检查,并且对CTOD和CTOT 函数的格式也有效。
VF基础知识解析
而打开关闭而关闭,一个表中可以有多个结构复合索引
表设计器的复合索引类型:
类型 个数 是否有重复值 建立方式
主索引 一个 不允许有重复值或空值 表设计器
(2)常用工具栏-打开
(3)命令 use <表名> use f:\董双双\学生信息表 要在独占方式下
(4)数据工作期窗口-打开
2.关闭(当前表)
(1)命令 use
(2)数据工作期窗口-关闭
3.进入当前表的表设计器
(1)菜单-显示-表设计器
(2)命令 modify structure
4.浏览当前表的信息
(1)数据工作期窗口-浏览
(2)菜单-显示-浏览
(3)命令 browse
5.修改表中的记录
(1)直接修改
(2)插入 insert [blank][before] (当前记录之前)
(3)追加 append [blank]
(4)replace 字段名 with 被修改的记录 [for 条件][范围]
只能修改当前记录(没有限定范围的前提下)
默认值:是跟本身字段类型匹配的记录,要加相应的定界符
四、项目管理器(.pjx)
第三课 索引的建立应用及数据完整性
一 索引
1.分类:简单索引和复合索引
2.索引的作用:提高查询速度(但同时会降低更新速度)
VF 中的索引是:指针构成的文件,这些指针逻辑上按照索引关键字
进行排序,就叫做逻辑上的排序
二 简单索引(.idx)
(1)文件-新建-数据库
(2)常用工具栏-新建-数据库
(3)命令-create database [数据库名称]
学习VF基础理论知识
我VF课件一个完整的VF数据库系统(DBS)的基本组成部分:1数据库的集合 DB;872 数据库管理系统 DBMS系统软件;3 硬件;4 用户或管理员(应用程序)第二步:认识VF的开发界面界面的组成部分以及每部分的作用注意:(1)每次打开vf必须将输入法调到半角实心的状态(2)命令窗口中只能输入和执行单条命令语句第一讲 1.1数据库及其表操作一: 数据库的操作1:基本概念在VF中数据库是一个逻辑上的概念,通过一组系统文件将相互联系的表统一组织和管理。
(数据库和表之间的关系)文件数据库文件扩展名:DBC数据库备注文件: DCT数据库索引文件: DCXVF中的操作方式:界面操作:通过鼠标操作的过程命令操作:在命令窗口中输入命令完成相关功能的过程2:建立数据库a:通过“新建”对话框建立数据库b:使用命令交互建立数据库CREAT DATABASE [数据库文件名]3:使用数据库(打开、修改)OPEN DATABASE [数据库文件名]MODIFY DATABASE“ SET DATABASE TO 数据库文件名”指定一个打开的数据库为当前数据库。
4:删除数据库用命令删除VF 数据库文件并不真正含有表,只是在数据库文件中登录了表的相关条目信息,表是独立存放在磁盘上的。
所以删除数据库并没有删除数据库中的表等对象,要在删除数据库时同时删除表等对象,要用命令方式。
DELETE DATABASE 数据库文件名 [DELETETABLES]DELETE DATABASE <数据库名>只删除数据库文件DELETE DATABASE <数据库名> DELETETABLES删除数据库文件的同时并删除数据库对应的表二:表的操作概念: VF中操作的基本对象,将现实中的数据转换成VF所能识别的文件.与表相关的文件扩展名有:DBF 表文件FPT 表的备注文件BAK 表的备份文件表文件的创建不管是采用界面操作方式还是命令操作方式创建表文件都是首先进入表设计器,在表设计器中主要是完成对表结构的设计。
第1章vf基础-PPT课件
1.1 数据库系统基பைடு நூலகம்概念
2.信息 信息(Information)通常被认为是有一定含义的、经过加工处 理的、对决策有价值的数据。请看一个简单例子。04级甲班学 生计算机考试成绩为:78,86,100,95…,经过计算得到平均 分:89.75,这便是一条信息。 数据与信息之间的关系可以表示为:信息=数据+处理 其中,处理是指将数据转换成信息的过程,包括数据的收集、 存储、加工、排序、检索等一系列活动。数据处理的目的是从 大量的现有数据中提取对人们有用的信息作为决策的依据。可 见,信息与数据是密切相关的。数据是信息的载体,它表示了 信息;信息是数据的内涵,是数据的语义解释。信息是有价值 的。为了提高信息的价值,就必须用科学的方法来管理信息, 这种方法就是数据库技术。
1.1 数据库系统基本概念
软件系统图1-1 数据库系统层次示意图 在相应操作系统的支持下,数据库管理系统是最重要的软件,是数据库系 统的核心组成部分。它相当于仓库管理员,不需用户直接接触数据库,了解 数据库的结构,便可以代替用户处理各种请求。另外,它为数据库管理员提 供维护数据库的手段。 用户 用户是数据库系统的服务对象。通常,一个数据库系统有三类用户:应用 程序设计员、数据库管理员(DataBase Administrator,简称DBA)、最终用 户。应用程序设计人员负责编写操纵数据库的应用程序,实现用户提出的各 种功能。数据库管理员负责规划、设计、运行、维护数据库。最终用户负责 向系统提出要求,检验要求是否满足,是数据库的最终使用者。
1.1 数据库系统基本概念
数据库系统中各部分的层次关系如图1-1所示。
图1-1 数据库系统层次示意图
1.2 数据模型
1.2.1 实体、属性及其联系
vf基础试题及答案
vf基础试题及答案一、单选题(每题2分,共10分)1. Visual FoxPro中,用于定义表单的属性是:A. FormB. FormNameC. FormCaptionD. FormWidth答案:A2. 在Visual FoxPro中,用于打开表单的命令是:A. OPEN FORMB. CREATE FORMC. DISPLAY FORMD. USE FORM答案:A3. 下列哪个函数用于计算字符串的长度?A. LEN()B. LENGTH()C. STRLEN()D. SIZE()答案:C4. 在Visual FoxPro中,用于创建一个新表的命令是:A. CREATE TABLEB. CREATE DATABASEC. CREATE INDEXD. CREATE FORM答案:A5. 以下哪个不是Visual FoxPro的控件类型?A. TextBoxB. ComboBoxC. RadioButtonD. DataGrid答案:D二、多选题(每题3分,共15分)1. 在Visual FoxPro中,以下哪些命令用于操作表?A. SELECTB. BROWSEC. EDITD. APPEND答案:ABCD2. 在Visual FoxPro中,以下哪些属性用于设置表单的显示方式?A. AutoCenterB. AutoCloseC. BorderStyleD. Caption答案:ACD3. Visual FoxPro支持以下哪些数据类型?A. NumericB. CharacterC. DateD. Memo答案:ABCD4. 在Visual FoxPro中,以下哪些函数用于字符串操作?A. LEFT()B. RIGHT()C. UPPER()D. LOWER()答案:ABCD5. 在Visual FoxPro中,以下哪些命令用于数据库操作?A. USEB. SELECTC. INDEXD. PACK答案:ABCD三、判断题(每题1分,共10分)1. Visual FoxPro中,表单(Form)是用于创建用户界面的。
VF基础138道经典题型
一、选择题(1) 下面叙述正确的是()A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对(2) 以下数据结构中不属于线性数据结构的是()A. 队列B. 线性表C. 二叉树D. 栈(3) 在一棵二叉树上第5层的结点数最多是() 注:由公式2k-1得A. 8B. 16C. 32D. 15(4) 下面描述中,符合结构化程序设计风格的是()A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句(5) 下面概念中,不属于面向对象方法的是 () 注:P55-58A. 对象B. 继承C. 类D. 过程调用(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()A. 可行性分析B. 需求分析C. 详细设计D. 程序编码(7) 在软件开发中,下面任务不属于设计阶段的是()A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型(8) 数据库系统的核心是()A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库(9) 下列叙述中正确的是()A.数据库是一个独立的系统,不需要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中,数据的物理结构必须与逻辑结构一致(10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是() 注:P108A. 内模式B. 外模式C. 概念模式D. 逻辑模式(11) 算法的时间复杂度是指()A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数(12) 算法的空间复杂度是指()A. 算法程序的长度B. 算法程序中的指令条数C. 算法程序所占的存储空间D. 算法执行过程中所需要的存储空间(13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为() 注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出A. 349B. 350C. 255D. 351(14) 结构化程序设计主要强调的是()A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性(15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是() 注:即第一个阶段A. 概要设计B. 详细设计C. 可行性分析D. 需求分析(16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
vf第二章_VFP程序设计基础
2.1.3内存变量常用命令
1.内存变量的赋值 格式1:STOR<表达式>TO<变量名表> 格式2:<内存变量名>=<表达式> 功能:计算表达式并将表达式值赋给一个或多个内存变量,格 式2只能给一个变量赋值。 2.表达式值的显示 格式1:?[<表达式表>] 格式2:??<表达式表> 功能:计算表达式表中的各表达式并输出各表达式值。 不管有没有指定表达式表,格式1都会输出一个回车换行符。
2.数组 数组是内存中连续的一片存储区域,它由一系列 元素组成,每个数组元素可通过数组名及相应的下 标来访问。每个数组元素相当于一个简单变量,可 以给各元素分别赋值。在VFP中,一个数组中各元素 的数据类型可以不同。 与简单内存变量不同,数组在使用之前一般要用 DIMENSION或DECLARE命令显式创建,规定数组 是一维数组还是二维数组,数组名和数组大小。数 组大小由下标值的上、下限决定,下限规定为1。
2.货币型常量 货币型常量用来表示货币值,其书写格式与数值 型常量类似,但要加上一个前置的符号($)。货币数 据在存储和计算时,采用4位小数。如果一个货币型常 量多于4位小数,那么系统会自动将多余的小数位四舍 五入。 例如: 常量$123.456789将存储为$123.4568。 货币型常量没有科学记数法形式,在内存中占用8 个字节. 取值范围是: -922337203685477.5807~922337203685477.5807。
命令格式:SET STRICTDATE TO [0|1|2] 命令功能:用于设置是否对日期格式进行检查。 0 表示不进行严格的日期格式检查,目的是与 早期VFP兼容。 1 表示进行严格的日期格式检查,它是系统默 认的设置。 2 表示进行严格的日期格式检查,并且对 CTOD()和CTOT()函数的格式也有效。
VF基础知识
VF基础知识第一节课 VF 入门以及(自由表)表格的基本操作一、新建表(.dbf)1.菜单-文件-新建-表2.常用工具栏-新建-表3.命令 create [表名]默认目录的设置:菜单-工具-选项-文件位置-默认目录-双击-选择默认目录-找到驱动器-选择盘符二表格中的字段类型字段类型英文简称宽度定界符字符型 C 可改动 ' ' 或 " " 或[ ] "123"数值型 N 可改动无 123日期型 D 8 {^yyyy-mm-dd} {^1989-02-16}逻辑型 L 1 .T. 或 .F.日期时间型 T 8 {^yyyy-mm-dd [hh[:mm[:ss]]]|[p|a]} 整型 I 4 备注型 M 4 备注型的文件中.ftp通用型 G 41.打开表(1)菜单-文件-打开-选择文件类型中的表(2)常用工具栏-打开(3)命令 use <表名> use f:\董双双\学生信息表要在独占方式下(4)数据工作期窗口-打开2.关闭(当前表)(1)命令 use(2)数据工作期窗口-关闭3.进入当前表的表设计器(1)菜单-显示-表设计器(2)命令 modify structure4.浏览当前表的信息(1)数据工作期窗口-浏览(2)菜单-显示-浏览(3)命令 browse5.修改表中的记录(1)直接修改(2)插入 insert [blank][before] (当前记录之前)(3)追加 append [blank](4)replace 字段名 with 被修改的记录 [for 条件][范围]只能修改当前记录(没有限定范围的前提下)6.删除表中的记录(逻辑删除和物理删除)(1)逻辑删除不会真正删除表中的记录,可以恢复命令 delete [for 条件][范围]恢复 recall [for 条件][范围](2)物理删除会真正把表中打上逻辑删除标记记录删掉,不可恢复命令 pack(3)清空表中的记录 zap (物理删除不可恢复)第二课自由表的基本操作及数据库一自由表的简单命令1.显示表中的记录到VF屏幕上(1) list [for 条件][[fields] 字段][范围]默认显示表中所有的记录(滚屏显示)(2) display [for 条件][[fields] 字段][范围]默认只显示当前一条记录的信息(分屏显示)2.对表中的记录查询定位(1) 绝对定位 go 或 goto [n][top|bottom](2) 相对定位 skip [n](3) 在当前表中查找符合条件的记录,指针直接指向符合条件的第一条记录locate for 条件[continue] 若查找下一条符合条件的记录,用continue 连用二数据库 (.dbc)1.新建(1)文件-新建-数据库(2)常用工具栏-新建-数据库(3)命令-create database [数据库名称]2.进入当前数据库设计器(1)显示-数据库设计器(2)命令-modify database3.关闭当前数据库close database4.打开数据库(1)菜单-文件-打开-文件类型-数据库名(2)open database 数据库名5.将打开的数据库设置为当前数据库(1)鼠标直接点(2)命令 set database to 数据库名6.添加自由表到当前数据库(1)鼠标操作(2)命令 add table 自由表名7.从当前数据库移去表(1)鼠标操作(2)命令 remove table 表名8.从当前数据库删除表(第四章的SQL语句)(1)鼠标操作(2)命令 drop table 表名9.删除数据库(被删除的数据库不能已经打开,必须关闭)delete database 数据库名10.在数据库中新建表(1)文件-新建(2)常用工具栏(3)简单命令 create(4)用数据库设计器的工具栏或在数据库中右单击或数据库的菜单下的子菜单(5)用(第四章)SQL语句(重点)create table 表名(字段名1 类型(宽度)[,字段名2 类型(宽度)..]) create table 学生(姓名 C(8),性别 C(2),出生日期 D,成绩 N(6,2))三、字段有效性(数据完整性中的域完整性)规则:是一个逻辑表达式信息:是一句话相当于字符串,要加字符型的定界符默认值:是跟本身字段类型匹配的记录,要加相应的定界符四、项目管理器(.pjx)第三课索引的建立应用及数据完整性一索引1.分类:简单索引和复合索引2.索引的作用:提高查询速度(但同时会降低更新速度)VF 中的索引是:指针构成的文件,这些指针逻辑上按照索引关键字进行排序,就叫做逻辑上的排序二简单索引(.idx)index on 索引关键字(字段名) to 索引文件名[.idx]例如:index on 工资 to gz打开索引文件set index to 索引文件名例如:set index to gz注意:简单索引一个索引只能建立一个索引项只能按照升序排序,不能按降序三复合索引(.cdx)1.分类:结构复合索引和非结构复合索引2.非结构复合索引index on 索引关键字(字段名) tag 索引名of 索引文件名[.cdx]; [asce|desc]例如:index on 工资 tag 工资d of aa descindex on 地址 tag 地址a of aa打开索引文件set index to 索引文件名例如:set index to aa指定某个索引起作用set order to 索引标识例如:set order to 工资a或地址a3.结构复合索引(1)可以用命令建立index on 索引关键字(字段名) tag 索引名 [asce|desc]指定某个索引起作用set order to 索引标识(2)也可以用表设计器直接做(考试)注意:结构复合索引的文件直接放到当前表格中,随着表格的打开而打开关闭而关闭,一个表中可以有多个结构复合索引表设计器的复合索引类型:类型个数是否有重复值建立方式主索引一个不允许有重复值或空值表设计器候选索引多个不允许有重复值或空值命令candidate 或设计器唯一索引多个允许有重复值或空值命令 unique 或设计器普通索引多个允许有重复值或空值命令或设计器4.删除索引(1)在表设计器中直接删除(2)命令 delete tag 索引名(索引标识) 或 delete tag all四数据完整性1.分类:实体完整性域完整性参照完整性2.实体完整性:就是指表中的主索引和候选索引所代表的记录的唯一性就理解为实体完整性3.域完整性:字段的有效性(规则信息默认值)4.参照完整性:(1)在数据库的表格之间设置永久性连接从同一个数据库的一个表的主索引的公共字段索引名拖向另一个表的公共字段的普通索引名就建立了两个表格之间的永久性连接(2)设置参照完整性首先把所有打开的表格都关闭,选择菜单-“数据库”-清理,然后在数据库空白地方单击鼠标右键选择编辑参照完整性五、工作区 1-32767工作区号最多有32767个,最小的工作区号是1选择工作区用命令 select(1)select 表格名称(2)select 工作区号(3)select A-J 代表1-10号use 表名 in 工作区号use 表名 in 0 :打开一个表放到没有使用的最小的工作区中select 0 :代表选中了没有使用的最小的工作区号六临时性连接(又叫指针的连动)1.用数据工作期窗口建立2.用命令建立例如:use 表1 in 1 order 公共字段索引名use 表2 in 2 order 公共字段索引名select 1 (父表)set relation to 公共字段索引名 into 表2 (子表)七使用索引快速定位 (用seek查找的记录所在的字段必须是当前索引)seek例如: seek "张三"seek "E1"八排序sort to 新表名 on 关键字(字段名) [/a|/d|/c]第四课常量和变量一常量1.固定不变的量称之为常量显示常量变量表达式和函数在屏幕上先换行再输出在屏幕上不换行直接输出2.分类:字符型货币型数值型日期型日期时间型逻辑型(1)字符型C例如:"张三 " "aabb" "1234" "" '' [](2)货币型 Y定界符:$ 例如:$24.6 $79 默认四位小数(3)数值型 N无定界符例如:123.456 70(4)日期型 D定界符 {^yyyy-mm-dd} 例如:{^1989-10-24} 影响日期格式的命令set mark to "分隔符" 设置分隔符set date to ymd或mdy或dmy 设置显示格式set century on 或 off 设置显示4位还是2位年份默认2位set strictdate to 0或1或2 设置是否使用严格日期格式set century to 世纪值 rollover 年份参照值例如: set century to 19 rollover 50日期格式分为严格日期格式和传统日期格式严格日期格式:{^yyyy-mm-dd}传统日期格式:{mm/dd/yy}或{dd/mm/yy}或{yy/mm/dd} (5)日期时间型 T定界符 {^yyyy-mm-dd,[hh[:mm[:ss]]|[a|p]]}(6)逻辑型 L 定界符 .. 例如:.T. .y. .N. .f.二变量能随时变化的1.分类字段变量和内存变量内存变量的数据类型:字符型数值型货币型日期型日期时间型逻辑型(1)简单的内存变量的赋值> 内存变量名=表达式> store 表达式 to 内存变量名表注:"="一行命令只能用一个赋值,而store 可以把一个值赋给多个变量若在当前表中存在一个同名的字段变量,字段变量优先执行,如果想显示内存变量在内存变量名前加:m.内存变量名例如:m.职工号或m->职工号(2)数组 (array) 类型简称 A分类:一维数组和二维数组定义: dimension 数组名(下标上限[,下标上限2])declare 数组名(下标上限[,下标上限2])例如: dimension aa(10) aa(1)-aa(10)dimension bb(2,5) bb(1,1)-bb(2,5)显示内存变量:list memory [like 通配符] 例如:list memory like aa?display memory [like 通配符]注意:通配符"*"代表任意多个字符,"?"代表任意一个字符清除内存变量(1) clear memory(2) release 内存变量名表(3) release all(4) release all [like 通配符]|[except 通配符]将表中的数据与数组中的数据进行交换(1)将表的当前记录复制到数组中scatter to 数组名(2)将数组的数据复制到当前表的当前记录gather from 数组名第五课表达式和函数一、表达式表达式是由常量变量和函数通过特定的运算符连接起来的式子分类: 数值表达式字符表达式日期时间表达式关系表达式逻辑表达式1.数值表达式运算符:() **|^ * / % + -例如:被除数%除数2.字符表达式运算符:+ - 连接字符串3.日期时间表达式运算符:+ -4.关系表达式运算符:< 、> 、<>|#|!=、<=、>=、 =、==、$字符型的比较:空格<a<z<a<z<汉字的拼音< bdsfid="301" p=""></a<z<a<z<汉字的拼音<>运算符"="受命令 set exact off|on 命令的影响,当设置处于off 状态时,指"="右侧的字符是否原样出现在在左侧字符的左边,如果出现就为.t.,否则.f.,当设置处于on 状态时,叫等长比较,指"="左右的两个字长度如果不相等,先在较短的末尾添加空格,直到两侧字符的长度相等再一个一个字符比较$ 子串包含字符串1$字符串2如果左侧字符串出现在右侧字符串的任意位置就返回.T.,否则 .F.5.逻辑表达式运算符: 逻辑非 not 或! 取右侧值的相反结果逻辑与 and 真真才为真逻辑或 or 假假才为假算术运算符>字符串运算符和日期时间运算符>关系运算符>逻辑运算符二、函数格式:函数名( )分类:数值函数字符处理函数日期类函数数据类型转换函数测试函数1.数值函数(1)abs(数值表达式) 求绝对值(2)sign(数值表达式) 求符号(3)sqrt(数值表达式) 求平方根(4)pi() 求圆周率(5)int(数值表达式) 取数值表达式的整数部分(6)ceiling(数值表达式)返回大于或等于数值表达式的最小整数(7)floor(数值表达式) 返回小于或等于数值表达式的最大整数(8)round(数值表达式1,数值表达式2) 四舍五入(9)mod(数值表达式1,数值表达式2) 求余数(10)max(数值表达式1,数值表达式2,数值表达式3)取最大值(11)min(数值表达式1,数值表达式2,数值表达式3)取最小值2.字符函数(1)len(字符表达式) 求字符串长度(2)lower(字符表达式)大写转为小写(3)upper(字符表达式)小写转为大写(4)space(数值表达式) 返回空格(5)trim(字符表达式)删除字符末尾的空格(6)ltrim(字符表达式) 删除字符左侧的空格(7)alltrim(字符表达式) 删除字符左侧和右侧的空格(中间的不删)第六课函数一、字符函数(8)left(字符表达式,长度) 取子串函数(9)right(字符表达式,长度)(10)substr(字符表达式,起始位置[,长度])(11)occurs(字符表达式1,字符表达式2) 返回第一个字符在第二个字符中出现的次数 ,返回数值型(12)at(字符表达式1,字符表达式2[,数值表达式])(区分大小写)求字符1在字符2中第几次出现的位置(13)atc(字符表达式1,字符表达式2[,数值表达式])(不区分大小写)(14)stuff(字符表达式1,起始位置,长度,字符表达式2) 子串替换函数 stuff("abcdef",2,3,"ttttt")(15)chrtran(字符表达式1,字符表达式2,字符表达式3) 字符替换函数(16)like(字符表达式1,字符表达式2) 字符串匹配函数左侧字符表达式1可以出现通配符 ?和 *二、日期和时间函数(1)date() 返回日期型 D(2)time() 返回字符型 C(3)datetime() 返回日期时间型 T(4)year(日期表达式或者日期时间表达式) 返回数值型 N(5)month(日期表达式或者日期时间表达式)(6)day(日期表达式或者日期时间表达式)(7)hour(日期时间表达式)(8)minute(日期时间表达式)(9)sec(日期时间表达式)三、数据类型转换函数(1)str(数值表达式[,长度[,小数位数]]) 数值->字符(2)val(字符表达式) 字符->数值(3)ctod(字符表达式) 字符->日期(4)ctot(字符表达式) 字符->日期时间(5)dtoc(日期表达式或日期时间表达式[,1]) 日期->字符(6)ttoc(日期时间表达式[,1]) 日期时间->字符(7)&字符型变量四、测试函数(1)between(表达式1,表达式2,表达式3)(2)isnull(表达式)(3)empty(表达式) 测试是否是空值(4)vartype(表达式[,逻辑表达式]) 测试数据类型返回英文简称(5)eof([工作区号或表别名]) 表中最后一条的后面(末尾)(6)bof([工作区号或表别名]) 表中第一条记录的前面(首位置)(7)recno([工作区号或表别名]) 返回当前表中的当前记录的记录号(8)reccount([工作区号或表别名]) 返回当前表中的记录条数(9)iif(逻辑表达式,表达式1,表达式2)(10)deleted([工作区号或表别名])第七课程序设计基础一、程序文件的建立与执行1.新建 (.prg)(1)文件-新建-程序(或常用工具栏上的新建)(2)命令 modify command [程序文件名]2.程序是需要建立完毕后保存并运行的文件运行方法:(1)菜单程序-运行(2)常用工具栏上的“叹号”或 ctrl+E(3)命令 do 程序文件名[.prg]3.程序中的注释语句* 和 note 打开头或者用 && 在程序的任意位置都可以是注释语句二、简单的输入输出命令1.输入命令input [字符表达式] to 内存变量默认只能输入数值型的数据,如果要输入其他类型,要加相应的定界符2.输入命令accept [字符表达式] to 内存变量只能输入字符类型的数据,不能加定界符3.输出命令wait [字符表达式] [window][timeout 秒数 ]三、程序的基本结构程序的结构分为:顺序结构选择结构和循环结构1.顺序结构正常情况下程序中的命令语句都是一句一句顺序执行的2.选择结构(1)条件语句 iif(条件,表达式1,表达式2)函数if 条件语句序列1[else语句序列2]endif(2)分支语句do casecase 条件1 2*x-1 x<0语句序列1 3*x+4 3>x>=0case 条件2 y= x+1 5>x>=3语句序列2 7*x+2 x>=5case 条件n语句序列n[otherwise语句序列]endcase3.循环结构一定要有使"条件"趋向于结束的语句存在否则死循环(1)do while 条件语句序列(循环体)enddo第八课多模块程序设计程序循环结构(2)for 变量=初值 to 终止值 [step 步长]语句序列(循环体)endfor(3)scan [for 条件][while 条件]语句序列(循环体)endscan注意:此循环结构只能在当前表中做操作,不能脱离表格在三种循环结构中都能用exit强制退出循环体和loop 返回条件一、模块的定义procedure 或 function 过程名命令序列[return [表达式]]endproc 或 endfunc二、模块的调用格式:1.do 过程名2.过程名()三、参数传递接收参数的命令parameters 形式参数1,形参2....lparameters 形式参数1,形参2....调用格式1.do 过程名 with 实际参数1,实参2....2.过程名(实际参数1,实参2....) 函数调用格式set udfparms to value 按值传递set udfparms to reference 按引用传递函数调用格式受命令的影响,按值传递形参变实参不变按引用传递形参变实参也变,"do "的调用格式不受影响,形参变实参都变四、程序中变量的作用范围1.程序中的变量分为三种:全局变量(公共变量),私有变量,局部变量2.全局变量public 变量名3.局部变量local 变量名4.私有变量除了用public 和local 定义的变量,直接使用的都叫私有变量5.private 变量名作用是隐藏同名的变量,使其暂时不起作用第九课关系数据库标准语言SQL一、SQL的核心内容叫查询 "select"二、查询语句基本格式 (不用打开表就可以操作)1.简单查询select 字段名... from 表名 [where 条件].....在 select 后查询 from 后表格的所有的字段用 "*"distinct 去掉查询结果的重复值 ,一个select 命令只能用一个2.简单连接查询select 字段名.. from 表1,表2... where 表1.公共字段=;表2.公共字段 [and 其他条件]3.嵌套查询最多分两层(外层和内层)select 字段 from 表1 where 公共字段 in|not in;(select 公共字段 from 表2 [where 条件])4.几种特殊的运算符(1)between ..and ..例如:工资 between 1220 and 1250(2)like可以出现通配符"%"代表任意字符 "_"代表一个字符5.排序短语order by 字段1 [asc|desc][,字段2 [asc|desc]...] select -from- where- order by放在整个查询语句的末尾或 where 条件之后,对查询结果进行排序6.简单计算查询count() 统计计数sum() 求和值avg() 求平均max() 求最大值min() 求最小值这5个函数都是用在select 后的字段上或having 的条件里,不能直接出现在 where 条件里7.分组与计算查询 "每个,每..."短语 group by 字段名 [having 分组条件]位置:select -from-where-group by [having] order by8.利用空值查询is null 或 is not null9.别名(1)字段别名除了排序 order by 之外一般都不能用select 字段或表达式 as 新字段名 from ....select 字段或表达式空格新字段名 from ....(2)表别名表的别名是整句命令都必须使用表的新名select -from 表1 as 新表名select -from 表1 空格新表名第十课 SQL 语句一、查询1.使用量词和谓词查询量词: any some all(了解)谓词: exists 和 not exists (可以实现和嵌套相同的功能)select字段 from 表1 where exists|not exists(select *; from 表2 where 表1.公共字段=表2.公共字段)[and 条件]select 字段 from 表1 where 公共字段 in|not in;(select 公共字段 from 表2 [where 条件])2.超链接格式(考上机题的改错)(了解)[inner] join 内连接left join 左连接right join 右连接full join 全连接join ...on 短语连用3.集合的并运算(了解)union4.查询去向(1)只显示前几条记录top n[percent] 必须和 order by 连用(2)将查询结果给数组into array 数组名select-from -[where][group by][order b]. into array 数组(3)将查询结果给永久表into table 表名或 into dbf 表名(4)将查询结果给临时表into cursor 表名(5)将查询结果给文本文件to file 文件名(6)将查询结果给打印机to printer二、操作功能1.插入记录(插入到指定表的末尾)insert into 表名 values(表中各记录的值)insert into 表名(字段名...) values(各字段的记录值) insert into表名 from array 数组名(数组中的值必须和表中的记录类型吻合) 2.更新记录(修改表中的记录)replace 字段 with "值" for 条件update 表名 set 字段名=值 [where 条件]3.逻辑删除delete from 表名 [where 条件]4.表结构的修改(了解)(表设计器中的内容)alter table 表名 ......例如:alter table 仓库 add 工资 N(4)alter table 仓库 drop 工资alter table 仓库 alter 面积 N(3)alter table 仓库 rename 面积 to mjalter table 仓库 add 工资 I check (工资>=0) ;error "工资的值必须大于等于零" default 0alter table 仓库 add unique 仓库号 tag 仓库号候选索引index on 表达式 tag 索引名 candidate 候选索引第十一课查询设计器与视图一、查询设计器(.qpr)1.新建(1)菜单-文件-新建-查询(或常用工具栏)(2)命令 create query [查询文件名]2.新建完查询之后一定要保存并运行运行方法:(1)在查询设计器打开的情况下用常用工具栏上的"!"(2)程序菜单-运行(3)命令 do 查询文件名.qpr3.查询设计器中各选项卡与 select 语句的对应(1)字段选项卡-select(2)联接选项卡-join on(3)筛选选项卡-where(4)排序依据-order by(5)分组依据-group by(6)杂项- distinct 和 * top n(7)查询去向-into table |cursor |to file|to printer查询设计器可以实现与select 语句相同的功能,但是做不了嵌套二、视图(相当于表)1.新建(1)文件-新建-视图(或常用工具栏)(2)用SQL 语句 create view 视图名 as select -from -where..... 2.视图必须依附于数据库存在,在建立视图的时候必须有一个当前数据库视图不占内存空间,随着数据库的打开而打开,关闭而关闭3.视图建立完毕后必须保存,并且自动保存到当前数据库中,并且不用运行选择题:视图比查询多了个“更新条件”少了个“查询去向”4.删除视图(1)在数据库中直接删除(2)命令 drop view 视图名第十二课表单设计与应用一、表单新建(.scx)1.文件-新建-表单(或常用工具栏)2.命令 create form [表单文件名]二、表单设计完成后要保存并运行运行方法:1.常用工具栏-"!"2.命令 do form 表单文件名三、表单设计器工具的使用四、对象属性访问及对象方法调用的基本格式对象引用.对象属性例如:thisform.caption="你好" 在command1的click 写对象引用.对象方法例如:thisform.release五、常用事件方法1.事件load init destroy unload error gotfocusclick dblclick rightclick interactivechange2.方法release refresh show hide setfocus六、常用控件对象的使用1.标签(label1) <- name 名称属性: caption :标题,指定标签中的文本内容alignment:指定标题文本在控件中显示的对齐方式2.命令按钮(command1)属性: default:该属性设为.t. 称为:"确认"cancel:该属性设为.t. 称为:"取消"enabled:指定对象能不能用visible:指定对象可不可见第十三课命令组文本框编辑框复选框选项组一、命令按钮组(commandgroup1)(了解)常用属性:1.buttoncount 指定命令按钮的个数2.buttons 用于存取命令组中各按钮的数组例如: /doc/d7*******.html,mandgroup1.buttons(1). caption="第一个"/doc/d7*******.html,mand1.caption="第一个"3.value 指定命令组当前的状态默认数值型,可以改成字符型二、文本框(text1)1.value 返回文本框的当前内容或赋值给文本框值,默认字符型2.passwordchar 指定文本框控件内是显示用户输入的字符还是占位符3.inputmask 指定在一个文本框中如何输入和显示数据X:代表任意一位字符#:代表任意的0-9数字,正负号和空格9:代表任意的0-9数字新建属性和方法程序在表单设计器设计的同时,选择菜单"表单"-新建属性和新建方法程序三、编辑框(edit1)(了解)1.allowtabs :指定编辑框能否使用tab键2.hideselection :当编辑框失去焦点时编辑框中选定的文本是否仍为选定状态3.readonly:指定是否只读4.scrollbars :是否具有垂直滚动条5.selstart:返回用户在编辑框中所选文本的起始点位置或插入位置6.sellength:返回用户在编辑框中所选文本的长度7.seltext:返回用户在编辑框中选定的文本内容四、复选框(check1)1.caption 指定显示在复选框右边的文字标题2.value 指定复选框的当前状态数值型: 1 代表选中 0 代表未选中逻辑型: .t. 代表选中 .f.代表未选中五、选项组(optiongroup1)1.buttoncount :指定选项按钮组中按钮的个数2.buttons : 用于存取选项组中各按钮的数组例如: thisform.optiongroup1.buttons(2).caption="第一个"thisform.optiongroup1.option1.caption="第一个"3.value 指定选项组当前的状态默认数值型,可以改成字符型第十四课列表框组合框表格一、列表框(list1)属性:1.rowsource 数据源2.rowsourcetype 数据源的类型 0-93.list :用以存取列表框中数据条目的字符串数组thisform.list1.list(1)4.listcount:指明列表框中数据条目的数目thisform.list1.listcount5.columncount:指定列表框的列数6.value:返回列表框中被选中的条目7.selected:指定列表框内某个条目是否处于选定状态if thisform.list1.selected(1)=.t.endif8.multiselect :指定用户能否在列表框内进行多重选定二、组合框(combo1)1.style:选择组合框的类型0-下拉组合框 :可以选择也可以输入值2-下拉列表框 :只能选择不能输入新值组合框的相关属性与列表框相同,但是组合框没有多选属性:multiselect,而且组合框要显示内容也必须修改 rowsource 和 rowsourcetype 0-9十种三、表格(grid1)1.recordsource 数据源2.recordsourcetype 数据源的类型 0-4 五种类型3.columncount: 表格的列数4.linkmaster :显示表的父表名称5.childorder:建立一对多关联的子表的索引名第十五课页框计时器微调控件类表单向导一、页框(pageframe1)1.pagecount: 指明一个页框对象所包含的页的个数2.pages:是用于存取页框中某个页对象的数组thisform.pageframe1.page1.caption="你好"thisform.pageframe1.pages(1).caption=""3.tabs:指定页框中是否显示页面标签栏4.tabstretch:若标题文本太长是否显示多重行5.activepage:返回页框中当前活动页的页号或使页框的指定页成为活动页二、计时器(timer1)1.interval :每间隔多少毫秒执行一次计时器timer1的timer事件三、微调控件(spinner1)1.spinnerhighvalue:最大值2.spinnerlowvalue:最小值3.value:默认值4.increment:增量四、类(.vcx)(了解)1.新建(1)文件-新建-类(或常用工具栏)(2)create class2.打开五、用表单向导新建表单分为:表单向导和一对多表单向导 13 1430 29第十六课菜单一、菜单(.mnx)1.新建(1)文件-新建-菜单(或常用工具栏)(2)命令 create menu [菜单名]2.分类:条形菜单和弹出式菜单。
第1章vf数据库基础
应用程序A2
数据 库应用程序An 图1-3 数 Nhomakorabea的数据库系统
从文件系统到数据库系统,标志着数据管理技术质的飞跃。20世纪80年代后不仅在大、 中型机上实现并应用了数据库管理系统,即使在微型计算机上也配置了经过功能简化的 数据库管理系统(例如,Visual FoxPro等),使数据库技术得到广泛的应用和普及。
…
二、数据库的相关概念
1. 数据库(DB:DATABASE) 数据库是存储在计算机系统内的有 结构的数据集合。通俗地讲,这些数据 是被数据库管理系统按一定的组织形式 存放在各个数据文件中的。也就是说, 数据库是由很多数据文件以及若干辅助 文件组成的。存放在数据库中的数据可 以被所有合法用户使用。
主要概念
数据、数据处理、数据管理 数据库、数据库管理系统、数据库系统 数据模型:概念、分类 关系型的数据库:概念、运算
一、数据的相关概念
1.数据 数据是指存储在某一种媒体上能够识别的物理符号。数据 的概念包括两个方面:其一是描述事物特性的数据内容;其二 是存储在某一种媒体上的数据形式。由于描述事物特性必须借 助一定的符号,这些符号就是数据形式。数据形式可以是多种 多样的,例如某人的出生日期是“1964年2月17日”,当然也可 以将该形式改写为“02/17/64”,但其含义并没有改变。
数据的概念在数据处理领域已经大大地拓宽了。数据不仅 仅指数字、字母、文字和其他特殊字符组成的文本形式的数据, 而且还包括图形、图像、动画、影像、声音(包括语音、音乐) 等多媒体数据。
2.数据处理
数据处理是指对各种形式的数据进行收集、存储、加工和传 播的一系列活动的总和。其目的之一是从大量的、原始的数 据中抽取、推导出对人们有价值的信息以作为行动和决策的 依据;目的之二是为了借助计算机科学地保存和管理复杂的、 大量的数据,以便人们能够方便而充分地利用这些宝贵的信 息资源.
vf基础知识
第一章数据结构与算法知识要点:一、算法1、算法基本概念:算法是解决某个特定问题求解的一种描述,它是指令的有限序列。
算法不等于程序,也不等于计算机方法,程序的编制不可能优于算法的设计。
2、算法的基本特征:(1) 有穷性:一个算法总是在执行了有穷步的运算后终止,即该算法是可达的(2) 确定性:算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性(3) 可行性:要求算法中有待实现的运算都是基本的、能够实现的(4) 输入:一个算法有0个或多个输入,(5)输出:作为算法运算的结果,一个算法产生一个或多个输出3、算法设计的基本方法:(1) 列举法(2) 归纳法(3) 递推(4) 递归(5) 减半递推技术(6) 回溯法4、算法复杂度:算法时间复杂和算法空间复杂度。
(1) 算法时间复杂度是指执行算法所需要的计算工作量。
X=0;y=0;For(k=1;k<=n;k++)X++;For(i=1;i<=n;i++)For(j=1;j<=n;j++)y++;时间复杂度T(n)=O(n2)(2) 算法空间复杂度是指执行这个算法所需要的内存空间。
二、数据结构1、数据结构基本概念:数据结构是指相互有关联的数据元素的集合。
研究的三个方面:(1)数据集合中数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
2、数据的逻辑结构:是指反映数据元素之间逻辑关系的数据结构。
包含两方面(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
Eg:春---夏----秋----冬3、数据的存储结构:是指数据结构在计算机存储空间中的存放形式。
常见的存储结构(1) 顺序存储结构:特点是借助于数据元素的相对存储位置来表示数据元素之间的逻辑结构;(2) 链式存储结构:特点是借助于指示数据元素地址的指针表示数据元素之间的逻辑结构4、数据结构分类:线性结构和非线性结构(1)线性结构条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。
VF基础教程精讲1
二、专门的关系运算 1、选择运算 对行来进行运算 从关系中找出满足给定条件的元组。
如:从学生表中选择姓名为“赵雪”的记录
20
2、投影运算
从关系中选择若干属性组成新的关系
对列来进行运算。如:只列出所有学生的学号和姓名 3、联接运算 将两个或两个以上的关系的属性横向连接为一个关系。p11
21
1.2.5 关系模式的规范化(p12)
18
一个关系由若干元组(记录)组成。 一个元组由若干属性值组成。 二、表的特点(P8 了解) A、表中不允许有重复的字段名 B、表中每一列中数据的类型必须相同 C、表中不允许有完全相同的记录,否则出现冗余。 D、行列顺序可以任意排列。
19
1.2.4 关系运算
关系运算分为:一般集合运算和专门的关系运算。 一、一般集合运算 并 交 差
格式: CREATE PROJECT <项目文件名|?> 二.“项目管理器”的外观
Байду номын сангаас
41
项目管理器
【新建…】:创建新文件 命令按钮。 折叠或展开项目管理器。 【移去…】:将所选择的 文件移出项目文件或从磁 盘上删除。 【添加…】:添加已存在 的文件到项目管理器。 【修改…】:修改项目管 理器中存在的文件。 【连编…】:建立应用程 序(.APP)或可执行 (.EXE)程序。 【运行…】或【打开】或【关闭】或【浏览】:运行“文档”、“代码”和 “其它”选项卡中文件,打开、关闭数据选项卡中的数据库、表等,关闭(或 称为折叠)项目文件中某一展开的选项卡显示。
7、1996年8月推出了Visual FoxPro5.0
8、1998年9月推出了Visual FoxPro 6.0
31
1.5 Visual FoxPro 6.0 的用户界面
程序设计基础--VF数据库的基本操作
第三章 VFP数据库的基本操作
数据库旳删除
命令格式: DELE DATABASE [<数据库文件名>]
[DELETETABLES][RECYCLE] 功能:删除不再使用旳数据库
第三章 VFP数据库的基本操作
用设置命令能够使被逻辑删除旳统计继续参加操作,或者 “隐藏”起来,不再参加操作。
9、恢复统计 (RECALL) 10、物理删除统计(PACK) 11、清除表统计(ZAP) 12、删除标识鉴别函数 DELETED()
第三章 VFP数据库的基本操作
12、编辑统计 (1)单个统计修改
EDIT/CHANGE [<范围>][FIELDS<字段名表>] [FOR<条件>][WHILE<条件>])
第三章 VFP数据库的基本操作
VF6.0命令旳一般格式
1. VF6.0旳命令都有固定旳格式,必须按相应旳格式 和语法规则书写和使用,不然系统无法辨认、执行。基本 格式如下: <命令动词>[[<子句1>][<子句2>][<…>]] 其中语法标识符旳意义和使用方法如下:
<>:必选项:表达命令中必须选择该项,但内容能够根 据需要而定;
数据库旳操作
1、打开数据库
OPEN DATA [<数据库文件名>] [EXCL/SHAR] [NOUP] 2、指定目前数据库
SET DATABASE TO [<数据库文件名>] 3、显示目前数据库旳信息 DISP DATABASE
4、关闭数据库 CLOSE DATABASE [ALL] 5、浏览、修改数据库
vf程序设计基础教程知识点总结
vf程序设计基础教程知识点总结VF基础知识点总结第一章数据库基础知识1.基本概念:数据库、数据管理经历的五个阶段、数据库管理系统、数据库应用系统、数据库管理员。
2.数据库系统的组成:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。
其中数据库管理系统是数据库系统的核心。
3.数据库系统的特点:(1)实现数据共享,减少数据冗余(2)采用特定的数据模型(3)具有较高的数据独立性(4)有统一的数据控制功能4.数据模型:实体间联系的种类:一对一、一对多、多对多。
5.数据模型的三种类型:层次模型、网状模型和关系模型。
6.关系数据库基本术语:关系、元组、属性、域、关键字、外部关键字。
关系的特点7.关系运算:传统的集合运算(并、差、交)另一类是专门的关系运算(选择、投影、连接、等值连接、自然连接)8.VF两种运行方式:菜单方式和交互式方式(命令方式和程序方式)9.所谓项目是指文件、数据、文档和对象的集合,其扩展名为 .pjx。
10.项目管理器包含的选项卡:全部、数据、文档、类、代码、其他11.项目管理器各选项卡所包含的文件有哪些?12.项目管理器可以完成对文件的新建、添加、移去、删除,但不包含重命名。
第二章常量、字符1.常量的种类:数值型、字符型、日期型、日期时间型和逻辑型在书写字符型、日期型、日期时间型和逻辑型需要加定界符2.变量是值能够随时改变的量。
变量名的命名规则:以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成,不包含有空格3.当内存变量与字段变量同名时,要访问内存变量需加前缀M.(或M-),例如M.姓名4.数组定义的格式 DIMENSION 数组名()、创建数组后,系统自动给每个数组元素赋以逻辑假.F.5.表达式的类型:数值表达式、字符表达式、日期时间表达式和逻辑表达式。
每个表达式的运算规则与结果。
6.运算符 $ 称为子串包含测试,格式字符表达式1 $ 字符表达式27.SET EXACT ON │OFF 的区别与含义。
vf基础教程
段(用↓或鼠标换行),全部字段输入完成后单击确定。
(2)使用表向导创建表步骤:从文件菜单中单击新建→ 在新建对话框中选择表并单击向导→在表向导中做第1步:选取字段,完成后单击下一步→ 在表向导中做第1a步:选择数据库,完成后单击下一步→ 在表向导中做第2步:修改字段设置,完成后单击下一步→ 在表向导中做第3步:为表建索引,完成后单击下一步→ 在表向导中做第4步:完成,选择表的保存方法,完成后单击完成→ 在另存为对话框中给出文件名并确定所需的保存位置。
注意:先选择一个与待建数据表类似的样表,再从中挑选出所需的部分字段,然后在下一步根据实际需要修改或直接采用原字段的宽度。
(3)使用 CREATE TABLE - SQL命令该命令的一般格式为:CREATE TABLE |dbf <表文件名>(字段名1 字段类型[(字段宽度[,小数位数])][,字段名2 字段类型[(字段宽度[,小数位数])]]……)例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d)2. 表结构的修改(1)用表设计器修改用菜单调出表设计器:打开所需的表文件→ 单击显示菜单中的表设计器→ 在表设计器对话框中对字段进行修改→ 修改完毕单击确定并在消息框中选择是。
用命令调出表设计器:USE <表文件名>MODIFY STRUCTURE(2)使用 ALTER TABLE - SQL命令功能命令格式示例添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14)重命名字段 ALTER TABLE xscj RENAME COLUMN kcmc TO kc 删除字段ALTER TABLE xscj DROP COLUMN kc1. 记录的输入(1) 立即输入方式:设计好表的结构后,系统会提示是否直接进入数据输入状态。
若选是,则进入编辑窗口,输完后单击“X”按钮退出,系统自动存盘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、数学函数函数用途ABS(<数值表达式>)绝对值,|x|CEILING(<数值表达式>) >=自变量的最小整数EXP(<数值表达式>)对基E的幂,e=2.71828FLOOR(<数值表达式>) <=自变量的最大整数INT(<数值表达式>)取整(舍尾)自变量LOG(<数值表达式>)自变量的自然对数,ln xLOG10(<数值表达式>)自变量的普通对数,lg xMAX(<表达式1>,<表达式2>)两个值的最大值MIN(<表达式1>,<表达式2>)两个值的最小值MOD(<数值表达式1>,<数值表达式2>)求余数RAND([<数值表达式1>])返回伪随机数ROUND(<数值表达式1>,<数值表达式2>)四舍五入第一个自变量SIGN(<数值表达式>)自变量的符号SQRT(<数值表达式>)平方根(正根)2、字符串操作函数函数用途UPPER(<字符串表达式>)将字符串字母转换成大写字母TRIM(<字符串表达式>)删除字符串尾空格ASC(<字符串表达式>)返回字符串表达式最左边的第一个字符的ASCII码CHR(<数值表达式>)将数值表达式转换成字符STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>)将数值转换为字符串,L为数值表达式总长,n为小数位数VAL(<字符串表达式>)将数字字符串转换为数字TYPE(<表达式>)检测表达式值的数据类型ALLTRI(S)消除字符串中所有空格 ALLTRIM("李丽")李丽(1)、宏替换函数 &格式:&<字符型变量>[.]功能:用于替换一个字符型变量的内容,如果宏替换函数和后面的字符间无空格时,后面应加点号(.)。
如:a1=“ABC” a2=“a1” ?&a2ma=“*” mb=“14&ma.50” ?mbma=“*” mb=“14&ma50” ?mbma=“*” mb=“14&ma 50” ?mb例:P="G2"USE &P = USE G2(2)、删除串尾空格trim()格式:rtrim/trim(<字符表达式>)功能:删除<字符表达式>后面的空格,返回所剩字符.如:?trim(“ABC “)+”DEF” 结果为:ABCDEF?trim(“A B C “ )+”DEF” 结果为:A B CDEF (3)、删除串前空格Ltrim()格式:Ltrim(<字符表达式>)功能:删除<字符表达式>前面的空格,返回所剩字符.如:?“AB”+Ltrim(“ CD “)+”EF”结果为:ABCD EF(4)、求左子串Left()/求右子串Right()函数格式:Left(<字符表达式>,<数字>)功能:取<字符表达式>最左边开始的<数字>个字符,若<数字>大于字符长度,则返回整个字符串,若<数字> 小于或等于0,则返回一个空串.如:?Left(“Foxpro2.6”,6) 结果为:Foxpro?Left(“Foxpro2.6”,11) 结果为:Foxpro2.6?Left(“Foxpro2.6”,0) 无输出结果store “Foxpro2.6” to str?Right(str,6) 结果为:pro2.6(5)、求子串函数substr()格式:Substr(<字符>,<起始位置>[,<字符个数>] )功能:取“字符”中从“起始位置”开始的“字符个数”个字符或直到最后一个字符(字符个数缺省)如:?Substr(”this is an example.”,6,2)?Substr(“this is an example.” ,12)?Substr(“一二三四五六七八” ,3,6)?Substr(“一二三四五六七八” ,2,6)?Substr(“一二三四五六七八” ,4,6)store “abcdefghijk” to str1 store 4 to n?Substr(str1,n,n+3)(6)、子串检索函数AT()格式:AT(<字符1>,<字符2> [,<数字>] )功能:查找“字符1”在“字符2”中首次出现的起始位置,返回位置值,若未找到,则返回“0”,若使用“数字”,则是查找“字符1”在“字符2”中第“数字”次出现的位置.如:?AT(“is” , ”this is an example.”)?AT(“this is an example.” , “is”)?AT(“is” , ”this is an example.” , 2)?AT(“is” , “this is an example,” , 3)?AT(“IS” , “this is an example.”) (7)、字符串替换函数Stuff()格式:Stuff(<字符1>,<位置>,<字符个数>,<字符2> )功能:在“字符1”中的“位置”处插入“字符2”,并删除其后“字符个数”个字符。
如:?stuff(“abcdefghi”,4,3,”123”)?stuff(“abcdefghi”,4,3,”12345”)?stuff(“abcdefghi”,4,4,”12”)?stuff(“abcdefghi”4,0,”12”)?stuff(“abcdefghi”,4,2,””)STUFF("NOW",2,1,"E")= NEW(8)、空格生成函数space()格式:space(<数字表达式>)功能:生成指定的空格数;如:space(9) 生成9个空格(9)、字符重复函数replicate()格式:replicate(<字符表达式>,<数字表达式>)功能:重复生成指定的字符表达式;如:?repli cate(“Hello” , 3)结果为:HelloHelloHello(10)、求字符串长度函数格式:LEN(<字符表达式>)功能:返回制定字符表达式的长度,即所包含的字符个数。
函数值为数值型例如:X=“中文Visual FoxPro6.0” 则LEN(X)=20(11)、大小写转换函数格式:LOWER(<字符表达式>)UPPER(<字符表达式>)功能:LOWER将制定表达式值中的大写字母转换成小写字母,其他字符不变UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变。
例如:LOWER(‘X1y2A’)=x1y2a UPPER(‘n=1’)=N=1(12)、计算子串出现次数函数格式:OCCURS(<字符表达式1>,<字符表达式2>)功能:返回第一个字符串在第二个字符串中出现的次数。
例如:STORE ‘abracadabra’ TO S3、表(.dbf)操作函数函数用途BOF([<工作区号或别名>])查表文件开始函数EOF([<工作区号或别名>])表文件结尾测试函数RECNO([<工作区号或别名>])测试当前或指定工作区表的当前记录号DELETED([<工作区号或别名>])记录删除测试函数FILE(<"字符串">)测试文件是否存在函数DBF([<工作区号或别名>])检测表的文件名函数4、日期、时间函数函数用途DATE()查系统当前日期函数TIME([<数值表达式>])查系统当前时间函数YEAR(<日期型表达式>|<日期时间型表达式>)由日期查年函数MONTH(<日期型表达式>|<日期时间型表达式>)从日期查月份函数CMONTH(<日期型表达式>|<日期时间型表达式>)由日期查月份名函数DAY(<日期型表达式>|<日期时间型表达式>)从日期查当月的日函数DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>])由日期查星期函数CDOW(<日期型表达式>|<日期时间型表达式>)从日期查星期名函数DTOC(<日期型表达式>|<日期时间型表达式>)日期转换为字符函数CTOD(<字符串表达式>)字符串转换为日期函数CTOT(<字符串表达式>)返回日期时间值函数TTOC(<日期时间型表达式>)返回字符值例:函数名操作例结果DATE()求当前日期 DATE() 2001/11/12DATETIME() 求当前日期和时间 DATETIME() 2001/11/12/0:22:33amYEAR(D)求年份 YEAR(DATE()) 2001MONTH(D)求月份(数值) MONTH(DATETIME()) 11CMONTH(D)求月份(字符) MONTH(DATETIME()) NovenberDAY(D)求日期 DAY(DATE()) 12DOW(D)求星期几(数值) DOW(DATE()) 1CDOW(D)求星期几(英文) CDOW(DATE()) sundayTIME(D)求当前时间 TIME(DATE()) 10:20:38am5、数据类型转换函数函数名操作例结果ASC(S)求第一个字符串的ASCII码 ASC("what") 87CHR(N)求ASCII码的字符 CHR(87) wSTR(R,L,D) 数值转换成字符,L为长度,D为小数位数 X=3.1415STR(X,6,2) 3.14VAL(S)字符串转换为数值 VAL("123") 123.00CTOD(S)字符串转日期 CTOD('11/01/2002') 11/01/2002DTOC(D)日期转换成字符串 DTOC(DATE()) 11/01/2002DTOS(D)把日期转成年月日式的字符串 DTOS(DATE()) 20021101CTOT(C)字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am DTOT(D)日期型转为日期时间型 DTOT(DATE()) 11/25/2001 00:00:01amTTOC(T)日期时间型转为字符型 TTOC(DATETIME()) 11/25/2001 00:00:01amTTOD(T)日期时间型转为日期型 TTOD(DATETIME()) 11/25/2001 IIF(LE,E1,E2) 逻辑判断 IIF(A>0,"YES","NO") YES6、检测函数函数名操作例结果RECNO()检测当前记录号 RECNO() 1RECCOUNT()检测当前记录数 RECCOUNT() 12BOF()开始记录 BOF() 1EOF()最后记录 EOF() 12FOUND()返回查找结果 FOUND() .T.ROW()返回当前行坐标 ROW() 1COL()返回当前列坐。