




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家等级考试计算机二级VFP课程第一讲:vfp操作基础以及表的基本操作 主讲:黄建忠一 VISUAL FOXPRO 安装与启动1)安装(演示)2)启动方法 开始程序Microsoft VISUAL FOXPRO 6.0 (建立快捷方式)中英文切换 ctrl+空格二 VFP用户界面认识主要组成:标题栏,菜单栏,工具栏,工作区,状态栏,命令窗口1 标题栏:系统图标,屏幕标题,最小化,最大化,关闭按钮(演示)注意:使用命令可以对标题重定义:_screen.caption=中国的窗口2 菜单栏热键:alt+字母 激活菜单3 工具栏:1)“常用”工具栏的激活与取消显示工具栏常用2)工具栏的新建和定制4 状态栏:用于显示当前工作状态三 VFP 工作方式1交互式工作方式:所见即所得2程序执行方式四 表的基本操作1 基本表的分析2 VFP 专业术语:1)关系:表就是关系2)元组:行 ,记 录3)属性:列,也称 字段4)域:属性的取值范围五 表的建立与显示建表原则:先结构后内容5.1 VFP 常用数据都是存储在表中的 也称之为 二维表即 关系5.2 表结构的分析:字段名,字段类型,字段宽度和小数位数5.3 数据类型的分析5.4 默认目录的设定1 工具选项文件位置默认目录点修改2 在命令窗口 中输入命令:cd?(设置默认目录)5.5 完整表的建立:文件新建表 (保存类型:表)命令格式 create 表名5.6 记录的插入:表-追加新记录 ctrl+y 注意:编辑和浏览5.7 记录的浏览 显示-浏览 显示编辑(编辑用于修改记录)浏览命令:browse5.8 表的打开 文件打开 (注意:文件类型 表)命令: use 表名5.9表结构的修改:打开表后 选择 显示表设计器命令 modify structure国家等级考试计算机二级VFP课程第二讲:深入分析自由表及简单数据库操作主讲:黄建忠2.1 自由表的概念:不属于任何数据库的表。2.2 建立自由表常用命令小结: Create 表名 例如:create 学生 Use 表名 例如 use 学生 Browse 例如 browse (必须确认表是打开的) 小提示:确认一张表是否打开可参照状态栏 List/display 显示表的内容 Clear all 关闭所有的表 Close all 关闭所有打开的数据库和表以及其他相关窗口 Quit 退出 VFP软件Modify structure 修改表的结构(打开表设计器)2.3 记录的删除第一步:给记录加上删除标记(逻辑删除)表-删除记录delete第二步: 将记录从磁盘删除(物理删除) 表-彻底删除 命令 packZap 删除表所有内容注意:delete 属于逻辑删除 pack 和zap 属于物理删除2.4 VISUAL FOXPRO 数据库及其操作数据库作用:组织和管理表提示:.dbf文件称之为数据库表文件而数据库扩展名是.dbc.dct 数据库备注文件扩展名 .dcx 索引文件扩展名2.5数据库的建立 :文件新建数据库命令格式 create database 数据库名|?打开数据库Open database 数据库名|?修改数据库命令格式 :modify database删除数据库Delete database 数据库名|?2.6、建立数据库表方法2种:1 打开数据库后 新建表 2 打开数据库后 添加表关于vfp中 数据类型的知识:注意vfp中自由表字段名:以字母或汉字开头,字段本身长度不能超过10个字符(5个汉字)可以用字母 数字 下划线 汉字组成数据库表字段名本身长度不能超过254字符字段类型:字符型:不具备计算能力的文字数据类型 字母 C数值型:整数和小数 字母N货币型: 货币单位,小数位固定为4位。字段宽8用字母Y 表示浮动型:与数值型基本相同。字母F表示整型:整数 字母I 表示日期型:用来存放日期格式 :月/日/年 字母 D日期时间:字母T表示逻辑型:值为t或f 宽度为1 表示字母 L备注型:如个人简历 用到字母M 表示通用型:如照片等地方用到字母G 表示任务1 建立 人员表 编号 N(4) 姓名 C(10) 性别 C(2) 出生日期 D 部门 C(6) 职务 C(10) 工资 n(6,2)任务2建立 人员管理数据库任务3 建立 个人情况表 编号 N(4) 姓名 C(10) 性别 C(2) 出生日期 D 家庭地址 M 联系电话 n(11) 重点任务:通过其他表结构建立结构,通过其他表追加记录任务4 建立 部门表 部门 C(6) 负责人 C(10)国家等级考试计算机二级VFP课程第一讲:vfp操作基础以及表的基本操作 主讲:黄建忠3.1.分析各表之间的关系:一对多一对一多对多3.2 表与表之间关系的建立: 索引 索引的分类:1 主索引:不允许出现重复的值,一个表只能建立一个主索引,相当于主关键字 2 候选索引:不允许出现重复的值,但一个表可以建立多个候选索引 3 唯一索引:项目的唯一性 而并非值的唯一性 保留以前版本的索引. 4 普通索引:允许出现重复值,一个表中允许多个出现.3.3 表之间关系的建立(演示操作)3.4 数据库表与自由表比较1 空值 null 用法2 显示:字段掩码(P104)实例:(1)金钱$999.99 格式 (2)编号以 wj开头形式(3)00019999 格式 3 字段有效性:规则,信息,默认值4字段注释 3.5设置参照完整性:关于父表和子表的概念.1 数据库-清理数据库2 数据库-编辑参照完整性注意:建立参照完整性之前必须保证表之间已经建立永久性关系三个规则:1更新规则前提条件:当父表中关键字被更新时 级联:用新的关键字值更新子表中的所有相关纪录限制:若子表中有相关纪录则禁止更新 忽略:允许更新,不管子表中的相关纪录2删除规则前提条件:当父表中的纪录被删除时: 级联:删除子表中的相关纪录 限制:若子表中有相关纪录,禁止删除 忽略:允许删除,不管子表中有没有纪录3插入规则前提条件:当子表中插入一条新纪录或更新一条已经存在的纪录时限制:若父表中不存在匹配的关键字值,则禁止插入忽略:允许插入人员管理数据库中表之间关系已经建立,建立参照完整性:要求 删除规则为级联插入规则为限制更新规则为级联表基本操作命令的补充:Browse 命令Browse fields for 例如:browse fields 编号,姓名 (显示所有人的姓名和编号)Browse fields 编号,姓名 for 性别=”男”Append blank :在表的尾部加一条新的空记删除记录Delete for 删除当前纪录 delete 删除 张三纪录 delete for 姓名=”张三”注意:以上只是逻辑删除,如果物理删除可用 pack恢复纪录语法:Recall for 恢复所有纪录 recall all恢复张三的纪录 recall for 姓名=”张三”纪录修改 Replace 字段1 with 值1,字段2 with值2 for 1 把张三的年龄改成29Replace 年龄 with 26 for 姓名=”张三”2 将所有的年龄加1Replace all 年龄 with 年龄+1显示纪录:list/display for List :显示所有纪录Display 显示当前纪录List all/display all 区别Display all 实现分屏显示例题:显示男生的纪录List for 性别=”男”光标定位:Go:跳转到Go 1 跳转到第一条纪录 Go bottom 跳转到底端Go top : 跳转到顶端Skip 命令 移动到.Skip 1 移动到下一条纪录Skip -1 移动到上一条纪录函数Recno( ):返回当前记录号Eof( ):纪录的结尾 记录结尾指的是最后一条记录的下面Bof( ):纪录的开头.第一条记录的上面定位 locate for 项目管理器的使用1 项目文件的新建 文件新建类型”项目”2 项目文件包含选项:全部,数据,文挡,类,代码,其他数据:数据库,自由表,查询.文档:表单,报表,标签代码:程序,API库,应用程序其他:菜单,文本文件,其他文件.项目文件的使用:1 通过项目管理器 新建 添加 修改 删除数据库2 通过项目管理器查看数据库结构 以及建立结构 Visual foxpro 程序设计基础一 常量与变量 1.1 常量:在运算过程中不发生变化的量 变量:在运算过程中可以发生变化的量二 常量分类:数值型常量:09 ,3.45,5.12E2,5.12e-2,32货币型常量:$3,$1200,一般保留4位有效数字,采用四舍五入的原则.$3.123456 =3.1235字符型常量:用双引号,单引号或 .日期型常量: 1 必须用 2 空白日期或/普通格式 mm/dd/yyyy严格日期格式:2010/10/26 注意:执行命令时 默认使用严格日期格式 如果要使用普通日期格式 必须执行:set strictdate to 0 否则引起错误 同样 设置严格日期格式命令为: set strictdate to 1日期时间型常量:格式:2010-10-26,11:30 p逻辑型常量:只有真和假2种值真:.T.,.t.,.Y.,.y.假:.f.,.F.,.n.,.N.三 变量程序中的基本算法:1 = 赋值 2 原则 从上到下 从右到左3 变量命名规则: 1以字母,汉字,下划线开头,2 只能由字母 数字 下划线 汉字 组成如 判断以下变量: a1,1a,a$,abc_1,中国_1.a_3a,3a_14 变量的赋值: 格式1 :变量名=值 格式2 store 值 to 变量名注意: 1)等号一次只能给一个内存变量赋值2) 变量不仅可以通过重新赋值来改变值,而且能改变类型. 5 关于内存变量和字段变量 如果内存变量和字段变量相同 则可以使用M.姓名 或M-姓名访问内存变量6 VFP 中显示命令 ?/? 分行显示?: 在同一行显示 数组:内存中连续的一片存储区域. 1 一维数组的定义: dimension 数组名(下标) Declare数组名(下标) 如:dimension a(5) a(1)=10a(2)=20.二维数组: dimension 数组名(行下标,列下标) 例如: dimension a(2,2) 注意问题: 1 a(n)数组的下标 从1 开始 到N 也就是a(n) 代表n个变量2 数组只是变量的扩展,所以命名必须符合变量的命名规则3 在赋值和输入语句中使用数组名,表示将同一个值同时赋给所有的数组元素. 例如 dimension a(5) a=10?a(1),a(2). 都是104 在同一个运行环境下 数组名和变量名不能重复.5 可以用一维数组访问二维数组6 如没有给数组元素赋值 默认为.f.内存变量的显示和隐藏 显示所有变量 : list memory显示以a开头的内存变量 list memory like a*/a?提示:*/? 是通配符 * 所有的 ?:任意一个 将变量保存到.txt文件中:list memory to a以上list 可以用display 代替清除内存变量:清除所有内存变量:clear memory清除指定内存变量:release Release a,b,c & 清除 a,b,c内存变量注意:& vfp中的注释语句 与程序无关Release all like :包含之内Release all except :除去之外VFP 中的运算符1 算术运算符+ - * / ( ) % : 取余数 当被除数与除数异号,运算结果为两数相除的余数加上除数的值. 结果符号与除数一致.举例:1常见数值表达式2 常见字符表达式 + 连接- 去尾部空格连接3 日期时间的计算规则:+天数 :若干天后的日期 反之结果一样-天数 :若干天前的日期- 相差的天数+秒数 若干秒后的时间 反之结果相同-秒 数若干秒前的时间-: 指定时间相差秒数关系表达式: = =!=或,#:不等于$:字符串包含测试,包含于提醒:关系表达式一般返回逻辑值 如:35 返回.f.实例分析:普通数值型 货币型比较:01 $150$105 逻辑型数据比较:.t. 大于 .f.子串包含测试:$ 如果左字符表达式1是右字符表达式2的一个子串,则结果返回.t. 否则返回.f.S1=”计算机”S2=”计算机测试中心”?s1 $s2关于=和= =(绝对等于) 比较= = :只有当左右数据绝对相同时候才为真= :结果与 set exact ON/OFF 有关ON:在较短字符串尾部加上若干空格,使得长度相等然后精确比较OFF:只要右边字符串与左边字符串前面部分内容相匹配,结果为真.即 字符串的比较因右边的字符串结束而中止.默认值逻辑运算符:.and.:逻辑与 .or. 逻辑或.not. 逻辑非运算符优先级:算术关系逻辑Notandor?(10%3=1) and(15%2=0) or 电脑!=计算机常用函数: 有参函数 无参函数数值函数: Abs(数值表达式):返回指定数值的绝对值Sign(数值表达式) 返回表达式的符号 正数返回1 负数返回-1 0 返回0Sqrt(数值表达式) 求数值表达式的平方根Pi():圆周率Int(数值表达式) 返回数值表达式整数部分Ceilin(数值表达式) 返回大于或等于数值表达式的整数Floor(数值表达式) 返回小于或等于数值表达式的整数Round(数值表达式1, 小数位数) 返回指定小数位数的值采用四舍五入值Round(345.123,-1)Mod(数值表达式1, 数值表达式2):求余数Min():求最小值Max():求最大值字符函数: Len(字符表达式):求字符串长度大小写转换函数Lower(str):大-小Upper(str):小大Space():生成指定的空格数去空格函数:rtrim/Trim(str):去后空格Ltrim(str):去左空格alltrim(str):去前后空格取子串函数:Left(str,):从str左边取指定长度的子串Right(str,):从str右边取指定长度子串Substr(str,):从str的某个位置开始取指定长度的子串,如不写长度,则表示取到最后.计算子串出现次数函数:Occurs(str1,str2):计算str1在str2中出现的次数求子串位置函数At(str1,str2,):求str1首字母在str2第一次出现的位置数,如果str2中不包含str1则返回0可以指定第几次出现ATC()与 AT()功能相同,不过at()区分大小写子串替换函数STUFF(str1,str2):用str2替换str1中起始位置开始的指定长度子串字符替换函数:Chrtran(str1,str2,str3):将str1中的str2用str3替换字符匹配函数Like(str1,str2):比较str2和str1是否完全相同 如果相同则返回.t. str1允许使用通配符*和?日期和时间函数系统日期和时间Date()Time()Datetime()年份,月份,天数函数Year()Month()Day()时分秒函数Hour()Minute()Sec()数据类型转换1数值-字符 Str(,)字符串转换成数值Val(str)字符串转换成日期和日期时间Ctod(str)Ctot(str)日期和日期时间转换成字符串Dtoc(日期表达式)Ttoc(日期时间表达式)测试函数1值域测试函数:between(表达式1,表达式2,表达式3)相当于 表达式3=表达式1=表达式22 null测试函数Isnull(表达式)3” 空” 测试函数Empty(表达式)4 数据类型测试函数Vartype(表达式)结果: C 字符或备注 N 数值Y 货币 L 逻辑 O 对象 G 通用 D 日期T 日期时间 X null u 未定义5 条件测试函数IIF(条件表达式,结果1,结果2)Iif(cj90,”优秀”,”通过”)判断条件表达式结果是否为 T 如果为T 返回结果1 否则 返回 结果2简单的输入输出命令:1)接收屏幕输入值函数:Input str to 例如:Input “请输入一个数值” to aAccept str to 如上功能一样,只不过接受的数据类型皆是字符型 2)输出屏幕结果提示函数: Wait window timeout 程序的基本结构:顺序,选择,循环1 程序文件的建立 保存 打开 修改文件-新建 选择 程序命令:modify command 程序名(vfp中唯一新建,修改,打开是同一个命令)注意 :扩展名.prg程序文件的执行: do 程序名选择 结构简单形式:If 执行语句Endif形式2:If 执行语句1Else执行语句2Endif注意:if 和 endif 必须 成对 出现,if是程序入口 endif 程序出口 可以嵌套 但不能交叉.多分支语句Do caseCase 执行语句1Case 执行语句2.Otherwise执行语句nEndcase注意:不管有多少个 case条件成立,只有最先成立的case条件命令被执行。循环语句1 理解什么是循环For = to step 步长循环体endforFor i=1 to 3 step ?”你好”Endfor1求1+2+3+.100Sum=0For i=1 to 100Sum=sum+iEndfor?sumdo while 循环体Enddo求1+2+3+.100Set talk off &关闭程序运算的显示过程I=1Sum=0Do while i=100Sum=sum+iI=i+1enddoset talk on?sum试着比较 FORENDFOR 和 do while .enddo区别1用 for 和 while循环求10!2 求1!+2!+3!+.10!循环嵌套内层循环与外层循环的原理For i=1 to 3?”good” For j=1 to 2?”你好” Endforendfor九九乘法表clearfor i= 1 to 9 for j=1 to i ?alltrim(str(j)+ * +alltrim(str(i)+=+alltrim(str(i*j)+ endfor?Endfor补充问题1:关于VFP 中不同类型语句输出问题?”a+b”,c 问题2 :vfp中多个表的同时使用工作区:vfp中 一个工作区只能打开一张表,vfp中最多同时可以拥有32767个工作区,最小的区号是1 最大的是32767语法:select 工作区号例如: select 1 Use 学生 Select 2Use 部门代表在工作区1 打开学生表 工作区2 打开部门表。也可以如下表示 use学生 in 1 use 部门 in 2调用时可以直接 select 1或select 学生 或select A 注明: A 代表 表的别名 前10个工作区指定默认别名为A-Z 工作区11到32767 指定别名为W11-w32767如:以下访问效果一样use 人员 in 1select 人员listselect Alist 表之间临时关系的建立: 前提:表之间索引必须建立语法:set relation to 关联字段 into 表名(需要建立联系的表名而非当前表名)open database 人员管理use 部门 in 1 order 部门use 人员 in 2 order 部门select 1set relation to 部门 into 人员这样就建立了 部门表和人员表之间的临时联系,如要取消 执行如下命令:Set relation to 关闭与所有表的临时联系Set relation off into 人员排序:将当前表根据某些字段重排记录,然后放入一张新表中语法:Sort to on /a|/d|/c for 条件/a升序/d 降序如 Use 人员sort to ry on 编号/d fields 编号,姓名,年龄VFP中常用统计命令的用法1 记录数统计命令:count语法:count to 如:Use 人员Count for 工资1800 to s& 统计人员表中工资大于1800 的记录数2 求和命令:sum语法:sum for to |array Use 人员sum 工资 for 性别=”男” to s?ssum 工资,编号 for 性别=男 to array a?a(1)?a(2)3 求平均值:average for to |arrayaverage 工资 for 性别=女 to c?c&统计女员工的平均工资4 计算命令:calculate语法:calculate for To |array 常用表达式 sum() min() max() avg(数值表达式)calculate max(工资) to a&计算最大工资 汇总命令:total语法:total to on fields for 条件(暂时不讲)Use 人员index on 部门 tag bmtotal on 部门 to gz3 fields 工资use gz3list 关系数据库标准SQL 语言SQL特点:1 一体化:数据定义,数据查询,数据控制,数据操纵。2 高度非过程化3 简洁。4可以直接用于交互式方式SQL 功能:1 数据查询 select:操作记录2 数据定义 create drop alter:操作结构3 数据操纵:insert update delete: 操作记录4 数据控制:grant revoke表的定义:1 完整表的建立:Create table|dbf 表名(字段1 数据类型1(长度),字段2 数据类型2(长度)1) 任务1 建立 ry 编号 N(4) 姓名 C(10) 性别 C(2) 出生日期 D 部门 C(6) 职务 C(10) 工资 n(6,2)Create table ry(编号 n(4),姓名 c(10),性别 c(2).)2) create table ry(姓名 c(10) primary key,性别 c(2),工资 n(6,2)& 建立以 姓名为主索引的表ry3) create table ry(姓名 c(10) primary key,性别 c(2) check (性别=男 or 性别=女) error 错误 default 男,工资 n(6,2)表的删除Drop table ry表结构的修改形式1 Alter table 表名 add 字段名 类型(长度)1)Alter table ry add 家庭地址 c(50)& 增加 字段 家庭地址2)alter table ry add 工资y check 工资0 error 工资 必须大于o default 20003) alter table ry alter 工资 drop check& 删除字段有效性规则,但默认值不删除。形式2 :alter table 表名 drop column 字段名Alter table ry drop column 工资& 删除字段 工资2形式3 alter table 表名 rename column 原字段名 to 修改之后字段名alter table ry rename column 工资 to 工资3数据查询: SQL 核心就是查询也称 select1 单表查询 : 语法: select 字段1,字段2, from 表名 where 条件Select * from 人员Select 编号,姓名,性别 from 人员Select 编号,姓名,性别 from 人员 where 性别=”女”思考:查询1986年以前出生的女员工信息简单排序语法: select 字段1,字段2, from 表名 where 条件 order BY 排序字段 asc|desc注明:asc 升序 desc 降序Select * from 人员 order by 工资 asc思考:将纪录按照工资升序排列,如有相同工资 则按照姓名的升序排列。计算查询 Count( ) 计算记录条数 sum( ) 求和 avg( ) 平均值 max( ) 最大值 min( ) 最小值Select count(*) from 人员 where 性别=”男”& 统计男员工的记录数Select avg(工资) as 平均工资 from 人员 & 统计工资的平均值 用 平均工资 字段显示查询工资在平均工资以上的员工的信息思考:查询 财务部和技术部工资大于1800的人员姓名,部门,工资select 部门,姓名,工资 from 人员 where 工资1800 and (部门=技术部;or 部门=财务部)(注意命令分行的用法)分组与计算查询Select - from 表名 where 条件 group by 分组字段字段名 having 分组字段名限制条件1 统计各部门人员数Select 部门, count(*) from 人员 group by 部门 & 用AS 可以用新的字段显示记录2 统计 各部门男员工的记录数Select 部门,count(*) as 人数 from人员where 性别=”男” group by 部门3 统计各部的 平均工资Select 部门,avg(工资) as 平均工资from 人员group by 部门4 统计至少有2个员工或2个以上员工的部门Select 部门,count(*) as 人数from 人员 group by 部门 having 人数=2Betweenand 和 like 的用法查询工资在1800-2500 (包含1800和2500)的员工信息Select * from 人员 where 工资 between 1800 and 2500查询姓张的人员信息Select * from 人员 where 姓名 like”张%”通配符:_(下划线) 表示任意一个字符 % 表示 任意多个字符 标准sql与以前?和* 有所不同简单连接查询:基于多个关系的查询查询 张三的姓名,性别,工资, ,联系电话,家庭地址select 人员.姓名,家庭地址,联系电话 from 人员,个人情况 where 人员.编号=个人情况.编号注意:1如果有相同字段 前面必须加上表名.字段名 如 人员.姓名2 不能忽略连接条件 人员.编号=个人情况.编号3 连接查询的目的是将多张表连接成一张表。任何一个表中的字段都可作为条件使用查询 员工的姓名,部门,负责人select 姓名,人员.部门,负责人 from 人员,部门 where 人员.部门=部门.部门查询工资 大于2000 元的人员姓名,工资,部门和部门负责人。select 姓名,工资,人员.部门,负责人 from 人员,部门 where 工资2000 and 人员.部门=部门.部门思考 查询 工资大于2000的男员工 的姓名,家庭地址和联系电话select 人员.姓名,家庭地址,联系电话 from 人员,个人情况 where 人员.性别=男 and 工资2000 and 人员.编号=个人情况.编号嵌套查询:其结果来自一个查询,条件却基于其他查询.查询 和黄小明在一个部门的员工思考:查询和黄小明赚同样工资的员工姓名和工资查询 不是王小明负责的员工姓名,工资Select 姓名,部门 from 人员 where 部门 not in(select 部门 from 部门 where 负责人=”王小明”)查询部门 表中 哪些部门 至少有1个员工工资大于2300元.思考:查询部门 表中 哪些部门 至少有1个员工工资大于2300元.Select 部门 from 部门 where 部门 in(select 部门 from 人员 where 工资2300)查询 部门表中所有职工都大于1900元的部门 信息Select * from 部门 where 部门 not in(select 部门 from 人员 where 工资=2)查询 和黄小明在一个部门的员工Select * from 人员 where 部门=(select 部门 from 人员 where 姓名=”黄小明”)思考:查询和黄小明赚同样工资的员工姓名和工资查询不在技术部的人员信息Select * from 人员 where 部门!=”技术部”利用别名查询select r.编号,r.姓名,g.出生日期,g.联系电话 from 人员 r,个人情况 g where r.编号=g.编号VFP select 中几个特殊选项1 只显示前面几项的结果 topSelect * top 3 from 人员 order by 编号注意:top 必须和order by 搭配 而having和group by搭配.2 将查询结果保存到数组中Select * from 人员 into array abc可以用二维数组来访问比如 abc(1,1)3将查询结果保存到临时表文件中Select * from 人员 into cursor abc4将查询结果保存到永久表中Select * from 人员 order by 编号desc into table abcSelect * from 人员 into dbf abc5将查询结果保存到记事本文件中Select * from 人员to file abc超级连接Inner join 或join 普通链接Left join 左连接Right join 右连接Full join 全连接以上用On 指定连接条件(而不是where)join普通连接:只显示2个表中符合条件的字段或记录select 人员.编号,个人情况.姓名,联系电话 from 人员 join 个人情况;on 人员.编号=个人情况.编号 and 人员.性别=男left join左连接:显示表满足条件的字段同时显示第一个表中不满足条件的字段也出现在查询结果中,第二个表中不满足条件的字段用.null.显示select 编号,姓名,部门.部门 from 人员 left join 部门;on 人员.部门=部门.部门 and 负责人=王小明right join 右连接: 显示满足条件的字段,第二个表中不满足条件的字段也出现在查询结果中,第一个表中不满足条件的字段用.null.表示full join 全连接:显示满足条件的字段+左连接+右连接记录的插入:Insert into 表名(字段1,字段2,.)values(值1,值2)insert into 人员(编号,姓名,性别)values(1009,abc,男)注意:值和字段类型必须相匹配 主索引不能为重复值更新纪录Update 表名 set 字段1=新值1,字段2=新值2 where 更新张三的工资为2000update 人员 set 工资=2000 where 姓名=”张三”把所有人的工资都改成2500update 人员 set 工资=2000思考:把所有员工的工资都+100如下计算实际工资update 人员 set 实发工资=总工资+奖金-保险扣除记录的删除Delete from 表名 where 条件删除张三的记录Delete from 人员 where 姓名=”张三”删除所有记录Delete from 人员查询与视图:查询:查询是由select语句组成的只读文件 Select from wheregroup by Having order by into table.建立查询任务1:利用向导建立单表查询步骤:1字段选取(select)2 按条件筛选记录(相当于 where)3 排序记录 (相当于 order by)任务 2 利用向导建立多表查询方法一样 只不过多了 关系选择。任务3 利用图形向导建立表利用查询设计器建立查询1 文件-新建-查询2 create query 查询文件名查询文件的运行 : do abc.qpr也可以点 ! 运行注意扩展名:.qpr任务1 利用查询设计器查询人员表中性别为男的员工姓名和工资。按工资排序.任务2 利用查询设计器查询人员和部门 表中性别为男的员工工资,姓名,部门,负责人。并将结果保存到 bm.dbf 中任务3 查询所有员工的平均工资,最低工资,工资总和任务4 查询有2个或2个以上员工的部门显示部门和人数任务5 查询各部门的平均工资 显示部门和平均工资 并按平均工资的降序排列任务6 查询有2个或2个以上男员工的部门 显示部门和人数 字段 并将结果保存到bm表中视图:可以通过视图查询表并且可以更新表视图的建立:Create view 视图名 as select 文件-新建视图查询与视图的区别1查询 是以独立文件(.qpr)存于磁盘,是个单独文件 而视图仅仅是数据库功能的一部分 是个虚拟的文件2 查询是只读的 而视图则可更新 视图中多了一个”更新条件” 选项卡(注意选择:发送SQL更新)3 在视图中没有”查询去向表 单关于 对象,对象属性,对象方法,对象事件的理解。利用向导建立单表表单人员。表单的简单建立,运行 修改方法。表单事件的讲解。事件:1 自动运行事件(load) 2 触发事件(click等)Vfp中常用事件与方法表单自动运行事件1 load:在表单建立之前发生:即运行表单时,先触发load事件2 init:在对象建立时触发.发生在所包含控件load事件之后3 destroy: 在对象释放时触发发生在unload之前4 unload:在表单对象释放时触发常用触发事件(交互时事件)Click:用鼠标单击对象引发Dblclick:双击对象引发Rightclick:右击对象引发Interactivechange:交互式改变一个控件的值时触发方法:Show:显示表单Hide:隐藏表单Release:关闭表单Refresh:刷新表单数据表单的工作环境:1 表单的建立,运行,修改方法Create form abcDo form abc 运行表单abcDo abc 运行程序 abcDo abc.qpr 运行查询Modify form abc2 与表单操作相关的窗口 1)属性窗口:设置好属性后按回车2)表单控件工具栏:添加,移动,删除控件的方法3)表单设计器:设置tab顺序 数据环境 属性窗口代码窗口 表单控件工具栏 调色板工具栏 布局工具栏 表单生成器 自动格式 常用表单属性:1 alwaysontop:指定表单是否位于其他窗口之上2 autocenter 指定表单默认居中 3 backcolor:指明表单背景颜色4 borderstyle:指定表单边框风格5 caption:指定表单的标题6 closable:指定是否可以通过关闭按钮关闭表单7 maxbutton 确定表单是否显示最大化按钮8 minbutton 确定按钮是否有最小化按钮9 scrollbars:确定表单的滚动条类型0 无 1 水平 2垂直 3即水平又垂直10 enabled:指定表单内部对象是否可以由用户操作11 height:高12 width:宽13 left , top 设置距离左或顶端距离14 name :表单对象的名称建立标题为公司人员名称为 gs 保存文件名为 公司信息 的表单15 visible:设置表单内部对象是否可见关于不同对象不同事件的方法关键字: thisform 当前表单 This 当前对象2种思路:一 通过当前对象访问自身属性或方法 This.属性或方法 Thisform.属性或方法二 通过当前对象访问其他对象Thisform.对象名.属性或方法表单控件1 标签控件label(常用属性讲解)caption 标题autosize 默认大小设置alignment 对齐 0 左 1右 2 中央borderstyle 是否设置边框样式 0 无边框 1 单线backcolor:背景颜色backstyle 标签是否透明 0 透明 1 不透明enabled:指定表单或对象是否可以由用户引发的事件 t 可以 f 不能forecolor 文字颜色wordwrap 设置文本是否换行fontname 字体fontsize 字号fontbold 加粗name :设置名称visible:设置对象是可见的还是隐藏的设计表单。当单击表单上的文字“欢迎新同学”时文字变为“学习要勤奋”,再双击就又恢复成以前的文字。单击退出按钮释放表单。 实例计算1+2+.100和s=要求:完成计算和退出功能 如01.scx命令按钮属性 caption:设置按钮上的文本enabled 按钮是否有效 T 有效 F 无效default 是否设置为默认按钮可以用enter激活cancel 是否是 取消按钮可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营销管理创新方案
- 智能排泄护理系统介绍
- 痤疮居家护理方法
- 尘毒治理工作总结模版
- 上学期德育工作总结模版
- 大学生职业规划大赛《审计学专业》生涯发展展示
- 流动人口计划生育工作总结
- 流动人口工作总结【13篇】
- 天津市汉沽区名校2025年数学七下期末学业质量监测试题含解析
- 护理新员工发言
- 2024年安徽高考生物试卷试题真题及答案详解(精校打印版)
- 2024年中考英语真题-带答案
- JTG 3432-2024 公路工程集料试验规程(正式版)
- 中建项目管理手册2023年
- 中国古代的声学成就
- 甲状腺健康科普宣传课件
- 2024年中国十五冶金建设集团限公司公开招聘中高端人才公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 医药代表拜访情景演练
- 中国竹笛演奏智慧树知到期末考试答案章节答案2024年四川音乐学院
- 培训机构校长竞聘
- 2019数据中心网络机柜技术规范
评论
0/150
提交评论