vfp中select语句用法Word格式.docx

上传人:b****7 文档编号:22497119 上传时间:2023-02-04 格式:DOCX 页数:54 大小:41.70KB
下载 相关 举报
vfp中select语句用法Word格式.docx_第1页
第1页 / 共54页
vfp中select语句用法Word格式.docx_第2页
第2页 / 共54页
vfp中select语句用法Word格式.docx_第3页
第3页 / 共54页
vfp中select语句用法Word格式.docx_第4页
第4页 / 共54页
vfp中select语句用法Word格式.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

vfp中select语句用法Word格式.docx

《vfp中select语句用法Word格式.docx》由会员分享,可在线阅读,更多相关《vfp中select语句用法Word格式.docx(54页珍藏版)》请在冰豆网上搜索。

vfp中select语句用法Word格式.docx

用OrderBy子句对结果排序..........................................................................................................5

列函数..............................................................................................................................................6

SQL的列函数..........................................................................................................................6

列函数中的DISTINCT.............................................................................................................6

列函数的嵌套............................................................................................................................7

用GROUPBY求分组小计.............................................................................................................9

GROUPBY和DISTINCT之间的选择..........................................................................................9

HAVING子句的使用......................................................................................................................10

用TOP子句选择一定数量或一定百分比的记录...........................................................................13

查询结果的输出定向......................................................................................................................14

复杂查询................................................................................................................................................15

子查询............................................................................................................................................15

带子查询的IN谓词和量词....................................................................................................15

ANY|SOME.............................................................................................................................16

ALL..........................................................................................................................................16

EXISTS...................................................................................................................................17

自身连接.........................................................................................................................................17

合并................................................................................................................................................18

示例一.快速排名次..................................................................................................................19

示例二.选择重复的记录...........................................................................................................20

外连接....................................................................................................................................................21

什么是外连接?

...............................................................................................................................21

用右外连接(RightOuterJoin)选择记录..........................................................................................21

用左外连接(LeftOuterJoin)选择记录............................................................................................22

用完全外连接(FullOuterJoin)选择记录.........................................................................................23

用内连接加外连接选择记录............................................................................................................24

用内连接(InnerJoin)选择记录........................................................................................................25

.............................................................................................25选择记录(NestedJoin)用嵌套的连接.

VisualFoxPro5.0中的新的FROM/JOIN语法...........................................................................26

为了更加清晰.................................................................................................................................27

用SQLSelect生成视图......................................................................................................................28

注意事项................................................................................................................................................29

基本的SQLSelect

From子句

在FROM子句中指定要查询的表,若指定的表未打开,FoxPro将自动打开指定的表,但在查询完成后,FoxPro并不自动关闭它所打开的表,若要在查询完成后关闭表,则必须以手动方式关闭它们。

若在执行

SQLSELECT时,FROM子句中指定的表已经打开,则FoxPro以USE…AGAIN的方式重新打开此表。

Select子句

SELECT子句中指定要查询的结果字段,这些结果可以是以下基本元素:

通配符*

表中的字段名

FoxPro函数

SELECT中可用的列函数

用户自定义函数

常数(常用于作为占位符)

以上各元素在SELECT子句中以逗号分开,例如:

SELECT销售地区,销售部门,业务员;

FROM销售表

若SELECT子句中的字段名是唯一的,则不必在字段名前加别名修饰,SQL能自动找到这些字段。

若字段名是非唯一的(即同一字段名出现在FROM子句中的两个或两个以上表中),FoxPro返回以下错误信息:

<

字段>

|<

变量>

不唯一,必须加以限定

要纠正这一错误,用字段所在表的别名修饰该字段。

若在SELECT子句中加入了FoxPro函数,则意味着该语句不具备可移植性。

SQL和用户自定义函数

FoxPro支持在Select子句中使用用户定义函数。

但是由于在其它系统中不支持用户定义函数。

因此在开发可能移植的系统时不要使用用户自定义函数。

Select子句中的关键字和其它子句

Select子句中的通配符

1、*(星号)

只能使用在字段串列参数中。

代表来源数据库中所有的字段。

如果select是在二个以上的数据库中进行查询的,则要在号码前加上数据库别名。

*是SQL中的三个通配符之一(其它两个是?

和_,将在以后讨论),*只能出现在Select子句中,通配符前可以用别名修饰,在此情况下表示要查询指定工作区中的全部字段.同时还可以给出其它字段名.如:

Select销售表.*,客户表.客户代码,客户表.客户名称;

FROM销售表,客户表;

WHERE销售表.客户代码=客户表.客户代码

2、%(百分号)

只能使用在Where参数中,代表一连串任意字符类似于DOS下的IT*.PRG中的“*”。

通常与运算符

LIKE搭配使用:

SELECT客户名FROM客户表WHERE客户名LIKE“成都%公司”

以上查询选择所有公司名以”成都”开始,以”公司”结尾的客户,如:

成都东方公司、成都西部发展公司等。

3、_(下划线)

也只能使用在where参数中,代表一个任意字符。

与DOS下的DIRIT?

?

.PRG中的”?

”一样。

例如_a%

表示第二个字符为a的字串。

通常与LIKE搭配使用:

SELECT客户名FROM客户表WHERE客户名LIKE“成都_公司”

以上查询选择类似于”成都分公司”,”成都总公司”这样的公司名字。

另一种情况是文字数据中正好包含有星号、百分号、下划线(例如:

软件部__业务组),此时可使用关键字ESCAPE告诉SQL哪一个字符是常数字符而非通配符。

例如:

selectcompanyfromcustomer

wherecompanylike%\_%escape\\

此时escape所指定字符(即\)后的那一个字段(此处为下划线_)将被视为常数字符而非通配符。

字段别名(AS)

FoxPro提供了给Select子句中的字段起别名的方法(这种方法不同于ANSI/ISO标准):

即可用AS子句给出Select子句中字段的别名,在多当需要直接浏览查询结果或查询结果中含有计算列时,该方法很有用处.例如:

;

工资汇总)AS工资,SUM(部门AS”物资部“SELECT

FROM工资表;

WHERE部门编号=“0013”

用DISTINCT消去重复的记录

SELECT中的DISTINCT关键字,可以消去查询结果中的重复行。

例如要字段出所有购买了商的客户,可以用以下Select语句:

SELECTDISTINCT客户名称;

FROM销售细节表

注意,这里消去的重复记录是指SELECT子句中的所有字段值均相等的记录.

当SQL遇到DISTINCT关键字时,即建立一个中间表。

然后以SELECT子句中的所有字段建立一个唯一索引,然后将索引用于中间表,并把索引中的记录放入查询结果中。

这样就消去了重复记录,但是当SELECT

子句中的字段很多时,这一过程会很慢。

用WHERE子句说明选择记录的条件

通常查询并不希望取出所有记录,而只是希望查出满足一定条件的记录,要做到这一点可以使用WHERE子句。

WHERE子句把满足条件的记录作为查询结果。

选择条件

在WHERE子句中可以包含多个选择条件,各条件间用AND或OR连接而构成较长的逻辑表达式。

连接条件

当一个查询涉及到多个表时,需要一个特殊类型的WHERE条件,称为连接条件,连接条件建立了FROM

子句中的两表间的一对一或一对多的联系。

SQL和宏

SELECT子句中可以方便快捷地处理宏,在SELECT语句中,宏替换只能替换一次,在以下查询之前,需要由用户给出表名和相应的表达式

Select*;

FROM(UserTable);

Where公司代码=&

Company_code

宏还可以用在LIKE的模式匹配串:

SelectCompany,CompanyId,SaleName,SaleId;

FromCompany,SalesMan;

WhereCompany.SaleId=SalesMan.SaleId;

ANDDescriptionLIKE%TCL%

以上查询中,用户输入一字符串以便在备注字段(Description)中作匹配查找.查询求出的是包含该字符串的所有公司的住处

SQL和字母大小写

SQL中是区分字母大小写的,为使查询结果有效,要注意区分查询条件中的大小写.即表中的内容是大写的查询时必须将它们转换为大写.若表中内容是大小写混杂的,则以下Select语句将难以返回全部结果:

SelectCompanyId;

FromCompany;

WhereCompanyId=ACME

以上查询只返回名为ACME的记录,对于CompanyId为Acme的记录则查不到,因此安全的方法是用

UPPER()函数将所有字符串都转换为大写.以下是正确的查询:

WhereUPPER(CompanyId)=ACME

SQL和索引

WHERE条件可用Rushmore和索引加速查找.SQL可用任何类型的索引:

结构化的.CDX,外部的.CDX

及外部的.IDX.若要使SQL使用外部索引,必须在执行Select之前将其打开,如以下语句所示:

UseSalesINDEXidxcdxfile

SQL可以以同样的方式作为标准过程代码使用Rushmore.这时选择条件必须是可优化的,即选择表达式必须与建立索引的表达式精确匹配.

用OrderBy子句对结果排序

由于SQL优化器是按它认为的最佳方案去存取数据,因些查询结果中的记录顺序是动态不定的.许多应用程序需要查询结果是按一个或多个字段排好序的.为此可用ORDERBY子句.

ORDERBY子句可以包含Select子句中一样多的字段.例如:

SelectCompany,State,CompanyId;

FromClient;

WhereStateIN(NY,NJ,PA,CA);

OrderByState,Company

在以上查询中,按所在州及公司名称顺序给出结果.缺省情况下,记录是升序排字段,也可用DESCENDING来说明按降序排序.当然也可

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1