VFP的SQL命令和语句大全
1.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.ALTER TABLE - SQL命令功能
命令格式示例
添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14)
重命名字段ALTER TABLE xscj RENAME COLUMN kcmc TO kc
删除字段ALTER TABLE xscj DROP COLUMN kc
3. INSERT-SQL命令
该命令的一般格式为:
INSERT INTO <表名>[ (字段名1 [,字段名2„] ) ] VALUES (表达式1 [,表达式2„] )
例: INSERT INTO xscj (xh, xm, cj) VALUES ("81991001", "张良", 85.5)
4.UPDATE-SQL命令。
命令格式: UPDATE <表名> SET字段1 =表达式1 [,字段2 =表达式2„] ;
WHERE条件表达式
例: UPDATE xscj SET cj = cj*1.05 WHERE cj>80
5.DELETE-SQL命令。
命令格式: 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分组字段名]
[HAV ING分组中的满足条件]
[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 =cs 1 ;
ORDER BY表xs.xh;
INTO TABLE xs
浏览成绩中的按课程查询sub_cj.qpr :
SELECT表xs.bj as班级名称, COUNT(表xs.xh) as班级人数, AVG(表cj. cj) as平均分, ;MAX(表c j.c j) as最高分, MIN(表c j.c j) as最低分;
FROM数据test!表xs,数据test!表cj,数据test!表kc;
WHERE表cj.xh =表xs.xh;
AND表kc.kcm =表cj.kcm;
AND表cj.kcm = s c 1 ;
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" pr imary key, ;xm c(6) , ;xb c(2) check xb="男" or xb="女" error"性别只能是男或女" default "女", ;nl n(2) nul l ;
) &&创建学生表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 dataalter table cj add pr imary key xh+kch+str (cj,4, 1) tag dh &&为成绩表添加一个主索引
一、主要命令:
1、 CREATE
CREATE DATABASE库文件名.DBC―――建立数据库:
CREATE TABLE/DBF表名(各个字段属性)¬¬¬¬¬¬¬¬¬¬¬¬¬¬—————建立表
CREATE VIEW <视图名> AS <SELECT查询语句>——建立视图
执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
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、 UPDATEupdate <表名> 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<条件>]
13、 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复合索引文件(Compound Index) 。
15、 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命令取消主索引和主索引文件,表中记录将按物理记录输出.
16、 FIND、 SEEK和LOCATE及CONTINUE
作用:前两个命令FIND和SEEK是在一个已经建立了索引文件的表中,定位到关键字中的内容与命
令行中字符串相同的第一个记录。后一个命令在用USE打开表文件以后,直接查询表中字段内容。格式: FIND < “字符串” >|<字符串>SEEK <表达式> (表达式的数据类型可为字符型、数字型、日期型和逻辑型。 )
LOCATE [<范围>] [FOR <条件>] [WHILE<条件>]
CONTINUE
说明: FIND命令与SEEK命令的区别是前者后跟字符串,而后者后跟表达式。在用LOCATE命令找到
一个匹配记录后,可用CONT INUE命令搜索表的剩余部分来寻找其他匹配的记录。
18、 COUNT
作用:统计当前表文件中符合条件的记录数。
格式: COUNT [<范围>] [FOR <条件>] [WHILE<条件>] [TO <内存变量名>]
说明: 内存变量名可用除参数外的任意字符。
19、 SUM
作用:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求和。格式: SUM [<范围>] [数值<表达式>] [TO <内存变量名表>] [FOR <条件>] [WHILE<条件>]
20、 AVERAGE
作用:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示。格式:AVERAGE [<范围>] [数值<表达式>] [TO <内存变量名表>] [FOR <条件>] [WHILE<条件>]
搬瓦工最新优惠码优惠码:BWH3HYATVBJW,节约6.58%,全场通用!搬瓦工关闭香港 PCCW 机房通知下面提炼一下邮件的关键信息,原文在最后面。香港 CN2 GIA 机房自从 2020 年上线以来,网络性能大幅提升,所有新订单都默认部署在香港 CN2 GIA 机房;目前可以免费迁移到香港 CN2 GIA 机房,在 KiwiVM 控制面板选择 HKHK_8 机房进行迁移即可,迁移会改变 IP...
官方网站:点击访问火数云活动官网活动方案:CPU内存硬盘带宽流量架构IP机房价格购买地址4核4G50G 高效云盘20Mbps独享不限openstack1个九江287元/月立即抢购4核8G50G 高效云盘20Mbps独享不限openstack1个九江329元/月立即抢购2核2G50G 高效云盘5Mbps独享不限openstack1个大连15.9元/月立即抢购2核4G50G 高效云盘5Mbps独享不限...
LetBox此次促销依然是AMD Ryzen处理器+NVME硬盘+HDD大硬盘,以前是5TB月流量,现在免费升级到10TB月流量。另外还有返余额的活动,如果月付,月付多少返多少;如果季付或者半年付,返25%;如果年付,返10%。依然全部KVM虚拟化,可自定义ISO系统。需要大硬盘vps、大流量vps、便宜AMD VPS的朋友不要错过了。不过LetBox对帐号审核严格,最好注册邮箱和paypal帐号...