visualfoxpro程序设计第四章查询与视图操作教学课件(编辑修改稿)内容摘要:

操作 【 例 】 求所有职工的工资都多于 3210元的仓库的平均面积 sele avg(面积 ) as 平均 from 仓库 where 仓库号 not in。 (sele 仓库号 from 职工 where 工资 =3210) 注意 : 以上结果包含了尚没有职工的 CK4仓库 ,如果要排除没有职工的仓库 ,以上语句应改为 : sele avg(面积 ) as 平均 from 仓库 where 仓库号 not in。 (sele 仓库号 from 职工 where 工资 =3210) and。 仓库号 in (sele 仓库号 from 职工 ) 5. 简单的计算查询 第 4章 查询与视图操作 【 例 】 求在 CK2仓库工作的职工的最高工资值 SELECT MAX(工资 ) as 最高工资 FROM 职工 WHERE 仓库号 =CK2 • 求最低工资值 : SELECT MIN(工资 ) as 最低工资 FROM 职工 WHERE 仓库号 =CK2 5. 简单的计算查询 第 4章 查询与视图操作 6. 分组与计算查询 • 利用 GROUP BY 进行分组计算查询 ,GROUP BY 短语的格式如下 : • GROUP BY GroupColumn [,GroupColumn…][HAVING FilterCondition] 【 例 】 求每个仓库的 职工的平均工资 SELECT 仓库号 ,AVG(工资 ) as 平均工资 FROM 职工 GROUP BY 仓库号 第 4章 查询与视图操作 【 例 】 求至少有两个职工的每个仓库的平均工资 SELECT 仓库号 ,COUNT(*),AVG(工资 ) FROM 职工。 GROUP BY 仓库号 HAVING COUNT(*)=2 注意: HAVING子句总是跟在 GROUP BY 子句之后 ,单独使用。 • HAVING子句和 WHERE子句不矛盾 ,在查询中是先用 WHERE子句限定元组 ,然后进行分组 ,最后再用 HAVING子句限定分组 . 6. 分组与计算查询 第 4章 查询与视图操作 7. 利用空值查询 【 例 】 找出尚未确定供应商的订购单。 SELECT * FROM 订购单 WHERE 供应商号 IS NULL 注意: 查询空值时要使用 IS NULL, 而 =NULL是无效的 , 因为空值不是一个确定的值 , 所以不能用“ =”这样的运算符进行比较。 【 例 】 列出已经确定了供应商的订购单信息。 SELECT *FROM 订购单 WHERE 供应商号 IS NOT NULL 第 4章 查询与视图操作 8. 别名与自然连接查询 在联接操作中 ,经常需要使用关系名作为前缀 ,有时这样做显得很麻烦 .因此 ,SQL允许在 FROM短语中为关系名定义别名 关系名 别名 第 4章 查询与视图操作 8. 别名与自然连接查询 【 例 】 列出所有职工的订购单信息 ( 包括职工号 ,订购单号 , 订购日期 , 总金额 ) 及工资。 sele ,订购单号 ,订购日期 ,总金额 ,工资 from 职工 a ,订购单 b where = 第 4章 查询与视图操作 10. 几个特殊的运算符 • BETWEEN… AND… • LIKE • != NOT 【 例 】 检索出工资在 3220元到 3240元范围内的职工信息。 SELECT * FROM 职工 WHERE 工资 BETWEEN 3220 AND 3240 等价于: SELECT * FROM 职工 WHERE (工资 3220) AND (工资 3240) ( 1)有特殊运算符的查询 第 4章 查询与视图操作 【 例 】 从供应商关系中检索出全部电子仪器厂的信息 SELECT * FROM 供应商 WHERE 供应商名。 LIKE %电子仪器厂 “ ( 1)有特殊运算符的查询 ☺通配符: %:表示 0个或多个字符 _:表示一个字符 第 4章 查询与视图操作 【 例 】 找出不在北京的全部供应商信息 SELECT * FROM 供应商 WHERE 地址 !=北京 SELECT * FROM 供应商 WHERE NOT(地址 =北京 ) 找出工资不在 3220元和 3240元之间的全部职工信息 SELECT * FROM 职工 WHERE 工资 NOT BETWEEN 3220 AND 3240 ( 1)有特殊运算符的查询 第 4章 查询与视图操作 2. 使用量词和谓词的查询 【 格式 】 表达式 比较运算符 [ANY|ALL|SOME](子查询 ) [NOT]EXISTS (子查询 ) 【 说明 】 • ANY, ALL, SOME是量词 ,其中 ANY和 SOME是同义词 ,在进行比较运算时 ,只要子查询中有一行能使结果为真 ,则结果就为真。 而 ALL 则要求子查询中的所有行都为真 ,结果才为真 . • EXISTS 或 NOT EXISTS是用来检查子查询中是否有结果返回 ,即存在的元组或不存在元组 . 第 4章 查询与视图操作 【 例 】 检索那些仓库中还没有职工的仓库的信息 SELECT * FROM 仓库 WHERE NOT EXISTS。 (SELECT * FROM 职工 WHERE 仓库号 =仓库 .仓库号 ) • 注意 :这里的内层查询引用了外层查询的表 ,只有这样使用谓词 EXISTS或 NOT EXISTS才有意义 .所以这类查询都是内外层互相关嵌套查询 . • 以上查询等价于 : SELECT * FROM 仓库 WHERE 仓库号 NOT IN。 (SELECT 仓库号 FROM 职工 ) 2. 使用量词和谓词的查询 第 4章 查询与视图操作 【 例 】 检索那些仓库中至少已经有一个职工的仓库的信息 . SELECT *FROM 仓库 WHERE EXISTS。 (SELECT * FROM 职工 WHERE 仓库号 =仓库 .仓库号 ) • 以上查询等价于 : SELECT * FROM 仓库 WHERE 仓库号 IN。 (SELECT 仓库号 FROM 职工 ) 2. 使用量词和谓词的查询。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。