VFPSQL语句大全.docx
- 文档编号:10176827
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:25
- 大小:30.52KB
VFPSQL语句大全.docx
《VFPSQL语句大全.docx》由会员分享,可在线阅读,更多相关《VFPSQL语句大全.docx(25页珍藏版)》请在冰点文库上搜索。
VFPSQL语句大全
VFP——SQL语句大全
VFP命令、函数及程序语句大全
一、主要命令:
1、CREATE
CREATEDATABASE库文件名.DBC―――建立数据库:
CREATETABLE/DBF表名(各个字段属性)¬¬¬¬¬¬¬¬¬¬¬¬¬¬—————建立表
CREATEVIEW<视图名>AS
执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
2.DROP
DROPVIEW<视图>————删除视图
3、MODIFYSTRUCTURE作用:
显示表文件结构,并允许修改此表的结构。
格式:
MODIFYSTRUCTURE
说明:
只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
4、APPEND
作用:
在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:
APPEND[BLANK]
说明:
在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。
无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
5、INSERT
INSERTBLANKBEFORE在当前表的当前记录之前插入一条空白记录
INSERTINTO表名[(字段]VALUES(表达式1[,表达式2…])——插入记录
INSERTINTO表名FROMARRAYArrayName|FROMMEMVAR
如带有FROMMEMVAR子句,则用同名的内存变量给字段赋值。
例:
INSERTINTO学生(XH,XM,XB)VALUES(“950106”,“高山”,“男”)
6.ALTERTABLE表名ADD字段名字段类型(字段参数)―――添加字段
ALTERTABLE表名ALTER字段名SETCHECK<条件>——为字段添加有效性规则
例:
ALTERTABLE评分ALTER分数SETCHECK分数>=0AND分数<=10
ALTERTABLE表名DROP字段名[ALTERCOLUMN字段名Type{NULL|NOTNULL}][{,字段名TypeNULL|NOTNULL}...][DROP字段名[,字段名[,...]]
例:
altertable歌手add最后得分F(6,2)
7、UPDATE
update<表名>set<字段1=表达式1>,<字段2=表达式2...>where<条件>
例:
update产品set单价=单价*1.08
8、BROWSE
作用:
打开一个“浏览”窗口,供用户浏览或修改记录。
格式:
BROWSE[FIELDS<字段名表>]
9、USE
作用:
打开和关闭表文件。
格式:
USE[<文件名>]
10、LIST和DISPLAY
格式:
LIST|DISPLAY[OFF][<范围>][FIELDS]<表达式表>[WHILE<条件>][FOR<条件>]
[TOPRINT|TOFILE<文件>]
LIST|DISPLAYSTRUCTURETOPRINT|TOFILE<文件>)
LIST|DISPLAYSTATUS[TOPRINT|TOFILE<文件>]
注:
LIST命令一次连续显示完所有记录内容。
DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示。
如果LIST与DISPLAY都无任何选择项时,LIST显示文件的全部记录,DISPLAY仅显示当前记录。
11、记录的定位
作用:
用记录指针(POINTER)定位记录。
格式:
1)GO[TO]RECORDn|TOP|BOTTOM
命令定位GO[RECORD]NGOBOTTOMGOTOP
2)n
3)SKIP[+|-]n
说明:
第一个命令又叫绝对定位,其中,RECORDn定位到n号记录,TOP定位到第1个记录,
BOTTOM定位到最后一个记录。
第二个命令定位到第n个记录,n是一个数值。
第三个命令又叫相对定
位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后移一个记
录。
LOCATE[<范围>]FOR<表达式>范围:
ALLNEXTN,RECORDN,REST
12、CHANGE和EDIT
作用:
显示要编辑或修改的字段。
格式:
CHANGE|EDIT[<范围>][FIELDS<字段名表>][WHILE<条件>][FOR<条件>]
13、REPLACE
格式:
REPLACE[<范围>]<字段1>WITH<表达式1>[,<字段2>WITH<表达式2>][FOR<条件>][WHILE<条件>]
例:
REPLACEALL工资WITH工资+200FOR工资<1000
REPLACEFROMARRAY数组名[FIELDS字段名列表][常用子句]——用内存数组的值更新数据表中的记录:
14、DELETE、PACK、ZAP和RECALL
作用:
分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的删除标志。
格式:
DELETE[<范围>][WHILE<条件>][FOR<条件>](特例:
DELETEFILEFILENAME.DBF,该命令删除指定的表文件)
DELETETAGALL[OF复合索引文件名]
DELETETAG索引标识1[OF复合索引文件名1][,索引标识2[OF复合索引文件名2>…
例:
DELETEFROM订单WHERE签订日期<={^2001-01-02}
PACK
ZAP
RECALL[<范围>][FOR<条件>][WHILE<条件>]
13、SORT和INDEX
1)SORT
作用:
是建立一个其记录以新的物理顺序排列的新表文件,原文件不变.
格式:
SORTTO<文件名>ON<字段名1>[/A][/C][/D][,<字段名2>[/A][/C][/D>...
[ASCENDING|DESCENDING][<范围>][FOR<条件>][WHILE<条件>][FIELDS<字段表>]
2)INDEX
作用:
对当前表根据关键字表达式的值从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。
格式:
INDEXON<关键字表达式>TO<文件名>
INDEXON<关键字表达式>TAG<标识名>[OF<文件名>][FOR<条件>]
说明:
第1个命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小写,针对字符型。
关键字而言,ASCENDING和DESCENDING分别表示升序和降序。
第1个命令建立.dbf表文件,第2个命令建立.idx单一索引文件,第3个命令建立.cdx复合索引文件(CompoundIndex)。
15、USE<表文件名>INDEX<索引文件名表>、SETINDEXTO和SETORDERTO
作用:
分别是打开表文件的同时打开索引文件、打开索引文件和改变主索引。
并确定第一个索引文件为主控索引文件.(当前起作用的索引文件称为主控索引文件,当前起作用的索引标识称为主控索引)
格式:
USE<表文件名>INDEX<索引文件名表>
SETINDEXTO[<索引文件名表>]
作用:
打开当前表的一个或多个索引文件并确定第一个索引文件为主控索引文件,该命令用于单索引文件.
格式:
SETINDEXTO[<索引文件表>][ADDITIVE]
说明:
(1)[<索引文件表>]中第一个索引文件为主控索引文件.
(2)若缺省ADDITIVE选项,则在用本命令打开索引文件时,除结构复合索引文件以外的索引文件均被关闭
SETORDERTO[<数值表达式>]|[<单索引文件名>]|[TAG]<索引标识>[ASCENDING|DESCENDING>(特例:
重新索引命令:
REINDEX)
作用:
对于打开表时自动打开的复合索引文件确定主索引,也能确定主索引文件.
(1)数值表达式表示已打开的索引的序号.系统先为单索引文件编号,故结构复合索引文件的序号比单索引文件大.
(2)SETORDERTO或SETORDERTO0命令取消主索引和主索引文件,表中记录将按物理记录输出.
16、FIND、SEEK和LOCATE及CONTINUE
作用:
前两个命令FIND和SEEK是在一个已经建立了索引文件的表中,定位到关键字中的内容与命
令行中字符串相同的第一个记录。
后一个命令在用USE打开表文件以后,直接查询表中字段内容。
格式:
FIND<“字符串”>|<字符串>SEEK<表达式>(表达式的数据类型可为字符型、数字型、日期型和逻辑型。
)
LOCATE[<范围>][FOR<条件>][WHILE<条件>]
CONTINUE
说明:
FIND命令与SEEK命令的区别是前者后跟字符串,而后者后跟表达式。
在用LOCATE命令找到
一个匹配记录后,可用CONTINUE命令搜索表的剩余部分来寻找其他匹配的记录。
18、COUNT
作用:
统计当前表文件中符合条件的记录数。
格式:
COUNT[<范围>][FOR<条件>][WHILE<条件>][TO<内存变量名>]
说明:
内存变量名可用除参数外的任意字符。
19、SUM
作用:
对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求和。
格式:
SUM[<范围>][数值<表达式>][TO<内存变量名表>][FOR<条件>][WHILE<条件>]
20、AVERAGE
作用:
对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。
格式:
AVERAGE[<范围>][数值<表达式>][TO<内存变量名表>][FOR<条件>][WHILE<条件>]
21、TOTAL
作用:
分类汇总命令,按<表达式>做过索引或排序的表文件的数字型字段进行分类汇总。
它把与<表达式>值相同的所有记录中的数字字段的值分别进行求和,并各自作为一条记录存放在由文件指定的文件中去。
在新生成的记录中,还将包括与<表达式>值相同的所有记录中的首项记录的其他字段内容。
格式:
TOTALTO<文件名>ON<表达式>[FIELDS<数值型字段名表>][<范围>][FOR<逻辑表达式1>][WHILE<逻辑表达式2>]
例:
USEB2-1
INDEXON职称TOZC
TATOLON职称TOB2-1TFILEDS工资
22.APPENDFROM
作用:
从其他文件向表文件添加数据。
数据来源文件既可以是表文件,也可是文本文件或其他符合规定的文件。
从一个文件输入一个OLE对象放入一个通用(general)字段:
APPENDGENERAL通用字段名[FROMfilename]如果省略子句FROMfilename,则将指定的字段清空。
将一个文本文件的内容拷贝到一个备注字段:
APPENDMEMO备注字段名[FROMfilename][OVERWRITE]
格式:
APPENDFROM<文件名>|?
[FIELDS<字段名表>][FOR<逻辑表达式>]
FIELDS<字段名表>和FOR<逻辑表达式>,用于源文件为表文件时,指定追加记录的字段和条件。
在字段名表和逻辑表达式中的字段名,必须是在来源和目的两个文件中公有的,共注意宽度和类型匹配。
实际应用中,数据来源文件常为表文件(.DBF)和ASCII码文本文件(.TXT)
对于文本文件又有标准格式(SDF)和通用格式(DELIMITED)之分.
例:
USEB2-1APPEFROMS3-1.TXTSDFBROWSE
23.COPY(选择表的部分内容生成一个新表)
作用:
把打开的表文件结构及数据复制成由<文件名>所指定的并符合规定要求的文件。
如果默认全部选择项和文件名的扩展名,则结构及全部数据都被复制,且其文件扩展名由系统规定为“.DBF”。
格式:
COPYTO<文件名>[FIELDS<字段名表>][<范围>][FOR<逻辑表达式1>][WHILE<逻辑表达式2>]
格式中的或用来为新表建立一个与原表相同的结构索引.
例1:
COPYTOB3-2COPYTOS3-2.TXTSDF
例2:
USERS
COPYTORS3FIELDS姓名,基本工资,奖金
USERS3
LIST
24.COPYFILE复制数据整表:
(可用于复制任何类型文件)
COPYFILE原文件名TO目标文件名
注:
复制表时,还应当复制和它相配的备注文件(.FPT,如有备注字段)和结构复合索引文件。
当前表应关闭。
(如果已打开表:
COPYTO新文件名)
例:
将RS.DBF复制为RS1.DBF
COPYFILERS.DBFTORS1.DBF
或 USE RSCOPYTORS1USERS1LIST
25.COPYSTRUCTURE(只复制结构不复制数据)
作用:
表文件结构复制,生成一个指定文件名和包括指定字段的表文件结构;如有CDX或PRODUCTION选择项还将为新表建立一个与源表相同的结构索引.
格式:
COPYSTRUCTURETO<文件名>[FIELDS<字段名表>]
例:
COPYSTRUCTURETOB3-3FIELDS编号,姓名,何时工作,职称
26.copyto建立结构扩展文件
作用:
把已打开的表文件的结构作为数据记录复制到由<文件名>指定的库文件中去.
格式:
COPYTO<文件名>STRUCTUREEXTENDED
例:
USEB3-3
COPYTOB3-4STRUCTUREEXTENDED
USEB3-4
BROW
该命令可以用于测试表文件结构,也可以用于顺序方式建立库文件结构.
新库文件的结构是一个由系统规定的标准结构,它由4个字段构成:
FIELD_NAME字段名
FIELD_TYPE字段类型
FIELD_LEN字段宽度
FIELD_DEC小数位数
27.常用命令:
库表
打开数据:
OPENDATABASE库文件名
打开表:
USE表文件名
使用非前库的表:
USE库名!
表名
打开索引表:
USE表名INDEX索引名
显示库信息:
DISPDATABASE[TOPRINTER]
显示记录:
LIST(快速查看)
BROWSE(分屏浏览可修改)
DISP(显示当前记录)
关闭数据库:
CLOSEALL(关闭所有库、表、索引)
关闭表:
USE
CLOSEDATABASES(关闭当前库、表)CLOSETABLES(关闭当前表,不关库)
CLOSEINDEXES(关闭当前索引)
添加表:
ADDTABLE表名追加记录:
APPEND
APPENDFROM源文件
移去表:
REMOVETABLE表名
删除库:
DELETEDATABASE库名(先关闭库)
删除表:
DELETEFILE表名(先关闭表)
二、字符中操作函数
UPPER(S)小写字母UPPER(abc)ABC
LOWER(S)大写字母LOWER(ACD)acd
LEN(S)求字符串的长度LEN("中国1号")7
AT(S1,S2)在字符串S2,找字符串S1AT("H","CHINA")2
SUBSTR(S,I,N)在S字符串中的第I个字符起取N个字符SUBSTR('TECHNOLO',3,3)CHN
LEFT(S,N)从字符串S左边取N个字符LEFT(“中国人”,4)中国
RIGHT(S,N)从字符串S右边取N个字符S=‘12345’
RIGHT(S,3)345
SPACE(N)生成N个空格"合计"+SPACE
(2)+"123"合计123
TRIM(S)消除字符串尾部空格TRIM("姓名")姓名
ALLTRI(S)消除字符串中所有空格ALLTRIM("李丽")李丽
STUFF(S1,N1,N2,S2)用字符串S2替换S1中第N1个字符起的N2个字符STUFF("NOW",2,1,"E")NEW
&宏替换P=“G2”
USE&PUSEG2
二、常用函数
1、数学函数
函数用途
ABS(<数值表达式>)绝对值,|x|
CEILING(<数值表达式>)>=自变量的最小整数
EXP(<数值表达式>)对基E的幂,e=2.71828
FLOOR(<数值表达式>)<=自变量的最大整数
INT(<数值表达式>)取整(舍尾)自变量
LOG(<数值表达式>)自变量的自然对数,lnx
LOG10(<数值表达式>)自变量的普通对数,lgx
MAX(<表达式1>,<表达式2>)两个值的最大值
MIN(<表达式1>,<表达式2>)两个值的最小值
MOD(<数值表达式1>,<数值表达式2>)求余数
RAND([<数值表达式1>])返回伪随机数
ROUND(<数值表达式1>,<数值表达式2>)四舍五入第一个自变量
SIGN(<数值表达式>)自变量的符号
SQRT(<数值表达式>)平方根(正根)
2、字符串操作函数
函数用途
&<内存变量>用于代替内存变量内容
LEN(<字符串表达式>)返回字符串表达式的字符个数
SPACE(<数值表达式>)生成空格
SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>])求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串
LOWER(<字符串表达式>)将字符串字母转换成小写字母
UPPER(<字符串表达式>)将字符串字母转换成大写字母
TRIM(<字符串表达式>)删除字符串尾空格
ASC(<字符串表达式>)返回字符串表达式最左边的第一个字符的ASCII码
CHR(<数值表达式>)将数值表达式转换成字符
AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])
确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现
STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>)将数值转换为字符串,L为数值表达式总长,n为小数位数
VAL(<字符串表达式>)将数字字符串转换为数字
TYPE(<表达式>)检测表达式值的数据类型
LTRIM(<字符串表达式>)删除字符串左部空格
RTRIM(<字符串表达式>)删除字符串右部空格
LEFT(<字符串表达式>,<数值表达式n>)取字符串左边部分字符,n为返回的字符个数
RIGHT(<字符串表达式>,<数值表达式n>)取字符串右边部分字符,n从右边截取字符个数
MONTH(<日期型表达式>|<日期时间型表达式>)从日期查月份函数
CMONTH(<日期型表达式>|<日期时间型表达式>)由日期查月份名函数
DAY(<日期型表达式>|<日期时间型表达式>)从日期查当月的日函数
DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>])由日期查星期函数
5、显示、打印位置函数
函数用途
ROW()判断光标行位置函数
COL()判断光标列位置函数
INKEY([<数值表达式>])检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间
6、其他函数
函数用途
DISKSPACE()返回默认磁盘驱动器中可用字节数函数
OS()检测操作系统名称的函数
VERSION()返回VFP版本号的函数打开并修改数据表中的字段:
(1)CHANGE[FIELDS字段名列表]
(2)EDIT[FIELDS字段名列表]这两个命令的功能相似,可选子句较多(详见手册)。
数据表改名:
RENAMETABLEtablename1TOtablename2其中数据表tablename1必须存在且未打开。
RENAMEVIEWviewname1TOviewname2——视图改名其中数据表tablename1必须存在且未打开。
将当前表与另一表之间建立关联:
SETRELATIONTO[表达式1INTO工作区号1|表别名1];[,表达式2INTO工作区号2|表别名2][,...]建立关联的两个表必须事先已按关联表达式进行索引排序。
在当前表与另一表之间建立一对多关联:
SETSKIPTO表别名1[,表别名2]
消除当前表与另一表之间的关联:
SETRELATIONOFFINTO工作区号|表别名
清除当前记录中字段的数据:
五、文件管理(文件和文件夹的复制、创建和删除)
从当前表复制出表或其它类型的文件(表须打开)
COPYTOfilename[FIELDS字段名列表][常用子句][其它子句]如果没有指定类型,则复制一个与当前的表相同的数据表。
复制表的结构:
COPYSTRUCTURETOfilename[FIELDS字段名列表]
复制任何文件:
COPYFILE源文件TO目的文件
如果用此命令复制表,表须关闭
六、数据的复制与传送
单个记录与数组间的数据传送
当前记录→数组或内存变量:
SCATTER[FIELDS字段名列表][MEMO]TO数组名[BLANK]|MEMVAR[BLANK]
其中[BLANK]表示建立一个空元素的数组。
如果用MEMVAR子句,则表示将各字段的值复制到同名同类型的内存变量。
如果包含MEMO子句,则备注字段一起复制。
数组或内存变量→当前记录
GATHERFROM数组名|MEMVAR[FILEDS字段名列表][MEMO]
用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。
成批记录与数组间的数据传送
表→数组:
COPYTOARRAYarrayname[常用子句]
数组→表:
(1)APPENDFROMARRAYarrayname[FOR条件][FIELDS字段名列表]
用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。
(2)REPLACEFROMARRAY数组名[常用子句]
用内存数组的值更新数据表中符合条件的记录。
查询结果→数组:
SELECT……INTOARRAYarrayname
将SQLSELECT语句的查询结果传给数组arrayname。
这里“SELECT……”可为各种形式的SELECT查询语句。
内存变量赋值:
STORE表达式TO变量名
或
变量名=表达式
七、排序与索引
将当前表排序后建立一个新数据表:
SORTTO文件名ON字段名1[/A|/D];[/C][字段名2[/A|/D][/C]...];
[ASCENDING|DESCENDING][常用子句];
建立单索引文件:
INDEXON表达式TO单索引文件名;
[FOR<条件>][UNIQUE][COMPACT];
[ASCENDING][DESCENDING][ADDITIVE]
建立复合索引文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFPSQL 语句 大全
![提示](https://static.bingdoc.com/images/bang_tan.gif)