vfp中select语句用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual FoxPro中的SQL Select查询
基本的SQL Select (2)
From 子句 (2)
Select 子句 (2)
SQL 与用户自定义函数 (2)
Select 子句中的关键字与其它子句 (3)
Select 子句中的通配符 (3)
字段别名(AS) (3)
用DISTINCT 消去重复的记录 (4)
用WHERE 子句说明选择记录的条件 (4)
选择条件 (4)
连接条件 (4)
SQL 与宏 (4)
SQL 与字母大小写 (5)
SQL 与索引 (5)
用Order By 子句对结果排序 (5)
列函数 (6)
SQL 的列函数 (6)
列函数中的DISTINCT (6)
列函数的嵌套 (7)
用GROUP BY 求分组小计 (9)
GROUP BY 与DISTINCT 之间的选择 (9)
HAVING 子句的使用 (10)
用TOP 子句选择一定数量或一定百分比的记录 (13)
查询结果的输出定向 (14)
复杂查询 (15)
子查询 (15)
带子查询的IN 谓词与量词 (15)
ANY|SOME (16)
ALL (16)
EXISTS (17)
自身连接 (17)
合并 (18)
示例一、快速排名次 (19)
示例二、选择重复的记录 (20)
外连接 (21)
什么就是外连接? (21)
用右外连接(Right Outer Join)选择记录 (21)
用左外连接(Left Outer Join)选择记录 (22)
用完全外连接(Full Outer Join)选择记录 (23)
用内连接加外连接选择记录 (24)
用内连接(Inner Join)选择记录 (25)
用嵌套的连接(Nested Join)选择记录 (25)
Visual FoxPro 5、0 中的新的FROM/JOIN 语法 (26)
为了更加清晰 (27)
用SQL Select 生成视图 (29)
注意事项 (30)
基本的SQL Select
From 子句
在FROM 子句中指定要查询的表,若指定的表未打开,FoxPro 将自动打开指定的表,但在查询完成后,FoxPro并不自动关闭它所打开的表,若要在查询完成后关闭表,则必须以手动方式关闭它们。若在执行SQL SELECT 时,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 下的DIR IT??、PRG中的”?”一样。例如_a% 表示第二个字符为a 的字串。通常与LIKE 搭配使用:
SELECT 客户名FROM客户表WHERE客户名LIKE “成都_公司”
以上查询选择类似于”成都分公司”, ”成都总公司”这样的公司名字。
另一种情况就是文字数据中正好包含有星号、百分号、下划线(例如:软件部__业务组),此时可使用关键字ESCAPE 告诉SQL 哪一个字符就是常数字符而非通配符。例如:
select company from customer
where company like"%\_%" escape "\"
此时escape 所指定字符(即\)后的那一个字段(此处为下划线_)将被视为常数字符而非通配符。
字段别名(AS)
FoxPro 提供了给Select 子句中的字段起别名的方法(这种方法不同于ANSI/ISO 标准):即可用AS 子句给出Select 子句中字段的别名,在多当需要直接浏览查询结果或查询结果中含有计算列时,该方法很有用处、例如:
SELECT “物资部” AS 部门,SUM(工资) AS 工资汇总;