分享

VFP(刘丽主讲)精粹之二

 悟静 2009-06-21

SQL命令动词(功能):

数据查询:SELECT(选择)

数据定义:CREATE(创建)、DROP(放弃)、ALTER(更改)

数据操纵:INSERT(插入)、UPDATE(更新)、DELETE(删除)

数据控制:GRANT(同意)、REVOKE(取消)

 

查询功能:

SELECT-FROM-WHERE  (基本查询块)

SELECT说明要查询的数据

FROM说明查询的数据来自哪个(些)表

WHERE说明查询条件,即选择元组的条件

GROUP GY对查询结果进行分组,可能利用它进行分组汇总

HAVING必须跟随GROUP BY使用,它用来限定分组必须满足的条件

ORDER BY用来对查询结果进行排序

简单查询

select [distinct(去掉重复值)] 字段 from 表名 where 查询条件

根据条件选出满足条件的元组(相当于关系运算的选择操作),并显示select子句中指定属性的值(相当于关系运算的投影操作)

简单的连接查询

select 属性1...属性2 from 关系名...关系名 where(条件表达式)and (关系名.属性名)

嵌套查询

select 属性名 from 关系名 where 属性名 (外层查询块) IN(相当于集合运算符∈) select 属性名 from 关系名 where 表达式(查询条件) (内层查询块)

几个特殊运算符

BETWEEN...ADN.../LIKE(%表示0个或任意多个字符;_表示一个字符)

!=(不等于)

NOT(作用很广泛。如NOT IN、NOT BETWEEN等)

一般用在WHERE语句中

排序

order by

格式:SELECT 属性名 FROM 关系名 ORDER BY

简单的计算查询:

用于计算检索的函数有SUM/AVG/MAX/MIN/COUNT(计数。注意:除对关系中元组个数进行计数外,一般COUNT函数应该使用DISTINCT)

格式:SELECT 函数 FROM 关系名 

分组与计算查询

GROUP BY [HAVING]

注意:GROUP BY子句一般跟在WHERE之后,没有WHERE时,跟在FROM之后。HAVING总是跟在GROUP BY之后,WHERE限定元组,而HAVING限定分组

利用空值查询

IS NULL/IS NOT NULL

一般跟在WHERE语句之后。如:找出没有确定供应商的订购单

     SELECT * FROM 供应商 WHERE 供应商号 IS NULL

找出确定了供应商的订购单信息:

     SELECT * FROM 供应商 WHERE 供应商号 IS NOT NULL

别名与自连接查询

格式:<关系名> <别名>

使用量词和谓词的查询

<表达式> <比较运算符> [ANY/ALL/SOME](子查询)| [NOT]EXISTS(子查询)

 ANY/SOME是“一些”的意思;EXISTS是“存在”的意思

超连接查询:

SELECT ......

  FROM Table INNER | LEFT | RIGHT | FULL JOIN Table

     ON JoinCondition

    WHERE......

ON 指定连接条件(而不在WHERE语句中);FROM 指定连接类型

inner 是“普通”的意思。join 是“连接”的意思。condition 是“条件”的意思

在多个表进行连接时,JOIN 顺序和 ON 顺序是很重要的,正好相反。

集合的并运算:

查询语句1 union 查询语句2

要求具有相同的字段个数、相同的类型和取值范围

 

SQL SELECT的几个特殊选项:

只显示前几项记录:

TOP nExp [precent]

nExp 显示表达式值数记录

precent 显示前百分之几的记录

注意:TOP要与ORDER BY 同时使用才有效 

将查询结果存放到数组中:

INTO ARRAY ArrayName

将查询结果存放到临时文件中:

INTO CURSOR CursorName

将查询结果存放到永久表中:

INTO DBF|TABLE TableName

将查询结果存放到文本文件中:

TO File FileName [ADDITIVE]

注意:ADDITIVE 是将文件添加到原文件尾部,不加此短语则复盖原文件。默认扩展名为.TXT

将查询结果输出到打印机:

TO PRINTER [PROMPT]

使用PROMPT,可在打印前打开打印机设置对话框

 

SQL的操作功能:

插入数据:

第一种格式:

INSERT INTO dbf_name [(fname1,[fname2,......])]VALUES (eExpression1 [eExpression2,......])

第二种格式:

INSERT INTO dbf_name FROM ARRAY ArrayName |FROM MEMVAR

注意:当一个表定义了主索引或候选索引后,由于相应的字段具有关键字的特性(不能为空)所以只能用此命令插入记录。以前的插入命令是先插入一条空记录,然后再输入各字段的值,由于关键字段不允许为空,所以使用以前的方法就不能成功插入记录。

更新数据:

UPDATE TableName

  SET Column_Name1=eExpression1[,column_Name2=eExpression2...]

   WHERE Condition

Column 是“柱”、“列”的意思,Condition是条件的意思

删除数据:

DELETE FROM TableName [WHERE Condition]

 

SQL的定义功能:

表的定义:

CREAT TABLE | DBF TableName1 [NAME LongTableName] [FREE]

 (FeildName1 FieldType [ (nFieldWidth [, nPrecision])] [NULL |.NOT NULL]

[CHECK Expression1 [ERROR cMessageText1]]

[DEFAULT cExpression1]

[PRIMARY KEY | UNIQUE]

[REFERENCES TableName2 [TAG TagName1]]

[NOCPTRANS]

[,FieldName2...]

[,PRIMARY KEY eExpression2 TAG TagName2

|,UNIQUE eExpression3 TAG TagName3]

[,FOREIGN KEY eExpression4 TAG TagName4 [NODUP]

REFERENCES TableName3 [TAG TagName5]]

[,CHECK Expression2 [ERROR cMessageText2]])

|FROM ARRAY ArrayName

REFERENCE 是“涉及”、“参考”的意思,TAG 是“标签”、“连接”的意思,FOREIGN 是“外部的”意思,FREE 是“自由表”,UNIQUE 是“候选索引”,FROM ARRAY 是“根据数组内容建立表”。

表的删除:

DROP TABLE TableName

表结构的修改:

ALTER TABLE

三种格式:

第一种:可以添加新的字段或修改已有的字段。但不能修改字段名、不能删除字段、不能删除已经定义的规则等。

ALTER TABLE AableName1 ADD | ALTER [COLUMN] FieldName1

  FieldType [(nFieldWidth [,nPrecision])] [NOT NULL]

  [CHECK Expression1[ERROR cMessageText1][DEFAULT eExpression1]

  [PRIMARY KEY | UNIQUE]

  [REFERENCES TableName2 [TAG TagName1]]

第二种:用于定义、修改和删除有效性规则和默认值定义。但不能删除字段、不能更改字段名。与上一格式一样,所有修改都只限于字段一级。

ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL | NOT NULL]

  [SET DEFAULT eExpression2] [SET CHECK Expression2 [ERROR MessageText2]]

  [DROP DEFARLT][DROP CHECK]

第三种:可以删除字段、修改字段名、可以定义、修改和删除表一级的有效性规则等。

ALTER TABLE TableName1 [DROP[COLUMN]FieldName3]

  [SET CHECK Expression3[ERROR NessagText3]]

  [DROP CHECK]

  [ADD PRIMARY KEY Expression3 TAG TagName2 [FOR Expression4]]

  [DROP PRIMARY KEY]

  [ADD UNIQUE eExpression4 [TAG TagName3[FOR Expression5]]]

  [DROP UNIQUE TAG TagName4]

  [ADD FOREIGN KEY [eExpression5] TAG TagName4 [FOR Expression6]

  REFERENCES TableName2 [TAG TagName5]]

  [DROP FOREIGN KEY TAG TagName6 [SAVE]]

  [RENAME COLUMN FieldName4 TO FieldName5]

 

打开查询设计器的命令:

CREATE QUERY

查询设计器与SQL语言对应的关系:

选择表或视图   from             字段     SELECT

连接           JOIN ON          筛选     WHERE

排序依据       ORDER BY HEVING  分组依据 GROUP BY

杂项           DISTINCT(是否要重复记录) TOP(列在前面的记录)

注意:在用FROM选择表或视图时,还要给出数据库名前缀,并且数据库名后要加!号。

使用查询:

DO queryfile

注意:必须给出查询文件的扩展名.QPR

 

打开视图设计器的命令:

CREAT VIEW

注意:没有“查询去向”问题,但有“更新条件”问题

远程视图需要打开连接设计器

CREAT CONNECTION

要通过视图更新基本表中的数据,需要在“更新条件”选项卡,选中“发送SQL更新”

使用视图:

USE

用于基本表的命令基本都可以用于视图操作

 

任何菜单都有一定动作,这个动作可以是下列三种情况之一:

只有选项名:执行一条命令

省略号...执行一个过程

黑三角▲:激活另一个菜单

 

系统条形菜单(主菜单)中常见选项的名称和内部名字:

选项名称     内部名字

文件         _MSM_FILE

编辑         _MSM_EDIT

显示         _MSM_VIEW

工具         _MSM_TOOLS

程序         _MSM_PROG

窗口         _MSM_WINDO

帮助         _MSM_SYSTM

 

弹出式菜单的内部名字:

弹出式菜单    内部名字

文件          _MFILE

编辑          _MEDIT

显示          _MVIEW

工具          _MTOOLS

程序          _MPROG

窗口          _MWINDO

帮助          _MSYSTEM

 

“编辑”菜单(_MEDIT)常见选项:

选项名称        内部名字

撤消            _MED_UNDO

重做            _MED_REDO

剪切            _MED_CUT

复制            _MED_COPY

粘贴            _MED_PASTE

清除            _MED_CLEAR

全部选定        _MED_SLCTA

查找            _MED_FIND

替换            _MED_REPL

 

SET SYSMENU命令可以允许或禁止在程序执行时访问系统菜单,也可以重新配置系统菜单

SET SYSMENU ON|OFF|AUTOMATIC

|TO[<弹出式菜单钟表>]

|TO[<条形菜单项名表>]

|TO[DEFAULT][SAVE][NOSAVE]

NO:允许程序执行时访问系统菜单

OFF:禁止程序执行时访问系统菜单

AUTOMATIC:可使系统菜单显示出来,可以访问系统菜单

TO[<弹出式菜单名称>]重新配置系统菜单,以内部名字列出可用的弹出式菜单

TO[<条形菜单项名表>]重新配置系统菜单,以条形菜单内部名表列出可用的子菜单

TO DEFAULT:系统菜单恢复为缺省设置(退出菜单的命令)

TO SAVE:系统菜单恢复为缺省设置

TO NOSAVE:将缺省配置恢复成VISUAL FOXPRO系统菜单的标准配置

 

新建菜单命令格式:

create menu [<filename> | ?]

打开菜单设计器命令格式:

modify menu [<filemane> | ?]

 

菜单热键设定:在菜单名称栏输入欲设定的字母,再输入(\>)即可

 

为顶层表单添加菜单:

步骤:1/在“菜单设计器”中设计下拉式菜单;2/菜单设计时,在“常规选项”对话框中选择“顶层菜单”复选框;3/将表单的show windows属性设置为2,使其成为顶层表单,在表单的init事件代码中添加调用菜单程序命令,格式:

DO<文件名>WITH This[,"<菜单名>"]

在表单的Destroy事件代码中添加清除菜单的命令,使得在关闭表单时能同时清除菜单,释放其所占用的内存空间,命令格式:

RELEASE MENU<菜单名>[EXTENDED]

 

清除菜单、释放内存命令

在快捷菜单的“清理”代码中添加清除菜单的命令,使得在选择、执行菜单命令后能及时清除菜单,释放其所占用的内存空间。命令格式:

RELEASE POPUPS<快捷菜单名>[EXTENDED]

 

添加快捷菜单的命令:

在表单设计器环境下,选定需要添加快捷菜单的对象,在选定对象的Rightclick事件中,添加调用快捷菜单的命令:

DO<快捷菜单程序文件名>

 

退出菜单代码:

SET SYSMENU NOSAVE

SET SYSMENU TO DEFAULT

 

打开报表设计器的命令格式:

CREATE REPORT <文件名>  &创建新的报表 

MODIFY REPORT <文件名>  &打开一个已有报表

 

用项目管理器组织应用系统步骤:

1、创建或打开一个项目

2、将已经开发好的各个模块或部件通过项目管理器添加到该项目中

3、在项目管理器中自下而上地调试各个模块

 

 

连编应用程序的命令是:BUILD APP<应用程序名>FROM<项目名〉

连编可执行程序的命令是:BUILD EXE<可执行文件〉FORM<项目名>

 

运行应用程序命令:DO<应用程序文件名〉

删除表文件的命令:DROP TABLE <表名>

 

set talk off  功能:在程序运行时关闭命令提示

 

概念:

能够伴随数据库表的打开而自动打开的索引文件是结构复合索引文件,这是惟一能够自动打开和关闭索引文件。该类索引文件不需要用户维护和管理,系统会自动进行维护,它的文件名与表名相同,扩展名是.cdx。其他类型的索引文件的打开需要以明确的命令方式打开。

 

视图是一个基于表而产生的虚表,并不是对基本表内容的复制,它体现的是一种映射关系,它允许更新内容、查询和删除操作,但是它不能脱离数据库中的基本表而独立存在。

 

组合框用于向用户提供一组可选择的选项。列表框与组合框类似,但是也有一点区别,即列表框允许用户进行多重选择。

 

数据库表和自由表的扩展名都是.DBF

 

文件类型:

       扩展名: 文件类型

        .act    向导操作图文件

        .app    生成的应用程序

        .cdx    复合索引

        .chm    编译的 html help

        .dbc    数据库

        .dct    数据库备注

        .dcx    数据库索引

        .dbf   

        .dbg    调试器配置

        .dep    相关文件(由安装向导创建)

        .dll    windows动态链接库

        .err    编译错误

        .esl    visual foxpro支持的库

        .exe    可执行文件

        .fky   

        .fll    foxpro动态链接库

        .fmt    格式文件

        .fpt    表备注

        .frt    报表备注

        .frx    报表

        .fxp    编译后的程序

        .h      头文件

        .hlp    winhelp

        .htm    html文件

        .lbt    标签备注

        .lpx    标签

        .idx    索引/压缩索引

        .log    代码范围日志

        .lst    向导列表文档

        .mem    内存变量保存

        .mnt    菜单备注

        .mnx    菜单

        .mpr    生成的菜单程序

        .mpx    编译后的菜单程序

        .ocx    Active控件

        .pjt    项目备注

        .pjx    项目

        .prg    程序

        .qpr    生成的查询程序

        .qpx    编译后的查询程序

        .sct    表单备注

        .scx    表单

        .spr    生成的屏幕程序

        .spx    编译后的屏幕程序

        .tbk    备注备份

        .txt    文本

        .vct    可视类库备注

        .vcx    可视类库

        .vue    foxpro2.X视图

        .win    窗口文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多