快速业务通道

SQL大全[2]

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-22
h=4)
EXPLAIN   
最后,同一个拥有支持查询 equijoin 条件的索引的表, EXPLAIN对使用一个聚集函数的查询将显示下面内容:
EXPLAIN SELECT sum(i) FROM foo WHERE i = 4;
    NOTICE: QUERY PLAN:

Aggregate (cost=0.42..0.42 rows=1 width=4)
-> Index Scan using fi on foo (cost=0.00..0.42 rows=1 width=4)
   
注意这里显示的数字, 甚至还有选择的查询策略都有可能在各个 PostgreSQL版本之间不同--因为规划器在不断改进。
兼容性 SQL92  

在 中没有EXPLAIN 语句.

--------------------------------------------------------------------------------

FETCH
Name
FETCH  --  用游标从表中抓取行
Synopsis
FETCH [ direction ] [ count ] { IN | FROM } cursor
FETCH [ FORWARD | BACKWARD | RELATIVE ] [ # | ALL | NEXT | PRIOR ] { IN | FROM } cursor

输入
direction
selector定义抓取的方向.它可以是下述之一:
FORWARD
抓取后面的行. selector 省略时这是缺省值.
BACKWARD
抓取前面行.
RELATIVE
为 兼容设置的多余键字.
count
count决定抓取几行.可以是下列之一:
#
一个表明抓取几行的整数. 注意负整数等效于改变 FORWARD 和 BACKWARD 属性.
ALL
检索所有剩余的行.
NEXT
等效于声明 count 为 1.
PRIOR
等效于声明 count 为 -1.
cursor
一个打开的游标的名称.
输出
FETCH返回由声明游标定义的查询结果. 如果查询失败,将返回下面的信息:
NOTICE: PerformPortalFetch: portal "cursor" not found
如果 cursor 在前面没有定义,返回此信息.游标必须在一个事务块中定义.
NOTICE: FETCH/ABSOLUTE not supported, using RELATIVE
PostgreSQL 不支持游标的绝对定位.
ERROR: FETCH/RELATIVE at current position is not supported
允许我们用下面语句在"当前位置"不停地检索游标
FETCH RELATIVE 0 FROM cursor.

PostgreSQL 目前不支持这种用法;实际上,零被保留用于检索所有行, 等效于声明 ALL 关键字.如果使用 RELATIVE 关键字, PostgreSQL 假设用户试图使用 的特性,因而返回此错误.
描述
FETCH 允许用户使用游标检索行.所要检索的行数用 # 声明.如果游标中剩下的行小于 #, 那么只有那些可用的抓过来.用关键字 ALL 代替数字将导致游标中所有剩余行被抓过来. 记录可以 FORWARD (向前)抓,也可以 BACKWARD (向后)抓.缺省的方向是 FORWARD (向前).
注意: 可以用负数作为行记数, 符号等效于颠倒抓取方向关键字(FORWARD 和 BACKWARD).例如, FORWARD -1 等效于 BACKWARD 1.
注意
注意 FORWARD 和 BACKWARD 关键字是 PostgreSQL 扩展. 语法也支持,在此命令的第二种形式中声明. 详细的兼容性 SQL92 信息见下面.
在游标中更新数据还不被 PostgreSQL, 支持,因为将游标更新影射回基本表是不太可能的,这一点对 VIEW 更新也一样.因而用户必须显式的使用 UPDATE 命令来更新数据.
游标只能用于事务内部,因为它们存储的数据跨越了多个用户的查询.
使用 MOVE语句改变游标位置.使用 DECLARE语句定义一个游标.使用 BEGIN, COMMIT, 和 ROLLBACK语句获取更多关于事务的信息.
用法
下面的例子用一个游标跨过一个表。
-- 建立一个游标:

BEGIN WORK;
DECLARE liahona CURSOR FOR SELECT * FROM films;

-- 抓取头 5 行到游标 liahona 里:
FETCH FORWARD 5 IN liahona;

code |          title          

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号