vf中的sql语句大全.docx
《vf中的sql语句大全.docx》由会员分享,可在线阅读,更多相关《vf中的sql语句大全.docx(13页珍藏版)》请在冰豆网上搜索。
![vf中的sql语句大全.docx](https://file1.bdocx.com/fileroot1/2022-12/31/f5681372-6b8b-4304-822d-7ec4f2205079/f5681372-6b8b-4304-822d-7ec4f22050791.gif)
vf中的sql语句大全
VFP的SQL命令和语句大全1.CREATE TABLE一般格式为:
CREATE TABLE |dbf <表文件名>〔字段名1 字段类型[〔字段宽度[,小数位数]〕][,字段名2 字段类型[〔字段宽度[,小数位数]〕]]„„〕例:
CREATE TABLE xscj(xh c(8),xm c(6),xb c
(2),;cj n(5,1),ksrq d)
2.ALTER TABLE命令格式:
添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14)
重命名字段 ALTER TABLE xscj RENAME COLUMN kcmc TO kc
删除字段 ALTER TABLE xscj DROP COLUMN kc
3.INSERT
一般格式为:
INSERT INTO <表名>[〔字段名1[,字段名2 „]〕] VALUES 〔表达式1[,表达式2 „]〕
例:
INSERT INTO xscj〔xh,xm,cj〕 VALUES 〔"81991001", "良", 85.5〕
4.UPDATE
命令格式:
UPDATE <表名> SET 字段1 = 表达式1 [,字段2 = 表达式2 „];WHERE 条件表达式例:
UPDATE xscj SET cj = cj*1.05 WHERE cj>805.DELETE
命令格式:
DELETE FROM <表名> [WHERE 条件表达式]
例:
DELETE FROM xscj WHERE cj<60
6.SELECT-SQL命令创立查询常用的格式:
SELECT 表名1. 字段名1 [AS 标题名1], 表名1. 字段名2 [AS 标题名2], „FROM 数据库名!
表名1 [,数据库名!
表名2 ] [, 数据库名!
表名3 ]
[TO FILE 文本文件名 | into table | into cursor 表文件名 ]
[ WHERE 选定条件]
[GROUP BY 分组字段名 ]
[HAVING 分组中的满足条件 ]
[ORDER BY 排序字段名1 [ASC | DESC] [, 排序字段名2 [ASC | DESC] ...]]
例如:
浏览学生中的查询学生 student.qpr :
SELECT 表xs.xh as 学号, 表xs.xm as , 表xs.xb as 性别, ;
表xs.csrq as 出生日期, 表xs.bj as 班级名称;
FROM 数据test!
表xs;
WHERE 表xs.bj =cs1;
ORDER BY 表xs.xh;INTO TABLE xs
浏览成绩中的按课程查询 sub_cj.qpr :
SELECT 表xs.bj as 班级名称, COUNT(表xs.xh) as 班级人数, AVG(表cj.cj) as 平均分, ; MAX(表cj.cj) as 最高分, MIN(表cj.cj) as 最低分;
FROM 数据test!
表xs, 数据test!
表cj, 数据test!
表kc;
WHERE 表cj.xh = 表xs.xh;
AND 表kc.kcm = 表cj.kcm;
AND 表cj.kcm = sc1;
GROUP BY 表xs.bj;
ORDER BY 表xs.bj;
INTO TABLE sub_cj
7.CREATE SQL VIEW 命令创立视图翻开数据库,用命令来创立视图:
OPEN DATABASE 数据库名CREATE SQL VIEW 视图文件名 AS SQL-SELECT 语句例:
OPEN DATABASE SJ
CREAT SQL VIEW SCORE AS SELECT SJCJ.XH, SJCJ.CJ ;
FROM SJ!
SJCJ WHERE SJCJ.KCH=〞计算机根底〞
8.CREATE TABLE-SQL 命令创立数据库表命令一般格式:
Create table 表名1 [free] ( 字段名1 字段类型代号 [ (字段宽度[,小数位数 ] ) ][null | not null] [check 字段规那么1 [error “信息1〞 ] ] [default 默认值][primary key | unique] [references 表名2 [tag 索引标识1 ] ][ , 字段名2 字段类型代号 [ (字段宽度 [, 小数位数]) ] [null | not null] ][check 字段规那么2 [error “信息2〞 ] ] [default 默认值 ] ) | from array 数组名 使用例如:
creat data xscjgl && 创立学生成绩管理数据库create table xs (;
xh c(4) default "1201" primary key,;
xm c(6), ;
xb c
(2) check xb="男" or xb="女" error"性别只能是男或女" default "女",;
nl n
(2) null;
) && 创立学生表create table kc (;
kch c(3) unique, ;
kcm c(10),;
xf n(3,1),;
bxk l;
) && 创立课程表create table cj(;
xh c(4) default "1201" reference xs tag xh, ;
kch c(8),;
ksrq d,;
cj n(5,1);
) && 创立成绩表modi data
alter table cj add primary key xh+kch+str(cj,4,1) tag dh && 为成绩表添加一个主索引
一、主要命令:
1、CREATE
CREATE DATABASE 库文件名.DBC―――建立数据库:
CREATE TABLE/DBF 表名〔各个字段属性〕¬¬¬¬¬¬¬¬¬¬¬¬¬¬—————建立表CREATE VIEW <视图名> AS
2.DROP
DROP VIEW <视图>————删除视图
3、MODIFY STRUCTURE
作用:
显示表文件构造,并允许修改此表的构造。
格式:
MODIFY STRUCTURE
说明:
只有在用USE命令翻开表文件以后,才能显示或修改表文件的构造。
4、APPEND
作用:
在当前表的尾部〔无论表中有无记录〕追加记录〔在当前表指当前正使用的表〕。
格式:
APPEND [BLANK]
说明:
在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。
无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段容。
5、INSERT
INSERT BLANK BEFORE 在当前表的当前记录之前插入一条空白记录INSERT INTO 表名[〔字段] VALUES〔表达式1[,表达式2„]〕——插入记录INSERT INTO 表名 FROM ARRAY ArrayName | FROM MEMVAR
如带有FROM MEMVAR子句,那么用同名的存变量给字段赋值。
例:
INSERT INTO 学生〔XH,XM,XB〕VALUES〔“950106〞,“高山〞,“男〞〕
6. ALTER TABLE 表名 ADD 字段名 字段类型〔字段参数〕―――添加字段ALTER TABLE 表名 ALTER 字段名 SET CHECK <条件>——为字段添加有效性规那么例:
ALTER TABLE 评分 ALTER分数 SET CHECK 分数>=0 AND 分数<=10
ALTER TABLE 表名 DROP 字段名[ALTER COLUMN字段名Type {NULL | NOT NULL}][{,字段名Type NULL | NOT NULL}...] [DROP字段名[,字段名[, ...]]
例:
alter table 歌手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 <条件>]
[TO PRINT|TO FILE <文件>]
LIST|DISPLAY STRUCTURE TO PRINT|TO FILE <文件>〕LIST|DISPLAY STATUS [TO PRINT|TO FILE <文件>]
注:
LIST命令一次连续显示完所有记录容。
DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示。
如果LIST与DISPLAY都无任何选择项时,LIST显示文件的全部记录,DISPLAY仅显示当前记录。
11、记录的定位作用:
用记录指针〔POINTER〕定位记录。
格式:
1〕GO[TO] RECORD n|TOP|BOTTOM
命令定位GO [RECORD] NGO BOTTOMGO TOP
2〕n
3〕SKIP [+|-] n
说明:
第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录, BOTTOM定位到最后一个记录。
第二个命令定位到第n个记录,n是一个数值。
第三个命令又叫相对定位,它以当前记录为基准前移〔-〕或后移〔+〕n个记录,不选任选项,那么默认记录指针后移一个记录。
LOCATE [<围>] FOR <表达式>围:
ALL NEXT N ,RECORD N, REST
12、CHANGE和EDIT
作用:
显示要编辑或修改的字段。
格式:
CHANGE|EDIT [<围>] [FIELDS <字段名表>] [WHILE <条件>] [FOR <条件>]
13、REPLACE
格式:
REPLACE [<围>] <字段1> WITH <表达式1>[,<字段2> WITH <表达式2>] [FOR <条件>]
[WHILE<条件>]
例:
REPLACE ALL 工资 WITH 工资+200 FOR 工资<1000
REPLACE FROM ARRAY数组名 [FIELDS 字段名列表][常用子句]——用存数组的值更新数据表中的记录:
14、DELETE、PACK、ZAP和RECALL
作用:
分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的删除标志。
格式:
DELETE [<围>] [WHILE<条件>] [FOR <条件>] 〔特例:
DELETE FILE FILENAME.DBF,该命令删除指定的表文件〕DELETE TAG ALL [OF 复合索引文件名]DELETE TAG 索引标识1 [OF 复合索引文件名1][,索引标识2 [OF 复合索引文件名2>„ 例:
DELETE FROM 订单 WHERE 签订日期<={^2001-01-02}PACK
ZAP
RECALL [<围>] [FOR <条件>] [WHILE<条件>]
15、SORT和INDEX
1)SORT
作用:
是建立一个其记录以新的物理顺序排列的新表文件,原文件不变.
格式:
SORT TO <文件名> ON <字段名1> [/A] [/C] [/D][,<字段名2> [/A] [/C] [/D>...
[ASCENDING|DESCENDING] [<围>] [FOR <条件>] [WHILE<条件>] [FIELDS<字段表>]
2)INDEX
作用:
对当前表根据关键字表达式的值从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。
格式:
INDEX ON <关键字表达式> TO <文件名>
INDEX ON <关键字表达式> TAG <标识名> [OF <文件名>] [FOR <条件>]
说明:
第1个命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小写,针对字符型。
关键字而言,ASCENDING和DESCENDING分别表示升序和降序。
第1个命令建立.dbf表文件,第2个命令建立.idx单一索引文件,第3个命令建立.cdx复合索引文件〔pound Index〕。
16、USE <表文件名> INDEX <索引文件名表>、SET INDEX TO和SET ORDER TO
作用:
分别是翻开表文件的同时翻开索引文件、翻开索引文件和改变主索引。
并确定第一个索引文件为主控索引文件.(当前起作用的索引文件称为主控索引文件, 当前起作用的索引标识称为主控索引)
格式:
USE <表文件名> INDEX <索引文件名表>
SET INDEX TO [<索引文件名表>]
作用:
翻开当前表的一个或多个索引文件并确定第一个索引文件为主控索引文件,该命令用于单索引文件.
格式:
SET INDEX TO [<索引文件表>] [ADDITIVE]
说明:
(1)[<索引文件表>]中第一个索引文件为主控索引文件.
(2)假设缺省ADDITIVE选项,那么在用本命令翻开索引文件时,除构造复合索引文件以外的索引文件均被关闭SET ORDER TO [<数值表达式>]|[<单索引文件名>]|[TAG] <索引标识> [ASCENDING|DESCENDING>〔特例:
重新索引命令:
REINDEX〕作用:
对于翻开表时自动翻开的复合索引文件确定主索引,也能确定主索引文件.
(1) 数值表达式表示已翻开的索引的序号.系统先为单索引文件编号,故构造复合索引文件的序号比单索引文件大.
(2) SET ORDER TO 或 SET ORDER TO 0命令取消主索引和主索引文件,表中记录将按物理记录输出.
17、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
作用:
分类汇总命令,按<表达式>做过索引或排序的表文件的数字型字段进展分类汇总。
它把与<表达式>值一样的所有记录中的数字字段的值分别进展求和,并各自作为一条记录存放在由文件指定的文件中去。
在新生成的记录中,还将包括与<表达式>值一样的所有记录中的首项记录的其他字段容。
格式:
TOTAL TO <文件名> ON <表达式>[FIELDS <数值型字段名表>][<围>][FOR <逻辑表达式1>][WHILE <逻辑表达式2>]
例:
USE B2-1
INDEX ON 职称 TO ZC
TATOL ON 职称 TO B2-1T FILEDS 工资
22.APPEND FROM
作用:
从其他文件向表文件添加数据。
数据来源文件既可以是表文件,也可是文本文件或其他符合规定的文件。
从一个文件输入一个OLE对象放入一个通用〔general〕字段 :
APPEND GENERAL 通用字段名 [FROM filename]如果省略子句FROM filename,那么将指定的字段清空。
将一个文本文件的容拷贝到一个备注字段 :
APPEND MEMO 备注字段名 [FROM filename][OVERWRITE]
格式:
APPEND FROM <文件名>|?
[FIELDS <字段名表>][FOR <逻辑表达式>]
FIELDS <字段名表>和FOR <逻辑表达式>,用于源文件为表文件时,指定追加记录的字段和条件。
在字段名表和逻辑表达式中的字段名,必须是在来源和目的两个文件中公有的,共注意宽度和类型匹配。
实际应用中,数据来源文件常为表文件〔.DBF〕和ASCII码文本文件(.TXT) 对于文本文件又有标准格式(SDF)和通用格式(DELIMITED)之分.
例:
USE B2-1APPE FROM S3-1.TXT SDFBROWSE
23.COPY (选择表的局部容生成一个新表)
作用:
把翻开的表文件构造及数据复制成由<文件名>所指定的并符合规定要求的文件。
如果默认全部选择项和文件名的扩展名,那么构造及全部数据都被复制,且其文件扩展名由系统规定为“.DBF〞。
格式:
COPY TO<文件名> [FIELDS <字段名表>][<围>][FOR <逻辑表达式1>][WHILE <逻辑表达式2>]
格式中的或用来为新表建立一个与原表一样的构造索引.
例1:
COPY TO B3-2COPY TO S3-2.TXT SDF
例2:
USE RS
COPY TO RS3 FIELDS ,根本工资,奖金USE RS3
LIST
24. COPY FILE复制数据整表:
(可用于复制任何类型文件)
COPY FILE 原文件名 TO 目标文件名注:
复制表时,还应当复制和它相配的备注文件〔.FPT,如有备注字段〕和构造复合索引文件。
当前表应关闭。
〔如果已翻开表:
COPY TO 新文件名〕例:
将RS.DBF复制为RS1.DBF
COPY FILE RS.DBF TO RS1.DBF
或 USE RSCOPY TO RS1USE RS1LIST
25.COPY STRUCTURE (只复制构造不复制数据)
作用:
表文件构造复制,生成一个指定文件名和包括指定字段的表文件构造;如有CDX或PRODUCTION选择项还将为新表建立一个与源表一样的构造索引.
格式:
COPY STRUCTURE TO<文件名> [FIELDS <字段名表>]
例:
COPY STRUCTURE TO B3-3 FIELDS 编号,,何时工作,职称26.copy to建立构造扩展文件作用:
把已翻开的表文件的构造作为数据记录复制到由<文件名>指定的库文件中去.
格式:
COPY TO<文件名> STRUCTURE EXTENDED
例:
USE B3-3
COPY TO B3-4 STRUCTURE EXTENDED
USE B3-4
BROW
该命令可以用于测试表文件构造,也可以用于顺序方式建立库文件构造.
新库文件的构造是一个由系统规定的标准构造,它由4个字段构成:
FIELD_NAME 字段名FIELD_TYPE 字段类型11/23页FIELD_LEN 字段宽度FIELD_DEC 小数位数
27.常用命令:
库 表翻开数据:
OPEN DATABASE 库文件名翻开表:
USE 表文件名使用非前库的表:
USE 库名!
表名翻开索引表:
USE 表名 INDEX 索引名显示库信息:
DISP DATABASE [TO PRINTER]
显示记录:
LIST 〔快速查看〕BROWSE〔分屏浏览可修改〕DISP 〔显示当前记录〕关闭数据库:
CLOSE ALL 〔关闭所有库、表、索引〕关闭表:
USE
CLOSE DATABASES〔关闭当前库、表〕 CLOSE TABLES(关闭当前表,不关库)
CLOSE INDEXES 〔关闭当前索引〕添加表:
ADD TABLE 表名 追加记录:
APPEND
APPEND FROM 源文件移去表:
REMOVE TABLE 表名删除库:
DELETE DATABASE 库名 〔先关闭库〕删除表:
DELETE FILE 表名〔先关闭表〕
二、字符中操作函数UPPER〔S〕 小写字母 UPPER(abc) ABC
LOWER〔S〕 大写字母 LOWER(ACD) acd
LEN〔S〕 求字符串的长度 LEN("中国1号") 7
AT(S1,S2〕 在字符串S2,找字符串S1 AT("H","CHINA") 2
SUBSTR〔S,I,N〕在S字符串中的第I个字符起取N个字符SUBSTR('TECHNOLO',3,3) CHNLEFT〔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 &P USE G2
二、常用函数1、数学函数函数 用途ABS(<数值表达式>〕 绝对值,|x|
CEILING〔<数值表达式>〕 >=自变量的最小整数EXP〔<数值表达式>〕 对基E的幂,e=2.71828
FLOOR〔<数值表达式>〕 <=自变量的最大整数INT〔<数值表达式>〕 取整〔舍尾〕自变量LOG〔<数值表达式>〕 自变量的自然对数,ln x
LOG10〔<数值表达式>〕 自变量的普通对数,lg x
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