资源描述:
《vfp中select语句用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VisualFoxPro中的SQLSelect查询基本的SQLSelect2From子句2Select子句2SQL和用户自定义函数3Select子句中的关键字和其它子句3Select子句中的通配符3字段别名(AS)4用DISTINCT消去重复的记录4用WHERE子句说明选择记录的条件4选择条件4连接条件4SQL和宏4SQL和字母大小写5SQL和索引5用OrderBy子句对结果排序5列函数6SQL的列函数6列函数中的DISTINCT7列函数的嵌套7用GROUPBY求分组小计9GROUPBY和DISTINCT之间的选择9HAVING子句的使用10用TOP子句选择一定数量或一定百
2、分比的记录13查询结果的输出定向14复杂查询15子查询15带子查询的IN谓词和量词15ANY
3、SOME16ALL16EXISTS16自身连接17合并18示例一.快速排名次19示例二.选择重复的记录20外连接21什么是外连接?21用右外连接(RightOuterJoin)选择记录21用左外连接(LeftOuterJoin)选择记录22用完全外连接(FullOuterJoin)选择记录23用内连接加外连接选择记录24用内连接(InnerJoin)选择记录24用嵌套的连接(NestedJoin)选择记录25VisualFoxPro5.0中的新的FROM/JOIN语法26为了更加清
4、晰27用SQLSelect生成视图28注意事项29基本的SQLSelectFrom子句在FROM子句中指定要查询的表,若指定的表未打开,FoxPro将自动打开指定的表,但在查询完成后,FoxPro并不自动关闭它所打开的表,若要在查询完成后关闭表,则必须以手动方式关闭它们。若在执行SQLSELECT时,FROM子句中指定的表已经打开,则FoxPro以USE…AGAIN的方式重新打开此表。Select子句SELECT子句中指定要查询的结果字段,这些结果可以是以下基本元素:通配符*表中的字段名FoxPro函数SELECT中可用的列函数用户自定义函数常数(常用于作为占位符)以上各元
5、素在SELECT子句中以逗号分开,例如:SELECT销售地区,销售部门,业务员;FROM销售表若SELECT子句中的字段名是唯一的,则不必在字段名前加别名修饰,SQL能自动找到这些字段。若字段名是非唯一的(即同一字段名出现在FROM子句中的两个或两个以上表中),FoxPro返回以下错误信息:<字段>
6、<变量>不唯一,必须加以限定要纠正这一错误,用字段所在表的别名修饰该字段。若在SELECT子句中加入了FoxPro函数,则意味着该语句不具备可移植性。SQL和用户自定义函数FoxPro支持在Select子句中使用用户定义函数。但是由于在其它系统中不支持用户定义函数。因此在开发可
7、能移植的系统时不要使用用户自定义函数。Select子句中的关键字和其它子句Select子句中的通配符1、*(星号)只能使用在字段串列参数中。代表来源数据库中所有的字段。如果select是在二个以上的数据库中进行查询的,则要在号码前加上数据库别名。*是SQL中的三个通配符之一(其它两个是?和_,将在以后讨论),*只能出现在Select子句中,通配符前可以用别名修饰,在此情况下表示要查询指定工作区中的全部字段.同时还可以给出其它字段名.如:Select销售表.*,客户表.客户代码,客户表.客户名称;FROM销售表,客户表;WHERE销售表.客户代码=客户表.客户代码2、%(百分
8、号) 只能使用在Where参数中,代表一连串任意字符类似于DOS下的IT*.PRG中的“*”。通常与运算符LIKE搭配使用:SELECT客户名FROM客户表WHERE客户名LIKE“成都%公司”以上查询选择所有公司名以”成都”开始,以”公司”结尾的客户,如:成都东方公司、成都西部发展公司等。3、_(下划线) 也只能使用在where参数中,代表一个任意字符。与DOS下的DIRIT??.PRG中的”?”一样。例如_a%表示第二个字符为a的字串。通常与LIKE搭配使用:SELECT客户名FROM客户表WHERE客户名LIKE“成都_公司”以上查询选择类似于”成都分公司”,”成
9、都总公司”这样的公司名字。 另一种情况是文字数据中正好包含有星号、百分号、下划线(例如:软件部__业务组),此时可使用关键字ESCAPE告诉SQL哪一个字符是常数字符而非通配符。例如: selectcompanyfromcustomerwherecompanylike"%_%"escape""此时escape所指定字符(即)后的那一个字段(此处为下划线_)将被视为常数字符而非通配符。字段别名(AS)FoxPro提供了给Select子句中的字段起别名的方法(这种方法不同于ANSI/ISO标准):即可用AS子