当前位置:文档之家› SAS中的SQL语句大全

SAS中的SQL语句大全

SAS中的SQL语句大全
SAS中的SQL语句大全

SAS中的SQL语句完全教程之一:SQL简介与基本查询功能

本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。

1 SQL过程步介绍

SQL过程步可以实现下列功能:

查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。

SQL过程步的特征

SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL 过程步

SQL过程步语句

SELECT:查询数据表中的数据

ALTER:增加、删除或修改数据表的列

CREATE:创建一个数据表

DELETE:删除数据表中的列

DESCRIBE:列出数据表的属性

DROP:删除数据表、视图或索引

INSERT:对数据表插入数据

RESET:没用过,不知道什么意思

SELECT:选择列进行打印

UPDATE:对已存在的数据集的列的值进行修改

2 SQL基本查询功能

SELECT语句基本语法介绍

SELECT object-item <, ...object-item>

FROM from-list

>

>;

这里SELECT:指定被选择的列

FROM:指定被查询的表名

WHERE:子数据集的条件

GROUP BY:将数据集通过group进行分类

HAVING:根据GROUP BY的变量得到数据子集

ORDER BY:对数据集进行排序

SELECT语句的特征

选择满足条件的数据、数据分组、对数据进行排序、对数据指定格式、一次最多查询32个表。这里还要提到的就是,在SAS系统中,对于表名和变量名一般不超过32个字符,对于库名,文件引用名,格式等不能超过8个字符

Validate关键字

Validate关键字只存在于select语句中、可以在不运行查询的情况下测试语句的语法、检查列名是否合法、对于不正确的查询将打印其消息。例:

1 proc sql;

2 validate

3 select Region, Product,Sales

4 from

5 where Region = 'Africa';

NOTE: PROC SQL 语句有有效语法。

6 quit;

此外,我们还可以用noexec选项也可以用来进行语法测试。例:

7 proc sql noexec;

8 select Region, Product,Sales

9 from

10 where Region = 'Africa';

NOTE: 由于 NOEXEC 选项,未执行语句。

11 quit;

这里提示未执行,未提示错误,说明该语句没有语法错误。但是如果加入一个表里没有字段,这里就会出现错误,例:

12 proc sql noexec;

13 select Region, Product,Sales,test

14 from

15 where Region = 'Africa';

ERROR: 以下这些列在起作用的表中没有找到: test.

16 quit;

查询列

我们可以像那样查询指定列,也可以用*来查询所有列。例:

proc sql;

select *

from ;

quit;

这里我们可以用feedback选项来查看到底我们选择了哪些列:

17 proc sql feedback;

18 select *

19 from ;

NOTE: Statement transforms to:

select , , , , , ,

from ;

20 quit;

这时,我们可以看到从表中选择了8个列

消除重复值

我们可以用distinct选项来消除重复值。例如,我们要得到没有重复的所有地区的名称:

proc sql;

select distinct Region

from

quit;

where子集查询

比较运算符

先列出where语句用到的比较运算符:

LT < 小于

GT > 大于

EQ = 等于

LE <= 小于或等于

GE >= 大于或等于

NE ^= 不等于

例如,我们要查询sales大于100000的所有数据:

proc sql;

select *

from

where sales>100000;

quit;

in:只要满足in里的任意一个值,表达式即为真,例如,我们要选择Region在Africa 和Eastern Europe的所有数据:

proc sql;

select *

from

where Region in ('Africa','Eastern Europe');

quit;

逻辑运算符

OR | 或

AND & 是

NOT ^ 非

例如,选择Region在Africa和Eastern Europe,且销售额大于100000的所有数据:proc sql;

select *

from

where Region in ('Africa','Eastern Europe') and sales>100000;

quit;

CONTAINS或:判断某列是否包含指定字符串

例如,选择列Region包含’Afr’的数据:

proc sql;

select *

from

where Region 'Afr';

quit;

IS NULL或IS MISSING:判断某列数据是否为空

例如,如果找出Region为空的数据:

proc sql;

select *

from

where Region is missing;

quit;

注意,这里我们还可以用以下表达式对where语句进行替换。如果region为数值型变量,则可以用region=.,如果region为字符型变量,则可以用region= ‘’进行替换。

Between and:选择某一区间的数据

例如选择sales大于100000,但小于200000的所有数据:

proc sql;

select *

from

where sales between 100000 and 200000;

quit;

like:判断是否能匹配某些字符

例如,选择以region以A开头的所有地区

proc sql;

select *

from

where Region like 'A%';

quit;

这里注意有两类通配符,‘%’可以通配任意个任意字符,‘_’只能通配一个任意字符

=*:类似匹配

这里由于里没有符合要求的数据,所有就用书上的例子说明一下吧:

Where lastname=* ‘smith’,出来的结果可能是:smith,smythe等

表达式

我们可以通过已有的列进行计算来得到新的列,这时用关键词as来给新的列赋列名,例如:

proc sql;

select Region, Product,Sales,Stores,Sales/Stores as salesperstores

from

quit;

这时结果就会多一列salesperstores,用来得到该地区该产品每个商店的平均销售量。这里要注意的是,在创建表达式时,我们还可以在SQL里用到SAS中的除LAG和DIFF之外的所有函数。

这里我们还可以用表达式计算出来的结果来进行子集查询,但一定要记住用calculated 关键词。例如我们要找出商店平均销售量大于5000的数据:

方法一:

proc sql;

select Region, Product,Sales,Stores,Sales/Stores as salesperstores

from

where Sales/Stores>5000;

quit;

方法二:

proc sql;

select Region, Product,Sales,Stores,Sales/Stores as salesperstores

from

where calculated salesperstores>5000;

quit;

查询结果展示

order by数据排序

默认的排序方式是升序,我们可以用DESC关键词来进行降序排列。例如以sales降序排列数据:

proc sql;

select *

from

order by Sales DESC;

quit;

这里提示一下,我们可以用任意多列进行排序,包括表达式结果(不用calculated),但最好是选择的列。

LABEL与FORMAT

LABEL:改变输出变量名的内容

FORMAT:改变列的值的输出方式

例如,改变salesperstores的label和format

proc sql;

select Region, Product,Sales,Stores,

Sales/Stores as salesperstores

label='sales per stores'

format=

from ;

quit;

处理SQL常用函数

MEAN或AVG:均值

COUNT或N或FREQ:非缺失值个数

MAX:最大值

MIN:最小值

NMISS:缺失值个数

STD:标准差

SUM:求和

VAR:方差

求和sum

proc sql;

select Region, Product,Sales,Stores,

sum(Sales,Inventory,Returns) as total

from ;

quit;

求均值avg

proc sql;

select Region, Product,Sales,Stores,

avg(Sales) as salesavg

from ;

quit;

分组求均值group by

proc sql;

select Region,

avg(Sales) as salesavg

from

group by Region;

quit;

计数count

proc sql;

select Region,count(*) as count

from

group by Region;

quit;

HAVING数据子集

proc sql;

select Region,count(*) as count

from

group by Region

having count(*)>50;

quit;

其它的就不多作介绍了,多用用就熟悉了

子查询

找出regions平均sales大于全部平均sales的region

proc sql;

select Region,

avg(Sales) as salesavg

from

group by Region

having avg(Sales)>

(select avg(Sales) from ;

quit;

ANY关键词介绍

>ANY(20,30,40) 最终效果:>20

=ANY(20,30,40) 最终效果:=20 or =30 or =40

例如,选择出region为united state的sales小于任意region为africa的sales的数据

proc sql;

select Region,Sales

from

where Region='United States'

and Sales

(select Sales from where Region='Africa');

quit;

这个例子没有多少意义,只是说明一下any的用法

ALL关键词介绍

>ALL (20,30,40) 最终效果:>40

例如,选择出region为united state的sales小于所有region为africa的sales的数据

proc sql;

select Region,Sales

from

where Region='United States'

and Sales

(select Sales from where Region='Africa');

quit;

EXISTS与NOT EXISTS

proc sql;

select *

from

where exists

(select * from ;

quit;

SAS中的SQL语句完全教程之二:数据合并与建表、建视图

SAS中的SQL语句完全教程之二:数据合并与建表、建视图索引等

本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。

1 连接joins分为内连接inner joins和外连接outer joins

内连接:仅返回匹配的数据,最多可以有32个表同时进行内连接

外连接:返回所有匹配的数据和非匹配的数据,一次只能有两个表或视图进行外连接迪卡尔积:返回表内所有可能的匹配情况。例如表A有10*20的数据,表B有30*40的数据,则两个表的迪卡尔积有(10+30)*(20+40)=40*60的数据

我们先建立两个数据集:

data march;

input flight $3. +5 date date7. +3 depart time5. +2 orig $3.

+3 dest $3. +7 miles +6 boarded +6 capacity;

format date date7. depart time5.;

informat date date7. depart time5.;

cards;

219 01MAR94 9:31 LGA LON 3442 1 98 250

622 01MAR94 12:19 LGA FRA 3857 20 7 250

132 01MAR94 15:35 LGA YYZ 366 1 15 178

8 250

302 01MAR94 20:22 LGA WAS 229 1 05 180

114 02MAR94 7:10 LGA LAX 2475 1 19 210

202 02MAR94 10:43 LGA ORD 740 1 20 210

219 02MAR94 9:31 LGA LON 3442 1 47 250

132 02MAR94 15:35 LGA YYZ 366 1 06 178

202 03MAR94 10:43 LGA ORD 740 1 18 210

219 03MAR94 9:31 LGA LON 3442 1 97 250

622 03MAR94 12:19 LGA FRA 3857 18 0 250

271 03MAR94 13:17 LGA PAR 3635 14 7 250

202 04MAR94 10:43 LGA ORD 740 1 48 210

219 04MAR94 9:31 LGA LON 3442 2 32 250

622 04MAR94 12:19 LGA FRA 3857 13 7 250

132 04MAR94 15:35 LGA YYZ 366 1 17 178

271 04MAR94 13:17 LGA PAR 3635 14 6 250

302 04MAR94 20:22 LGA WAS 229 1 15 180

114 05MAR94 7:10 LGA LAX 2475 1 17 210

202 05MAR94 10:43 LGA ORD 740 1 04 210

219 05MAR94 9:31 LGA LON 3442 1 60 250

622 05MAR94 12:19 LGA FRA 3857 18 5 250

132 05MAR94 15:35 LGA YYZ 366 1 57 178

271 05MAR94 13:17 LGA PAR 3635 17 7 250

28 210

202 06MAR94 10:43 LGA ORD 740 1 15 210

219 06MAR94 9:31 LGA LON 3442 1 63 250

132 06MAR94 15:35 LGA YYZ 366 1 50 178

302 06MAR94 20:22 LGA WAS 229

66 180

114 07MAR94 7:10 LGA LAX 2475 1 60 210

132 07MAR94 15:35 LGA YYZ 366 1 64 178

271 07MAR94 13:17 LGA PAR 3635 15 5 250

302 07MAR94 20:22 LGA WAS 229 1 35 180

;

run;

data delay;

input flight $3. +5 date date7. +2 orig $3. +3 dest $3. +3

delaycat $15. +2 destype $15. +8 delay;

informat date date7.;

format date date7.;

cards;

114 01MAR94 LGA LAX 1-10 Minutes Domestic 8

202 01MAR94 LGA ORD No Delay Domestic -5

622 01MAR94 LGA FRA No Delay International -5

132 01MAR94 LGA YYZ 11+ Minutes International 14

302 01MAR94 LGA WAS No Delay Domestic -2

114 02MAR94 LGA LAX No Delay Domestic 0

202 02MAR94 LGA ORD 1-10 Minutes Domestic 5

219 02MAR94 LGA LON 11+ Minutes International 18

622 02MAR94 LGA FRA No

Delay International 0

132 02MAR94 LGA YYZ 1-10 Minutes International 5

271 02MAR94 LGA PAR 1-10 Minutes International 4

302 02MAR94 LGA WAS No Delay Domestic 0

114 03MAR94 LGA LAX No Delay Domestic -1

202 03MAR94 LGA ORD No Delay Domestic -1

219 03MAR94 LGA LON 1-10 Minutes International 4

622 03MAR94 LGA FRA No Delay International -2

132 03MAR94 LGA YYZ 1-10 Minutes International 6

271 03MAR94 LGA PAR 1-10 Minutes International 2

302 03MAR94 LGA WAS 1-10 Minutes Domestic 5

114 05MAR94 LGA LAX No Delay Domestic -2

202 06MAR94 LGA ORD No Delay Domestic -3

219 06MAR94 LGA LON 11+ Minutes International 27

132 06MAR94 LGA YYZ 1-10 Minutes International 7

302 06MAR94 LGA WAS 1-10 Minutes Domestic 1

622 07MAR94 LGA FRA 11+ Minutes International 21

132 07MAR94 LGA YYZ No Delay International -2

271 07MAR94 LGA PAR 1-10 Minutes International 4

302 07MAR94 LGA WAS No Delay Domestic 0

;

run;

内连接

proc sql;

create table innerjoins as

select a.*,b.*

from March a,Delay b

where = and =;

quit;

外连接

左连接left join

proc sql;

create table leftjoins as

select *

from March a

left join Delay b

on = and =;

quit;

右连接right join

proc sql;

create table rightjoins as

select *

from March a

right join Delay b

on = and =;

quit;

全连接full join

proc sql;

create table fulljoins as

select *

from March a

full join Delay b

on = and =;

quit;

迪卡尔积

proc sql;

create table cartesian as

select a.*,b.*

from March a,Delay b;

quit;

这里再大概说明一下内外连接的实现的基本原理:首先生成两个数据表的迪卡尔积,然后再根据where语句来选择符合条件的数据作为输出结果。当然,在实际处理过程中,SQL 过程步会对这个迪卡尔积的数据集进行优化,将其划分成小块数据进行处理。

2 复杂的连接

这里因为找不到很好的例子来说明如何处理复杂的连接,因此就不讲解了,大概说一下思路吧:简单地说,对于复杂的查询,我们应该将该查询分解成几个小的子查询,然后对每个子查询的结果进行测试,最后将所有的子查询结合起来就组成了这个复杂的查询。这样会比一来就写复杂的查询容易得多。

3 数据集SET操作

这里有四类SET操作,分别是EXCEPT、INTERSECT、UNION、OUTER UNION。

EXCEPT:得到除第二个数据集以外的所有第一个数据集里的数据

INTERSECT:得到第一个数据集和第二个数据集都有的数据

UNION:得到两个数据集所有的数据,这里如果两个数据集有相同的数据,重复数据只出现一次

OUTER UNION:得到两个数据集所有的数据。

还有两个关键词来修改SET操作的行为:ALL和CORRESPONDING

ALL:并不删除重复值,不能与OUTER UNION合用(注意,用ALL关键词,一种情况是你不管是否会有重复值,另一个情况是不可能出现重复值,例如有主键的数据)CORRESPONDING:只保留两个数据集都有的字段,一般简写为CORR

EXCEPT

找出所有没有延迟的航班和日期:

proc sql;

select flight,date

from March

except

select flight,date

from Delay;

quit;

注意:这里重复值已经被删除。如果要得到所有的包含重复值的数据,就要用到关键词ALL:

proc sql;

select flight,date

from March

except ALL

select flight,date

from Delay;

quit;

如果只保留两个数据集都有的字段,则用到关键词CORRESPONDING(可简写为CORR):proc sql;

select *

from March

except CORR

select *

from Delay;

quit;

INTERSECT

找出所有延迟的航班和日期:

proc sql;

select flight,date

from March

INTERSECT

select flight,date

from Delay;

quit;

关键词ALL和CORRESPONDING与在EXCEPT中一样,这里不再作介绍

UNION

选择所有的数据,这里的重复值只出现一次

proc sql;

select flight,date

from March

UNION

select flight,date

from Delay;

quit;

关键词ALL和CORRESPONDING与在EXCEPT中一样,这里不再作介绍

OUTER UNION

proc sql;

select flight,date

from March

OUTER UNION

select flight,date

from Delay;

quit;

这里,如果我们用到关键词CORR,就可以将相同字段的数据结合到一起:proc sql;

select *

from March

OUTER UNION CORR

select *

from Delay;

quit;

4 建表

建空表

通过指定变量建空表

proc sql noprint;

create table percent

(varname char(30),

Industry char(4),

begindate num format date9. label='the beginning date',

enddate num format date9. label='the ending date',

P_1 num,

P_5 num,

P_95 num,

P_99 num);

quit;

拷贝数据集来建空表

proc sql noprint;

create table Delaycopy(keep=flight date)

like Delay;

quit;

查询语句中,用outobs选项来建空表

proc sql noprint outobs=0;

create table flight114 as

select *

from Delay;

quit;

对数据表增加数据

主要有三种方法:

SET语句

proc sql noprint;

insert into flight114

set flight='302' ,

date='07MAR94'd,

orig='LGA',

dest='WAS',

delaycat='No Delay',

destype='Domestic',

delay=0;

quit;

VALUES语句

proc sql noprint;

insert into flight114

values('271','07MAR94'd,'LGA','PAR','1-10 Minutes','International',4);

quit;

条件查询:建表和导入数据同时完成

proc sql noprint;

create table flight114 as

select *

from Delay

where flight='114';

quit;

5 完整性约束

完整性约束的好处是保证SAS数据集的连续性和正确性,它在我们更新数据或插入新的数据时,验证新的数据是否符合该变量的约束条件。

完整性约束需要以上版本,符合ANSI标准,可以在表建立时或表有数据后建立约束,但不能被用于视图,也不能用于低于版本的SAS系统建立的数据集。

五大类完整性限制:NOT NULL、CHECK、UNIQUE、PRIMARY KEY、FOREIGN KEY。

NOT NULL:不许出现缺失值

CHECK:指定该变量可以输入哪些值

UNIQUE:每个值必须是唯一的,其值可以为空,但只能有一个值为空

PRIMARY KEY:主键,每个值必须是唯一且非空的

FOREIGN KEY:其它表的主键,即外键,其值为关联表的主键的值且非空

check

例:

proc sql noprint;

create table percent

(varname char(30),

Industry char(4),

begindate num format date9. label='the beginning date',

enddate num format date9. label='the ending date',

percent num,

CONSTRAINT percent _check check

(percent le );

quit;

这时,如果我们插入的数据中,percent>1的话,将会出现错误。

回滚ROLLBACKS

当我们用INSERT或UPDATE的时候,操作要等到发生错误的时候才会停止,这时会出现一个问题,就是数据表的一些数据更新了,而另一些数据没更新,这时如果我们要回到原来的状态,就需要用到UNDO_POLICY选项进行回滚。

UNDO_POLICY有三个选项:

REQUIRED:缺省选项,取消所有的更新或新插入的数据。这里要注意的是,此操作不一定完全能成功。

NONE:阻止所有的与约束不符的更新或新数据

OPTOINAL:取消所有可以成功取消的更新或新插入的数据

本功能用得很少,所以只是翻译一下,请大家查阅相关文献。

6 创建视图与索引

视图

视图最大的好处是它只是一个存储的查询,因此不包含任何数据,这可以减少磁盘的使用空间。其它的功能与数据库的表类似。

创建视图语法:

Create View View-name as

Query-expression ;

例:

proc sql noprint outobs=0;

create View delayview as

select *

from Delay;

quit;

索引

语法:

Create Index index-name

On table-name (column-name,column-name);

视图和索引都用得很少,所以这里就不作讲解了,大家查阅相关文献吧。

7 维护表

这里主要讲一下如何更新或删除已存在的表的数据,如何对一个表增加、减少、或改变其列的属性,如何删除表、视图和索引。

更新数据

这里主要用update来更新表的数据,语法如下

Update table-name

Set column-name=expression,

Set column-name=expression,…

Where expression;

注意,这里的where一定要写清楚,如果没有的话,则会更新所有的数据。

例:

proc sql noprint;

update delay

set delaycat='Delay'

where delay=0;

quit;

条件处理

用CASE语句来实现条件处理。例如,对根据sales的大小进行分类:语法:

Select column…

Case

When when-condition then result-expression

< When when-condition then result-expression>

End;

例:

proc sql;

create table shoesrank as

select *,

(case

when sales>100000 then 'good'

else 'bad'

end) as rank

from ;

quit;

删除行

语法:

Delete from table-name

Where expression;

例:

proc sql;

Delete from shoesrank

Where Region='Africa';

quit;

改变列

语法:

Alter Table table-name

Add column-definition,column-definition,…

Drop column-name,column-name,…

Modify column-definition,column-definit ion,…

对已存在的数据表增加一个列:例:

proc sql;

alter table shoesrank

add addcolumn num format=,

addcolumnmore char(10);

quit;

从已存在的数据表中删除列,例:

proc sql;

alter table shoesrank

drop addcolumn;

quit;

修改某列的属性,例:

proc sql;

alter table shoesrank

modify addcolumnmore char(20) label='modify add label';

quit;

删除表、视图、索引

语法:

Drop Table table-name,table-name,…;

Drop View View-name,View-name,…;

Drop Index index-name,index-name,…;

From table-name;

例:

proc sql;

drop table shoesrank;

quit;

SAS中的SQL语句完全教程之三:SQL过程步的其它特征

SAS中的SQL语句完全教程之三:SQL过程步的其它特征

本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。

前面两部分内容都比较简单,本节内容才是本系列要介绍的重点。不过这里装的内容都是点到即止,如果以后有时间,会进行更详细地讲解。

1 SQL过程步选项

SQL过程步选项的作用主要是可以从更细节的方式去控制SQL过程步,并且可以在不执行过程的情况下对程序进行测试等。

下面介绍一下列出来的选项,这些选项大多经常用到,更多的选项可以参考SAS帮助。

INOBS:进行一个查询时,对每个源数据表进行N行限制,仅对这N行的数据进行查询。

OUTOBS:指定查询输出结果的观测数

LOOPS:指定SQL过程步内循环的次数(此选项我用得比较少,谁明白的可以讲一下,多谢)NOPROMPT和PROMPT:修改上述三个选项的效果,从而让你选择是否继续或停止选项的效果。

PRINT和NOPRINT:控制是否打印选择的数据结果

NONUMBER和NUMBER:控制是否在第一列打印观测值编号

DOUBLE和NOBOUBLE:输入报表是否隔行显示

NOFLOW和FLOW和FLOW=n和FLOW=n m :指定列宽,n指定列宽,m指定行宽

double选项

proc sql double;

select flight,date

VF考试复习 命令大全

VF命令一览表 一、命令 https://www.doczj.com/doc/fc510262.html,e 表名打开表 2.List 显示表记录,但不能修改 3.browse 浏览表记录,可以修改 4.display 显示记录指针指向的记录 5.append 追加记录 6.append blank 追加空白记录 7.insert blank 插入空白记录 8.delete 逻辑删除记录,记录前出现星号 9.pack 物理删除,将逻辑删除的记录彻底删除 10.recall 记录恢复 11.zap 删除表里的所有记录 12.go n 指向第n条记录 13.go top 指向第一条记录 14.go bottom 指向最后一条记录 15.skip n 往下跳n条记录 16.skip -n 往上跳n条记录 17.? 从屏幕的下一行的第一列起显示结果 18.? ? 从当前行当前列起显示结果 https://www.doczj.com/doc/fc510262.html,e sb copy to sb() 复制sb表给sb()表 20.recno() 记录号函数 21.bof() 上溢出 22.eof() 下溢出 23.dimension x(4) 定义数组x,里面有四个元素,其中每个元素的默认值为.F. declare和dimension 相同 24.replace 替换 25.add 表示增加字段 26.distinct 不重复记录 27.error 错误 28.continue 继续 29.else if 否则 30.column 列 31.input 显示数值 32.accept 显示字符串 33.wait 是弹出的一个信息框 34.drop 删除字段或删除表 35.otherwise 其它情况 36.check 规则 37.cursor 临时表 38.build 连编 二、VF里文件类型 1.项目.pjx project 2.数据库.dbc database

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.05WHERE cj>80 5.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表文件名]

VF(SQL语句习题)-

VF(SQL语句习题)- 大学计算机 VisualFoxpro6.0数据库和编程 SQL语句练习 学院:经济与管理学院专业:农林经济与管理编号:XXXX年龄> 60,其功能是()(a)从SS表中完全删除60岁以上的记录(b)在SS表中为60岁以上的记录添加删除标记(c)删除SS表 (D)删除SS表的“年龄”字段 5。查询结果中只包括满足连接条件的记录。这种联系是()(a)左连接(b)右连接(c)内连接(d)全连接ii。填空题(5×2=10分) 1。SQL语言集成了、、和的函数。由于其自身在安全控制方面的缺陷,VFP不提供功能 2。关系数据库的标准语言是_ language,意思是 3。在VFP6.0支持的标准中,_命令可以修改表中的数据,_命令可以修改表的结构 4。在SQL-SELECT命令中,允许为_子句中定义的表定义别名,以便在查询的其他部分使用 5。在SQL-SELECT语句中,子句可以消除查询结果中的重复记录版权所有

保留所有权利 2 违反者将被起诉 大学计算机Visual Foxpro6.0-SQL语句练习 3。练习题(10 x 2 = xxxx日期和学生人数输出 5。在“学生表”中查找所有男孩的信息,包括他们的姓名和年龄6。在“学生表”中查找所有女孩的信息,包括她们的姓名和年龄7。在“成就表”中查找所有学生的平均分数 8。在“成绩表”中找到得分最高的学生的信息,包括姓名、性别和学生编号。版权所有 保留所有权利 5 违反者将被起诉 大学计算机Visual Foxpro6.0-SQL语句练习 9。在“成绩表”中找出得分最低的学生的信息,包括姓名、性别和学

vf常用命令(全)

命令结构 FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。 如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT] 常用子句 范围:表示记录的执行范围,可以是下面几项其中之一: ALL 表示全部记录; NEXT n 表示从当前记录开始的以下n条记录; RECORD n 表示第n号记录; REST 表示从当前记录到最后一条记录。 FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。 FOR条件:对满足条件的记录进行操作。 WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。 以下命令中,大写的英文词为关键词,必须原样照写。 “常用子句”指以下几个可选子句: [范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件] 命令中的“列表”,指用“,”分隔的各项。如“字段名列表”就是将各个字段名用逗号分隔。 部分英文词的意义:Databasename 数据名tablename 数据表名filename 文件名Viewname 视图名arrayname 数组名 提示:加下划线的为本课程要求掌握的命令。 一、数据库的建立、打开、关闭和删除 建立数据库: CREATE DATABASE [databasename|?] 从磁盘中删除数据库: DELETE DATABASE databasename|? 打开数据库: OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE] 打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY DATABASE [databasename|?] 指定的数据库databasename为当前数据库。 指定当前的数据库: SET DATABASE TO [databasename] Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。 关闭数据库: CLOSE DATABASE [ALL] 关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。 二、数据表和视图的建立、打开、关闭和删除 建立数据表(SQL命令): CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL] [{,Col_name2 Type2 [NOT NULL/NULL]}...]) table_name是所创建的数据表的名字。 Col_name1,Col_name2,...是表中列的名。 Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。 如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。 向当前打开的数据库中添加数据表: ADD TABLE tablename|? 从当前打开的数据库中删除数据表:

vf)sql语句练习

1、Stock_sl(股票代码,买入价,现价,持有数量) Stock_name(股票代码,股票简称,汉语拼音) 用sql语句完成下列操作:列出所有盈利(现价大于买入价)的股票简称、现价、买入价和持有数量,并将检索结果按持有数量降序存储于表stock_temp中 select 股票简称,现价,买入价,持有数量 from stock_sl,stock_name; where 现价>买入价 and stock_sl.股票代码=stock_name.股票代码 ; order by 持有数量 desc into table stock_temp 2、学生(学号,姓名,性别,年龄,系) 课程(科称号,课程名称) 选课(学号,课程号,成绩) 将选课在5门以上(包括5门)的学生的学号,姓名,平均分和选课门数按平均分降序排序,并将结果存于数据库表stu_temp(字段名为学号,姓名,平均分和选课门数)方法一: select 学生.学号,姓名,avg(成绩) as 平均分,count(*) as 选课门数 from 学生,选课; where 学生.学号=选课.学号; order by 平均分desc; group by 选课.学号 having count(*)>=5; into table stu_temp 方法二: select a.学号,a.姓名,avg(b.成绩) 平均分,count(b.课程号) 选课门数 from 学生 a,选课 b where a.学号=b.学号 group by b.学号 having(count(b.课程号))>=5 order by 平均分 desc into dbf stu_temp 3、. Book(索书号,书名,作者,图书登记号,价格) Borrows(借书证号,姓名,系名,班级) Loans(借书证号,图书登记号,借书日期) 检索“田亮”所借图书的书名、作者、价格,结果按价格降序存入book_temp中。 select 书名,作者,价格 from book ,borrows ,loans; where 姓名=’田亮’ and borrows.借书证号=loans.借书证号 and loans.图书登记号=book. 图书登记号; order by 价格 desc into dbf book_temp 4、 Score_manager.dbc中, Student(学号,姓名,性别,系部,出生日期) Course(课程号,课程名,开课单位,学时数,学分) Score1(学号,课程号,成绩) 在score_manager数据库中查询没有选修任何课程的学生信息,查询结果包括学号,姓名和系部字段,查询结果按升序保存在一个新表new_table中 select 学号,姓名,系部 from student where 学号 not in (select distinct 学号 from score1) into dbf NEW_TABLE

vf常用语言

SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询 ---局部变量 declare @id char(10) --set @id = 10010001 select @id = 10010001

vfp中地常用函数与命令

VFP常用的命令和函数 1.数据库操作语言 使用可以CLOSE 命令关闭各种类型的文件。 DBC( ) 函数返回当前数据库的名称和路径。SQLCANCEL( ) 函数请求取消一条正在执行的 SQL 语句。SQLCOMMIT( ) 函数提交一个事务处理。SQLCONNECT( ) 函数建立一个对数据源的连接。SQLDISCONNECT( ) 函数结束一个对数据源的连接。SQLEXEC( ) 函数发送一条 SQL 语句到数据源中处理。SQLGETPROP( ) 函数获取一个活动连接的当前设置。 SQLMORERESULTS( ) 函数如果存在多个可用的结果集,则将另一个结果集复制到Visual FoxPro 临时表(cursor)中。 SQLROLLBACK( ) 函数取消当前事务处理期间所做的任何更改。SQLSETPROP( ) 函数指定一个活动连接的设置。SQLSTRINGCONNECT( ) 函数使用一个连接字符串建立与数据源的连接。TABLEREVERT( ) 函数放弃对缓冲行、缓冲表或临时表(cursor)的修改。 TABLEUPDATE( ) 函数提交对缓冲行、缓冲表或临时表(cursor)适配器的修改。 字段操作语言 使用可以BLANK 命令清除字段中的数据。 DELETED( ) 函数指出一个记录是否被标记为删除。FCOUNT( ) 函数返回一个表中的字段数量。 FIELD( ) 函数根据编号返回表中的字段名。 GATHER 命令用来自指定源的数据替换记录中的数据。SCATTER 命令从当前记录中复制数据到指定的目标。SET EXACT 命令指定比较不同长度两个串时的规则。

vf中select语法

1、SQL:structure query language 2、定义:是结构化查询语言,是关系数据库的标准语言,是一种高度非过程化的语言,是数据库后台操作语言,具有非常强大的查询功能,查询时它的核心。 3、基本构成:select 查询什么from 从哪来where 查询条件 4、三大功能: l 数据查询 ①.格式:select 字段名/表名/* from 表1 inner join 表2 on 表1主关键字=表2主关键字where 筛选条件[group by (按……分组)having(限定分组条件)order by(按……排序) ②.函数 ③.值域查询:between…and… ④.空值查询:is null ⑤.模糊查询:$ (后包前) *(%)?like l 操作功能 ①.插入insert into 表名value ②. 更新update 表名set 字段=表达式where 条件 ③.删除delete from 表名where 条件 l 定义功能 ①.表的定义creat *** ②. 删除表 drop table表名 删除视图drop view ③.表结构的修改 ⑴.添加字段:alter table 表名add 字段名类型(长度) ⑵.删除字段:alter table 表名drop 字段名 ⑶.修改字段:alter table 表名alter 字段名新类型(长度) ⑷.重新命名字段:alter table 表名rename 旧字段名to 新字段名 ⑸.建立有效性规则:alter table 表名(数据库表)alter 字段set check 字段条件 ⑹.删除有效性规则:alter table 表名alter 字段drop check ⑺.建立默认值:alter table 表名alter 字段set default 条件 ⑻.删除默认值:alter table 表名alter 字段drop default ⑼.建立唯一索引:alter table 表名add unique 字段tag索引名 ⑽.删除唯一索引:alter table 表名drop unique tag 索引名 ⑾.建立主索引:alter table 表名add primary key字段tag索引名 ⑿.删除主索引:alter table 表名drop primary key字段tag索引名 ⒀.建立普通索引:alter table 表名add foreign key字段tag索引名 ⒁.删除普通索引:alter table 表名drop foreign key tag索引名

VFP中常用命令(包含一些SQL命令)

VFP中常用命令(包含一些SQL命令) 一、数据库的建立、打开、关闭和删除 建立数据库: CREA TE DA TABASE [databasename|?] 从磁盘中删除数据库: DELETE DA TABASE databasename|? 打开数据库: OPEN DA TABASE [EXCLUSIVE|SHARED][NOUPDA TE] 打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY DA TABASE [databasename|?] 指定的数据库databasename为当前数据库。 指定当前的数据库: SET DA TABASE TO [databasename] Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。 关闭数据库: CLOSE DA TABASE [ALL] 关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。 二、数据表和视图的建立、打开、关闭和删除 建立数据表(SQL命令): CREA TE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL] [{,Col_name2 Type2 [NOT NULL/NULL]}...]) table_name是所创建的数据表的名字。 Col_name1,Col_name2,...是表中列的名。 Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。 如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。 向当前打开的数据库中添加数据表: ADD TABLE tablename|? 从当前打开的数据库中删除数据表: REMOVE TABLE tablename|? [DELETE] 如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。 在当前打开的数据库中建立视图:

VFP中select - sql命令及示例

select - sql命令功能 从一个或多个表中检索数据。 语法 SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] [Alias.]Select_Item [AS Column_Name] [, [Alias.]Select_Item [AS Column_Name] ...] FROM [FORCE] [DatabaseName!]Table [[AS]Local_Alias] [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN DatabaseName!]Table [[AS]Local_Alias] [ON JoinCondition…] [[INTO Destination] | [TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT] | TO SCREEN]] [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT] [WHERE JoinCondition [AND JoinCondition ...] [AND | OR FilterCondition [AND | OR FilterCondition ...]]] [GROUP BY GroupColumn [,GroupColumn ...]] [HAVING FilterCondition] [UNION [ALL]SELECT命令] [ORDER BY Order_Item [ASC | DESC] [,Order_Item [ASC | DESC] ...]] 参数 SELECT

(完整版)VFP中常用命令

VFP中常用命令 一、数据库的建立、打开、关闭和删除 建立数据库: CREATE DATABASE [databasename|?] 从磁盘中删除数据库: CREATE DATABASE [databasename|?] ELETE DATABASE databasename DELETE DATABASE databasename|? 打开数据库: OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE] 打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY DATABASE [databasename|?] 指定的数据库databasename为当前数据库。 指定当前的数据库: S ET DATABASE TO [databasename] Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。 关闭数据库: CLOSE DATABASE [ALL] 关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。 二、数据表和视图的建立、打开、关闭和删除 建立数据表(SQL命令): CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL] [{,Col_name2 Type2 [NOT NULL/NULL]}...]) table_name是所创建的数据表的名字。 Col_name1,Col_name2,...是表中列的名。 Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。 如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。 向当前打开的数据库中添加数据表: ADD TABLE tablename|? 从当前打开的数据库中删除数据表: REMOVE TABLE tablename|? [DELETE] 如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件

VF-命令一览表

VF 命令一览表 一、命令 https://www.doczj.com/doc/fc510262.html,e 表名打开表 2.List 显示表记录,但不能修改 3.browse 浏览表记录,可以修改 4.display 显示记录指针指向的记录 5.append 追加记录 6.append blank 追加空白记录 7.insert blank 插入空白记录 8.delete 逻辑删除记录,记录前出现星号 9.pack 物理删除,将逻辑删除的记录彻底删除 10.recall 记录恢复 11.zap 删除表里的所有记录 12.go n 指向第n 条记录 13.go top 指向第一条记录 14.go bottom 指向最后一条记录 15.skip n 往下跳n 条记录 16.skip -n 往上跳n 条记录 17.? 从屏幕的下一行的第一列起显示结果 18.? ? 从当前行当前列起显示结果 https://www.doczj.com/doc/fc510262.html,e sb copy to sb() 复制sb 表给sb()表 20.recno() 记录号函数 21.bof() 上溢出 22.eof() 下溢出 23.dimension x(4) 定义数组x,里面有四个元素,其中每个元素的默认值为.F. declare 和dimension 相同 24.replace 替换 25.add 表示增加字段 26.distinct 不重复记录 27.error 错误 28.continue 继续 29.else if 否则 30.column 列 31.input 显示数值 32.accept 显示字符串 33.wait 是弹出的一个信息框 34.drop 删除字段或删除表 35.otherwise 其它情况 36.check 规则 37.cursor 临时表 38.build 连编 二、VF 里文件类型 1.项目.pjx project 2.数据库.dbc database 3.表.dbf table 4.菜单.mnx .mpr menu 5.程序.prg 6.表单.scx form 7.报表.frx report 8.查询.qpr query 9.视图.vue view 10.文件.txt 11.备注型

VFP的SQL命令和语句大全

VFP的SQL命令和语句大全 SQL——标准的结构化查询语言 关系模型数据库管理系统(DBMS) 一、数据定义 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 ,csrq d, bj n(10)) 例:数据库表 CREATE TABLE xscj(xh c(8) primary key ,xm c(6),xb c(2),cj n(5,1),ksrq d,zp g ) 2.ALTER TABLE (修改表结构) 命令格式示例 (1)添加字段: ALTER TABLE xscj ADD COLUMN kcmc C(14) (2)重命名字段 ALTER TABLE xscj RENAME COLUMN kcmc TO kc (3)删除字段 ALTER TABLE xscj DROP COLUMN kc . 3.DROP TABLE <表名> //删除表文件(.dbf) 二、数据操作语句 4.INSERT-SQL命令该命令的一般格式为: INSERT INTO <表名>[(字段名1[,字段名2 ])] VALUES (表达式1[,表达式2 …])例:INSERT INTO xscj(xh,xm,cj)VALUES ("81991001", "张良", 85.5) 5.UPDATE-SQL 命令。 功能:对符合条件的记录修改字段的值 命令格式:

vf基本命令

FOXBASE+命令全集 一.数据库相关的命令 1.退出命令:格式:QUIT 功能:退出FOXBASE+系统。 2.建立数据库:格式:CREATE <数据库文件名> 功能:建立数据库文件 3.显示数据结构:格式:LIST STRUCTURE 或DISPLAY STRUCTURE 功能:显示当前库的构。 4.修改数据库结构;格式;MODIFY STRUCTURE 功能:修改数据库结构。5.打开数据库;格式:USE [数据库文件名[ALIAS<别名>]] 6.追加记录:APPEND [BLANK] 7.插入记录:INSERT [BEFORE][BLANK] 8.从文件追加记录: APPEND FROM <数据库文件名>[FOR<条件>][FIELDS<字段名清单>][范围] 9.显示记录:LIST [范围][FOR |WHILE<条件>][FIELDS<字段名清单 >][OFF][TO PRINT] DISPLAY [范围][FOR |WHILE<条件>][FIELDS<字段名清单>][OFF][TO PRINT] 10.记录指针移动:绝对移动:GO|GOTO <数值表达式> |TOP |BOTTOM 相对移动:SKIP [数值表达式] 11.修改记录: EDIT [范围][FIELDS<字段名清单>][FOR|WHILE<条件>] GHANGE [范围] [FIELDS<字段名清单>] [FOR|WHILE<条件>] REPLACE [范围]< 字段名1> WITH <表达式1>。。。。[FOR|WHILE<条件>] BROWSE [FIELDS<字段清单>][LOCK<数值表达式>][FREEZE<字段名>] [NOMENU] [NOAPPEND] [NOMODIFY] [WIDTH<数值表达式>] [NOFOLLOW]

vfp函数与命令大全

Visual FoxPro数据库函数 ADATABASES() 将所有打开数据库的名称和路径放到内存变量数组中 ADBOBJECTS() 把当前数据库中的命名连接名、关系名、表名或sQL视图名放到一个内存变量数组中 AFIELDS() 把当前表的结构信息存放在一个数组中,并且返回表的字段数 ALIAS() 返回当前表或指定工作区衰的别名 ASESSIONS() 创建一个已存在的数据工作期ID数组 ATAGINFO() 创建一个包含索引和键表达式的名字、数量和类型信息的数组 AUSED() 将一个数据工作期中的表别名和工作区存入内存变量数组 BOF() 确定当前记录指针是否在表头 CANDIDATE() 判断索引是否为候选索引 CDX() 根据指定的索引位置编号,返回打开的复合索引(.CDX)文件名称 CPDBP() 返回一个打开表所使用的代码页 CREATEOFFLINE() 由已存在的视图创建一个游离视图 CURSORGETPROP() 返回VisualFoxPro表或临时表的当前属性设置CURSORSETPROP() 指定VisualFoxPro表或临时表的属性设置 CURSORTOXML() 转换VisualFoxPro临时表为XML文本 CURVAL() 从磁盘上的表或远程数据源中直接返回字段值 DBC() 返回当前数据库的名称和路径 DBF() 返回指定工作区中打开的表名,或根据表别名返回表名 DBSETPROP() 给当前数据库或当前数据库中的字段、命名连接、表或视图设置一个属性DELETED() 返回一个表明当前记录是否标有删除标记的逻辑值 DESCENDING() 是否用DESCENDING关键字创建了一个索引标识 DROPOFFLINE() 放弃对游离视图的所有修改,并把游离视图放回到数据库中 EOF() 确定记录指针位置是否超出当前表或指定表中的最后一个记录 FCOUNT() 返回衰中的字段数目 FIELD() 根据编号返回表中的字段名 FILTER() 返回SETFILTER命令中指定的表筛选表达式 FLDLIST() 对于SETmELDS命令指定的字段列表,返回其中的字段和计算结果字段表达式 FLOCK() 尝试锁定当前表或指定表 FOR() 返回一个己打开的单项索引文件或索引标识的索引筛选表达式 FOUND() 如果CONTINUE、FIND、LOCATE或SEEK命令执行成功,函数的返回值为"真" FSIZE() 以字节为单位,返回指定字段或文件的大小 GETFLDSTATE() 返回一个数值,标明表或临时表中的字段是否已被编辑,或是否有追加的记录,或者记录的删除状态是否已更改 GETNEXTMODIFIED() 返回一个记录号,对应于缓冲表或临时表中下一个被修改的记录HEADER() 返回当前或指定表文件的表头所占的字节数 IDXCOLLATE() 返回索引或索引标识的排序序列 INDBC() 如果指定的数据库对象在当前数据库中,则返回"真"(.T.)

VF命令大全

建立数据库: CREATE DATABASE [databasename|?] 从磁盘中删除数据库: DELETE DATABASE databasename|? 打开数据库: OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE] 打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY DATABASE [databasename|?] 指定的数据库databasename为当前数据库。 指定当前的数据库: SET DATABASE TO [databasename] Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。 关闭数据库: CLOSE DATABASE [ALL] 关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。 二、数据表和视图的建立、打开、关闭和删除 建立数据表(SQL命令): CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL] [{,Col_name2 Type2 [NOT NULL/NULL]}...]) table_name是所创建的数据表的名字。 Col_name1,Col_name2,...是表中列的名。 Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。 如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。 向当前打开的数据库中添加数据表: ADD TABLE tablename|? 从当前打开的数据库中删除数据表: REMOVE TABLE tablename|? [DELETE] 如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。 在当前打开的数据库中建立视图: CREATE SQL VIEW viewname AS SELECT ……

VFP SQL语句大全(一)

VFP——SQL语句大全(一)2010-06-17 10:03:22| 分类:编程| 标签:|字号大 中 小订阅 VFP命令、函数及程序语句大全 一、主要命令: 1、CREATE CREATE DATABASE 库文件名.DBC―――建立数据库: CREATE TABLE/DBF 表名(各个字段属性)??????????????—————建立表 CREATE VIEW <视图名> AS