VFP中的难点1.0.doc_第1页
VFP中的难点1.0.doc_第2页
VFP中的难点1.0.doc_第3页
VFP中的难点1.0.doc_第4页
VFP中的难点1.0.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VFP中的难点一、索引的总结类别举例新建单索引(idx)Use yyyIndex on 姓名 to xm1.idxIndex on 性别 to xb1Index on 部门+dtoc(出生日期,1) to bm1结构复合索引(cdx)Use yyyIndex on姓名 tag xmIndex on 性别 tag xb非结构复合索引(cdx)Use yyyIndex on姓名 tag xm2 of fjgIndex on 性别 tag xb2 of fjg打开结构复合索引随表一同打开或关闭单索引Use yyy index xm1,xb1或use yyySet index to xm1,xb1非结构复合索引Use yyy index fjg或use yyySet index to fjgSet order to 0/1/2 | xm2,xb2关闭单索引/非结构复合索引Close index结构复合索引与表一同关闭或打开数据改动打的索引reindex索引文件之间的转换单索引复合索引use yyy index xm1,xb1 (xm1.idx,xb1.idx两个素引文件copy index xm1,xb1*结构复合索引copy index xm1,xb1 to fjg*非结构复合索引复合索引单索引set index to fjg *打开非结构复合索引文件/如果是结构复合索引文件已经随表打开了modi strucopy tag xm2 to xm3.idxcopy tag xb2 to xb3.idxreview(素引、排序等)删除记录use 课程表browpackbrow物理排序sort on 考试类型/d,课程代号/a to kcbsele j?sele()use kcbbrowsele 1素引单素引index on 考试类型 to kslxbrowset order to kslxset order to 1browclose indexbrowsele 1index on 考试类型 to kslxbrowclose indexbrowset index onset index to kslxbrowclose index结构素引index on 考试类型 tag ksindex on 课程代号 tag kcdir *.cdxclose index非结构素引index on 考试类型 tag ks of fjgindex on 课程代号 tag kc of fjgset index to fjgset order to kcbrowset order to ksbrowdele tag kc of fjgclose indexset index togo 7go 1brow物理查找locate for 课程名称=算法设计?recno()?found()dispcontinue?found()?eof()素引查找index on 课程名称 tag kcmcset order to kcmcseek 算法设计?found()clear?found()dispcontinue()?eof()browseek 成绩=68seek 68browkcmcindex on 学时数 tag xssseek 68?found()dispfind 68dispgo 1find 68brow统计计算计数count to xx?xxbrowcount to xx for 考试类型=考试?xx求和sum to x1 fields 学时数sum 学时数 to x1求平均值average 学时数 to x2 for 考试类型=考试calculate sum(学时数),avg(学时数),max(学时数);min(学时数) to x1,x2,x3calculate sum(学时数),avg(学时数),max(学时数);,min(学时数) to x1,x2,x3,x4brow分类汇总index on 考试类型 tag lxset order to lxtotal on 考试类型 to y1 fields 学时数use y1browclose allclear多表临时性关联多表临时性关联第1步sele 2(先设子表)use clkcindex on 材料代码 tag dmset order to dm第2步sele 4use clls(clls为主表)第3步set relation to 材料代码 into clkc(当前在哪一个工作区)第4步set skip to clkc(建立一对多的关联)查看sele 4browsele 2browsele 2diruse clkcindex on 材料代码 tag dmset order to dmsele 4use cllsset relation to 材料代码 into clkcgo 4browsele 2browsele 4set skip to clkcgo 4browset skip toset relation toclose allopen data 110creat 110creat data 110modi dataOPEN DATABASE d:vfp学生实验原始表x10.dbc SHAREDMODIFY DATABASEUSE d:vfp学生实验原始表clls.dbf IN 0 SHAREDSELECT 2SELECT 1SELECT 2SET ORDER TO TAG Dd OF d:vfp学生实验原始表clkc.cdx IN ClkcSET RELATION TO Clls.材料代码 INTO Clkc ADDITIVEUSE d:vfp学生实验原始表clkc.dbf IN 0 AGAIN ALIAS Clkc_a SHAREDUSE d:vfp学生实验原始表x4.dbf IN 0 SHAREDSELECT 4BROWSE LASTSET ORDER TO TAG Dm OF d:vfp学生实验原始表clls.cdx IN CllsSET RELATION TO X4.材料代码 INTO Clls ADDITIVESELECT 2SET RELATION OFF INTO ClkcSELECT 4SET RELATION OFF INTO CllsUSESELECT 2USESELECT 3USESELECT 1USE多表联接操作多表联接操作(一)第1步sele 2use clkc第2步sele 4use clls第3步join with b to yy for 材料代码=b.材料代码 fields 材料代码,b.单价(当前在哪一个工作区)查看sele 6use yybrowSQL命令联接(二)操作sele cyclb.材料名称,单价,经手人,进出数量 from clls,cyclb;where clls.材料代码=cyclb.材料代码 .and.供货商名称=;大华建筑材料公司 order by 单价 descending into dbf xxx查看use xxxbrowsele 2use clkcsele 4use cllsjoin with b to yy for 材料代码=b.材料代码 fields 材料代码,b.单价sele 6use yybrowSQL命令联接查询(二)【例】检索供货商名称为“大华建筑材料公司”的所有进出材料的材料名称、单价、经手人、进出数量,并按单价从高到低的顺序列出。sele cyclb.材料名称,单价,经手人,进出数量 from clls,cyclb;where clls.材料代码=cyclb.材料代码 .and.供货商名称=;大华建筑材料公司 order by 单价 descending into dbf xxxuse xxxbrow二、SQL查询:Structure Query Language(Select Creat Alter)一、select1简单查询【例】从材料流水帐表中检索所有材料名称SELECT 材料名称 FROM CLLSSELECT distinct 材料名称 FROM CLLSSELECT* FROM CLLS WHERE数量3002嵌套查询【例】列出材料流水帐表中数量大于300以上的材料的材料名称、单价、品牌与供货商名称。sele 材料名称,单价,品牌,供货商名称 from cyclb where ;材料代码 in (sele 材料代码 from clls where数量=100 )【例】列出单价在100以下,进出数量在300以下的所有材料的记录。sele * from cyclb where 单价=100 )3联接查询【例】检索供货商名称为“大华建筑材料公司”的所有进出材料的材料名称、单价、经手人、进出数量,并按单价从高到低的顺序列出。sele cyclb.材料名称,单价,经手人,进出数量 from clls,cyclb;where clls.材料代码=cyclb.材料代码 .and.供货商名称=;大华建筑材料公司 order by 单价 descending4计算查询函数名功能COUNT()计算记录个数(求查询结果数据的行)SUM(字段名)求字段名所指定字段值的总和AVG(字段名)求字段名所指定字段的平均值MAX(字段名)求字段名所指定字段的最大值(数值、字符、日期)MIN(字段名)求字段名所指定字段的最小值(数值、字符、日期)【例】统计项目管理人员表中项目管理人员的专业种类、最大年龄、最低工资、平均工资,命令形式如下:sele count(distinct 专业),max (年龄),min(工资),avg(工资) from glrysele count( 专业),max (年龄),min(工资),avg(工资) from glry【例】统计项目管理人员表中年龄最小的女员工的生日,男员工的平均年龄,以及女员工的人数。对应的命令分别为:sele count(*) as 女员工人数,max(出生日期) as 最小女员工生日;from glry where 性别=女sele avg(年龄) as 男员工平均年龄 from glry where 性别=男5分组与计算查询【例】依据项目管理人员表中的数据,分别统计各种专业的人数。SELECT 文化程度, COUNT( * ) AS 人数 FROM GLRY GROUP BY 文化程度【例】依据项目管理人员表中的数据,分别统计各种专业的人数,仅列出统计人数小于4人的结果。sele 文化程度,count(*) as 人数 from glry;group by 文化程度 having count(*)=30 order by 工资 descending【例】显示项目管理人员表中工资最低的25员工的记录。sele * top 25 percent from glry order by 工资(2)将查询结果存放到永久表中sele * top 4 from glry where 年龄=30 order by 工资 desc;into table gzuse gzbrowSELECT TOP 4 FROM GLRY WHERE 年龄30 ORDER ; BY 工资 DESC INTO CURSOR GZ2(4)将查询结果存放到二维数组中sele * top 4 from glry where 年龄=30 order by 工资 desc;into array tema?tema(1,1) (5)将结果存放到文本文件中sele * top 4 from glry where 年龄=30 order by 工资 desc;to file x3二SQL定义功能(Creat )1表的定义CREATE TABLE YGQK FREE(XM C(8),XB C(2),; HFL,DHC(14),NLN(2,0)CREATE TABLE CLKC(材料代码C(13); DEFAULT “HZ04DHJZ0000H”, 材料名称C(10), 单价N(8),数量N(8,2)CHECK 数量2 .AND. 数量50000; ERROR“数量范围应在2到50000之间!”,; 供应商名称C(20)PRIMARY KEY)) 2建立视图creat data 1013creat sql view xx as selec clls.材料代码,clls.材料名称,cyclb.单价 from clls,cyclb ;where clls.材料代码=cyclb.材料代码browmodi view xx【例】依赖一个数据库表创建视图。在“小型项目管理系统”数据库中,创建一个名为“低价材料”的视图,由“材料库存”表中单价小于50的材料记录形成。OPEN DATBASE 小型项目管理系统CREATE VIEW 低价材料 AS;SELECT FROM CLKC WHERE 单价50USE 低价材料BROWSECLOSE DATABASE【例】依赖多个数据表创建视图。在“小型项目管理系统”数据库中,创建一个名为“进库材料”的视图,由“材料流水表CLLS”中“材料名称”、 “经手人”和“材料库存表CLKC”中的“单价”、“供货商名称”4个字段形成。 OPEN DATABASE 小型项目管理系统 CREATE VIEW 进库材料 AS; SELECT CLLS.材料名称, CLLS.经手人, CLKC.单价, ; CLKC供货商名称; FROMCLLS,CLKC; WHERE CLLS.材料代码=CLKC.材料代码; .AND.CLLS.材料进出.T.三SQL修改功能(Alter )1、修改表结构ALTERTABLEYGQKADDZZC(24)ALTERTABLEYGQKALTERXMC(10)【例】在例523创建的“材料库存”表中,为“单价”字段设置一个默认值“988.88”,并删除“库存数量”字段的条件约束。OPEN DATABASE 项目管理ALTER TABLE CLKC ALTER 单价 SET DEFAULT 98888ALTER TABLE CLKC ALTER 库存数量 DROP CHECK【例】在已创建的“员工基本情况”表中,删除“家庭住址(ZZ)”字段,并将其“电话”字段改名为“家庭电话(JTDH)”,其SQL命令分别为:ALTER TABLE YGQK DROP COLUMN ZZALTER TABLE YGQK RENAME COLUMN DH TO JTDH【例】在已创建的“材料库存”表中,为“材料代码”字段创建一个候选索引。 OPEN DATABASE 项目管理 ALTER TABLE CLKC ADD UNIQUE 材料代码删除视图的SQL命令【例】删除“小型项目管理系统”数据库中名为“低价材料”的视图。 OPENDATABASE小型项目管理系统 DROPVIEW低价材料删除数据表【例】删除“小型项目管理系统”数据库中的“进库材料”表。 OPEN DATABASE 小型项目管理系统 DROP TABLE 进库材料2、修改记录及数据库等【例】利用SQL命令在已创建的“员工基本情况”表中插入新记录。1)、插入新记录所有字段的数据: INSERTINTOYGQK; VALUES(“吴海”,“男”,.F.,“5865678”,24)2)、插入新记录部分字段的数据: INSERTINTOYGQK; (姓名,电话)VALUES(“刘丽”,“4523986”)【例】先创建3个同名内存变量,再利用SQL命令将内存变量的值作为新记录插入到“员工基本情况”表中。 姓名“江波” 性别“男” 电话“8667868” INSERT INT 员工基本情 FROM MEMVAR3)更新数据Update glry set 年龄=年龄+1,工资=工资*1.1Update glry set 姓名=”李勇”,部门=”办公室” where 姓名=”王勇”Update glry set 工资=工资+30 where 性别=”男”3删除数据【例】用SQL命令,将“项目管理人员表GLRY”中所有40岁以上男员工的记录进行逻辑删除,然后再做物理删除。 DELETE FROM GLRY WHERE 年龄40 AND 性别“男” PACK20110928上课记录creat dbf studentxj free (xm c(8),xb c(2),ty l,;csrq d)modi strucreat xxmodi st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论