资源描述:
《Visual FoxPro程序设计教程 熊小兵 桂学勤 焦翠珍 chp5》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VisualFoxPro程序设计VisualFoxProProgramming第5章关系数据库标准语言SQLVisualFoxProProgramming第5章关系数据库标准语言SQL5.1SQL概述5.2数据查询5.3操作功能5.4定义功能VisualFoxProProgrammingSQL具有如下主要特点:①一体化②高度非过程化③语言简洁,易学易用:SQL核心功能只需要使用9个命令动词,如表5-1所示。④两种使用方式,统一的语法结构SQL功能命令动词数据查询SELECT数据操纵INSERT、UPDATE、DELETE数据定义CREATE、ALTER、DROP数据控制GRA
2、NT、REVOKE(VisualFoxPro中的SQL无此功能)表5-1SQL命令动词5.1SQL概述VisualFoxProProgrammingSELECT语句语法格式:SELECT[ALL
3、DISTINCT][TOP<数值型表达式>[PERCENT]][表名.]<字段名1>[[AS]<别名1>][,[表名.]<字段名2>[[AS]<别名2>],…]FROM<表名1>[[AS]<本地别名>][INNER
4、LEFT
5、RIGHT
6、FULL]JOIN<表名2>[[AS]<本地别名>]ON<联接条件>,…][INTO<目标>
7、TOFILE<文件名>]
8、[TOPRINTER[PRO
9、MPT]]][WHERE<连接条件1>[AND<连接条件2>,…][AND
10、OR<筛选条件1>[AND
11、OR<筛选条件2>,…]]][GROUPBY<分组列名1>[,<分组列名2>]][HAVING<过滤条件>][UNION[ALL]SELECT命令][ORDERBY<排序项1>[ASC
12、DESC][,<排序项2>[ASC
13、DESC],…]]5.2数据查询VisualFoxProProgrammingSELECT说明要查询的数据(字段或表达式)。FROM说明要查询的数据来自哪个(些)表,可以对单表或多表进行查询。ON如果对多表进行超联接查询,用于多表间联接的条件。INTO
14、T
15、O说明查询结果的去向。WHERE说明查询筛选条件,即选择记录的条件。GROUPBY用于对查询结果进行分组,可以利用它进行分组汇总。HAVING必须跟随GROUPBY之后使用,用于限定分组必须满足的条件。ORDERBY用于对查询的结果进行排序。5.2数据查询SELECT的命令中主要短语的含义如下:VisualFoxProProgramming5.2数据查询5.2.1基本查询5.2.2条件查询5.2.3排序查询5.2.4使用集函数5.2.5对查询结果分组5.2.6多表查询5.2.7超联接查询5.2.8嵌套查询5.2.9别名与自联接查询5.2.10使用量词和谓词的查询5.2.11集
16、合的并运算5.2.12VisualFoxPro中SQLSELECT的几个特殊选项VisualFoxProProgramming1.查询全部字段两种方法:①在SELECT短语中列出所有字段名;②如果字段的显示顺序与其在源表中的顺序相同,也可以在SELECT短语中用*表示。例5-1查询全体学生的详细信息。SELECT*;FROM学生查询结果如图5-1所示。图5-1例5-1查询结果5.2.1基本查询SELECT学号,姓名,性别,出生日期,专业,个人简历,照片;FROM学生VisualFoxProProgramming2.选择指定字段在SELECT子句指定要查询的字段。例5-2查询全
17、体学生的学号、姓名和专业。SELECT学号,姓名,专业;FROM学生查询结果如图5-2所示。图5-2例5-2查询结果图5.2.1基本查询VisualFoxProProgramming3.查询经过计算的值SELECT子句不仅可以是表中的字段,也可以是表达式。例5-3查询全体学生的学号,姓名和年龄。SELECT学号,姓名,YEAR(DATE())-YEAR(出生日期)年龄;FROM学生&&通过指定别名“年龄”来改变查询结果的列标题。查询结果如图5-3所示。图5-3例5-3查询结果5.2.1基本查询VisualFoxProProgramming图5-4例5-4查询结果图4.消除取值
18、重复的行如果想去掉结果表中的重复行,必须指定DISTINCT短语。例5-4查询学生表中的所有专业。SELECTDISTINCT专业;FROM学生查询结果如图5-4所示。如果没有指定DISTINCT短语,则缺省为ALL,即保留结果中取值重复的行。5.2.1基本查询VisualFoxProProgramming1.比较大小比较运算符:=、>、>=、<、<=、!=或<>。例5-5查询1987后出生的学生的学号、姓名及其出生日期。SELECT学号,姓名,出生日期;FROM学生;WHERE出生日期>{^1987-