VFP程序设计教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
SQL语言非常简洁。 SQL命令动词 命令动词
SQL功能 数据查询 数据定义 数据操纵 数据控制 命令动词 SELECT CREATE、DROP、ALTER INSERT、UPDATE、DELETE GRANT、REVOKE
二级VFP程序设计教程
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗 查询所有的职工工资都大于1210元的仓库信 息 分析:此例也可描述为”没有一个职工的工资少于或 等于1210元的仓库的信息 SELECT * FROM 仓库 WHERE 仓库号 NOT IN ; (SELECT 仓库号 FROM 职工 WHERE 工资<=1210)
四、几个特殊的运算符 1、BETWEEN…AND…——表示在二者之间。 2、LIKE——表示像什么一样,用于字串匹配。 3、!= ——在SQL表示不等于,也可以等号表达式加 NOT的方法构造。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗 检索出工资在1220元到1240远范围内的职工 信息 SELECT * FROM 职工 WHERE 工资 BETWEEN 1220 AND 1240 注意表达方法,等价于: SELECT * FROM 职工 WHERE (工资 >1220) AND (工资<1240)
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗 找出供应商所在地的数目 SELECT COUNT (DISTINCT 地址) FROM 供应商 注意:除非对关系中的元组个数进行计数,一般COUNT 函数应该使用DISTINCT。 例如: SELECT COUNT(*) FROM 供应商 〖例〗求支付的工资总数 SELECT SUM(工资) FROM 职工
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
七、分组与计算查询 利用GROUP BY 进行分组计算查询,GROUP BY 短 语的格式如下: GROUP BY 分组列表 [HAVING FilterCondition] 〖例〗 求每个仓库的职工的平均工资 SELECT 仓库号,AVG(工资) FROM 职工 GROUP BY 仓库号
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
说明数据之间的联系, 说明数据之间的联系,如职工在哪个城市工作
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
一、简单查询 〖例〗 从职工关系中检索所有的工资值。 SELECT 工资 FROM 职工 SELECT DISTINCT 工资 FROM 职工 询结果中的重复值。 〖例〗 检索仓库关系中的所有元组。 SELECT * FROM 仓库 等价于SELECT 仓库号,城市,面积 FROM 仓库 *是通配符,表示所有属性,即表示所有字段。
二级VFP程序设计教程
——去掉查
第五章 关系数据库标准语言SQL
〖例〗 检索工资多于1230元的职工号 SELECT 职工号 FROM 职工 WHERE 工资>1230 〖例〗 检索哪些仓库有工资多于1210元的职工 SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资>1210 〖例〗 给出在仓库”WH1”或”WH2”工作,并且工资 少于1250元的职工 SELECT 职工号 FROM 职工 WHERE 工资<1250 AND (仓库号=“WH1” OR 仓库号=”WH2”)
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗 按职工的工资值升序检索出全部职工信息 SELECT * FROM 职工 ORDER BY 工资 降序: SELECT *FROM 职工 ORDER BY 工资 DESC 〖例〗先按仓库号排序,再按工资排序并输出全部职 工信息 SELECT * FROM 职工 ORDER BY 仓库号,工资
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
十一、 十一、使用量词和谓词的查询 <表达式><比较运算符>[ANY|ALL|SOME](子查询) [NOT]EXISTS (子查询) ANY, ALL, SOME是量词,其中ANY和SOME是同义词, 在进行比较运算时,只要子查询中有一行能使结果为真,则 结果就为真;而ALL 则要求子查询中的所有行都为真,结果 才为真. EXIST是谓词,EXISTS 或 NOT EXISTS是用来检查 子查询中是否有结果返回,即存在的元组或不存在元组.
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗找出和职工E4挣同样工资的所有职工 SELECT 职工号 FROM 职工 WHERE 工资=; (SELECT 工资 FROM 职工 WHERE 职工号=”E4”) 先求出E4的工资。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
将查询结果放在数组中 使用INTO ARRAY ArrayName 将查询结果放在数组 中. SELECT * FROM 职工 INTO ARRAY tmp 将查询结果存放在临时文件中 使用INTO CURSOR CursorName将查询结果放在临 时数据库表文件中.该表为只读dbf文件,当关闭文件时 该文件将自动删除。 SELECT * FROM 职工 INTO CURSOR tmp
第五章 关系数据库标准语言SQL
SELECT语句的格式: 语句的格式: 语句的格式 SELECT 字段列表 FROM 表列表 [WHERE <条件表达式>] [GROUP BY 字段名][HAVING<条件表达式>] [UNION …] [ORDER BY 字段名] 功能: 功能:在一个或多个表中将满足条件的多个字段显 示出来。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
十二、 十二、超联接查询 超联接查询首先保证一个表中满足条件的元组都在结果表中,然 后将满足联接条件的记录与另一个表的记录进行联接,不满足联接条 件的则将应来自另一表的属性值置为空值. “*=”左联接,含义是在结果表中包含第一个表中满足条件的所有 记录;如果有在联接条件上匹配的 记录,则第二个表返回相应值,否则 返回空值. “=*”右联接,含义是在结果表中包含第二个表中满足条件的所有 记录;如果有在联接条件上匹配的记录,则第一个表返回相应值,否则 返回空值.
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
六、简单的计算查询 用于计算检索的函数有: COUNT----计数,即统计记录数。 SUM----求和,即求字段的总和。 AVG----计算平均值,即求指定字段的平均值。 MAX----求最大值,即求字段的最大值。 MIN ----求最小值,即求字段的最小值。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗 找出工作在面积大于400的仓库的职工号以及 这些职工所在的城市 SELECT 职工号,城市 FROM 职工,仓库 ; WHERE (面积>400) AND(职工.仓库号=仓库.仓库号)
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
三、嵌套查询 多个查询可以嵌套执行。 基于多个关系的查询,这类查询所要求的结果出自一 个关系,但相关的条件却涉及多个关系。 〖例〗 哪些城市至少有一个仓库的职工工资为1250 元(工资和城市字段不在一个表中) 分析:此例求查询仓库表中的城市信息,而查询条件 是职工表中的工资字段值。 SELECT城市 FROM 仓库 WHERE 仓库号 IN ; (SELECT 仓库号 FROM 职工 WHERE 工资=1250)
二级VFP程序设计教程
Байду номын сангаас
第五章 关系数据库标准语言SQL
九、别名与自然连接查询 在联接操作中,经常需要使用关系名作为前缀,有时这 样做显得很麻烦.因此,SQL允许在FORM短语中为关系名 定义别名 <关系名> <别名>
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
十、内外层互相关嵌套查询 内层查询的条件需要外层查询提供值,而外层查询的 条件需要内层查询的结果.
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
SELECT:说明要查询的数据,即字段列表。 FROM:说明要查询的数据来自哪些表,可以对单个 表或多个表进行查询。 WHERE:查询条件,即选择元组的条件。 GROUP BY:用于对查询结果进行分组,可以利用 它进行分组汇总。 HAVING:必须跟随GROUP BY 短语使用,它用来 限定分组必须满足的条件。 ORDER BY:用来对查询的结果进行排序。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗 从供应商关系中检索出全部公司的信息,不要 工厂或其他供应商的信息 匹配字符串查询,使用LIKE运算符 SELECT * FROM 供应商 WHERE 供应商名 LIKE “%公司” 匹配符%:表示0个或多个字符 匹配符_ :表示一个字符
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
十四、 十四、Visual Foxpro中SQL SELECT 的几个特殊 中 选项 显示部分结果 〖例〗 只显示前几项记录 使用TOP nExpr [PERCENT] TOP 要与ORDER BY同时使用才有效.
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
八、利用空值查询 〖例〗 找出尚未确定供应商的订购单 SELECT * FROM 订购单 WHERE 供应商号 IS NULL 注意:查询空值时要使用IS NULL,而=NULL是无效 的,因为空值不是一个确定的值,所以不能用“=”这样 的运算符进行比较。 〖例〗 列出已经确定了供应商的订购单信息 SELECT *FROM 订购单 WHERE 供应商号 IS NOT NULL
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
五、排序 使用SQL SELECT 可以将查询结果排序,使用短句 ORDER BY ORDER BY 排序项1[ASC|DESC][,排序项 2[ASC|DESC]…] 即允许按照一列或多列排序,可以按升序排序,也可 以按照降序排序,缺省为升序,若使用降序,应使用 DESC参数。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
〖例〗 检索工资多于1230元的职工号 SELECT 职工号 FROM 职工 WHERE 工资>1230 〖例〗 求北京和上海的仓库职工的工资总和 SELECT SUM(工资) FROM 职工 WHERE 仓库 号 IN (SELECT 仓库号 FFROM 仓库 WHERE 城市=” 北京” OR 城市=”上海”)
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
二、联接查询 联接查询是一种基于多个关系的查询。在多个表中找 出满足条件的记录。 〖例〗 找出工资多于1230元的职工号和他们所在的 城市。 SELECT 职工号,城市 FROM 职工,仓库 ; WHERE (工资>1230) AND(职工.仓库号=仓库.仓库 号) 说明:分号是续行符,有时将一条语句写在几行上, 其结构看得更清楚。
二级VFP程序设计教程
第五章 关系数据库标准语言SQL
十三、 十三、集合的并运算 SQL 支持集合的并(UNION)运算,即可以将两个 SELECT语句的查询结果通过并运算合并成一个查询结 果.为了进行并运算,要求这样的查询结果具有相同的字段 个数,并且对应字段的值要出自同一个值域,即具有相同的 数据类型和取值范围. 例:查询北京和上海的仓库信息 SELECT * FROM 仓库 WHERE 城市=”北京” UNOIN; SELECT * FROM 仓库 WHERE 城市=”上海”
主讲老师: 主讲老师:wj
第五章 关系数据库标准语言SQL
第一节 SQL概述
SQL(Structured Query Language)是结构化的数据库 查询语言,包含数据定义、数据操纵和数据控制。 在有些场合,几乎被认为是一种万能语言,或者是一 种数据库标准语言。一经上市,多种数据库系统都将 SQL语言融入其中。 从VF的角度来谈,VF能实现的功能,SQL都能实现。