【SQL开源代码栏目提醒】:以下是网学会员为您推荐的SQL开源代码-【精品】pgsql常见问题 - 其它资料,希望本篇文章对您学习有所帮助。
目录 隐藏 1 常见问题 1.1 PostgreSQL 是什么?该怎么发音?Postgres 又是什么? 1.2 谁控制 PostgreSQL? 1.3 PostgreSQL 的版权是什么? 1.4 PostgreSQL 可以运行在哪些操作系统平台上? 1.5 我从哪里能得到 PostgreSQL? 1.6 最新版的 PostgreSQL 是什么? 1.7 我从哪里能得到对 PostgreSQL 的支持? 1.8 我如何提交一个 BUG 报告? 1.9 我如何了解已知的 BUG 或暂缺的功能? 1.10 能够获取的最新文档有哪些? 1.11 我应该怎样学习
SQL ? 1.12 如何提交补丁或是加入开发队伍? 1.13 PostgreSQL 和其他数据库系统比起来如何? 1.14 PostgreSQL 可以处理最近各个国家夏时制的变化吗 2 用户客户端问题 2.1 我们可以用什么语言和 PostgreSQL 打交道? 2.2 有什么工具可以把 PostgreSQL 用于 Web 页面? 2.3 PostgreSQL 拥有图形用户界面吗? 3 系统管理问题 3.1 我怎样能把 PostgreSQL 装在 /usr/local/pgsql 以外的地方? 3.2 我如何控制来自其他电脑的连接? 3.3 我怎样调整数据库引擎以获得更好的性能? 3.4 PostgreSQL 里可以获得什么样的调试特性? 3.5 为什么在试图连接时收到“Sorry too many clients(已有太多用户连接)”消息? 3.6 PostgreSQL 的升级过程有哪些内容 ? 3.7 使用 PostgreSQL我需要使用什么计算机硬件 ? 4 操作问题 4.1 如何只选择一个查询结果的头几行?或是随机的一行? 4.2 如何查看表、索引、数据库以及用户的定义?如何查看 psql 里用到的查询指令并显示它们? 4.3 如何更改一个字段的数据类型? 4.4 单条记录,单个表,单个数据库的最大限制是多少? 4.5 存储一个典型的文本文件里的数据需要多少磁盘空间? 4.6 为什么我的查询很慢?为什么这些查询没有利用索引? 4.7 我如何才能看到查询优化器是怎样评估处理我的查询? 4.8 我怎样做正则表达式搜索和大小写无关的正则表达式查找?怎样利用索引进行大小写无 关查找? 4.9 在一个查询里,我怎样检测一个字段是否为 NULL ?我如何才能准确排序而不论某字段 是否含 NULL 值? 4.10 各种字符类型之间有什么不同? 4.11 我怎样创建一个序列号或是自动递增的字段? 4.12 我如何获得一个插入的序列号的值? 4.13 同时使用 currval 会导致和其他用户的冲突情况吗? 4.14 为什么不在事务异常中止后重用序列号呢?为什么在序列号字段的取值中存在间断 呢? 4.15 什么是 OID ?什么是 CTID ? 4.16 为什么我收到错误信息“ERROR: Memory exhausted in AllocSetAlloc”? 4.17 我如何才能知道所运行的 PostgreSQL 的版本? 4.18 我如何创建一个缺省值是当前时间的字段? 4.19 我怎样进行 outer join (外连接)? 4.20 如何使用涉及多个数据库的查询? 4.21 如何让函数返回多行或多列数据? 4.22 为什么我在使用 PL/PgSQL 函数存取临时表时会收到错误信息“relation with OID does not exist”? 4.23 目前有哪些数据复制方案可用? 4.24 为何查询结果显示的表名或列名与我的查询语句中的不同?为何大写状态不能保留?编辑 常见问题编辑 PostgreSQL 是什么?该怎么发音?Postgres 又是什么?PostgreSQL 读作 Post-Gres-Q-L,想听一下其发音的人员可从这里下载声音文件: MP3 文件 。
PostgreSQL 是面向目标的关系数据库系统,它具有传统商业数据库系统的所有功能,同时又含有将在下一代 DBMS 系统的使用的增强特性。
PostgreSQL 是自由免费的,并且所有源
代码都可以获得。
PostgreSQL 的开发队伍主要为志愿者,他们遍布世界各地并通过互联网进行联系,这是一个社区开发项目,它不被任何公司控制。
如想加入开发队伍,请参见开发人员常见问题(FAQ)http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html编辑 谁控制 PostgreSQL?如果你在寻找 PostgreSQL 的掌门人,或是什么中央委员会,或是什么所属公司,你只能放弃了---因为一个也不存在,但我们的确有一个 核心委员会和 CVS 管理组,但这些工作组的设立主要是为了进行管理工作而不是对 PostgreSQL 进行独占式控制,PostgreSQL 项目是由任何人均 可参加的开发人员社区和所有用户控制的,你所需要做的就是订阅邮件列表,参与讨论即可(要参与 PostgreSQL 的开发,详见开发人员常见问题 Developers FAQ 获取信息)。
编辑 PostgreSQL 的版权是什么?PostgreSQL 的发布遵从经典的 BSD 版权。
它允许用户不限目的地使用PostgreSQL,甚至你可以销售 PostgreSQL 而不含源
代码也可以,唯一的限制就是你不能因软件自身问题而向我们追诉法律责任,另外就是要求所有的软件拷贝中须包括以下版权声明。
下面就是我们所使用的 BSD 版权声明内容:PostgreSQL 数据库管理系统部分版权(c)1996-2005,PostgreSQL 全球开发小组,部分版权(c)1994-1996加州大学董事(Portions copyright c 1996-2005PostgreSQL Global Development GroupPortions Copyright c 1994-6 Regents of the University of California)允许为任何目的使用,拷贝,修改和分发这个软件和它的文档而不收取任何费用, 并且无须签署因此而产生的证明,前提是上面的版权声明和本段以及下面两段文字出现在所有拷贝中。
(Permission to use copy modify and distribute this software and itsdocumentation for any purpose without fee and without a written agreement ishereby granted provided that the above copyright notice and this paragraph andthe following two paragraphs appear in all copies.)在任何情况下,加州大学都不承担因使用此软件及其文档而导致的对任何当事人的直接的, 间接的,特殊的,附加的或者相伴而生的损坏,包括利益损失的责任,即使加州大学已经建议了这些损失的可能性时也是如此。
(IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TOANY PARTY FOR DIRECT INDIRECT SPECIAL INCIDENTAL ORCONSEQUENTIAL DAMAGES INCLUDING LOST PROFITS ARISING OUT OFTHE USE OF THIS SOFTWARE AND ITS DOCUMENTATION EVEN IF THEUNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OFSUCH DAMAGE.)加州大学明确放弃任何保证,包括但不局限于某一特定用途的商业和利益的隐含保证。
这里提供的这份软件是基于“当作是”的基础的,因而加州大学没有责任提供维护,支持,更新,增强或者修改的服务。
(THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANYWARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN quotAS ISquotBASIS AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TOPROVIDE MAINTENANCE SUPPORT UPDATES ENHANCEMENTS ORMODIFICATIONS.)编辑 PostgreSQL 可以运行在哪些操作系统平台上?一般说来,任何现在对 UNIX 兼容的操作系统之上都能运行 PostgreSQL 。
在安装指南里列出了发布时经过明确测试的平台。
PostgreSQl 也可以直接运行在基于微软 Windows-NT 的操作系统,如 Win2000SP4,WinXP 和 Win2003,已制作完成的安装包可从http://pgfoundry.org/projects/pginstaller 下载,基于 MSDOS 的 Windows 操作系统(Win95,Win98,WinMe)需要通过 Cygwin 模拟环境运行 PostgreSQL。
同时也有一个为 Novell Netware 6 开发的版本可从 http://forge.novell.com 获取,为 OS/2eComStation开发的版本可从 这里下载。
编辑 我从哪里能得到 PostgreSQL?通过浏览器可从 http://www.postgresql.org/ftp/ 下载,也可通过 FTP,从ftp://ftp.PostgreSQL.org/pub/ 站点下载。
编辑 最新版的 PostgreSQL 是什么?PostgreSQL 最新的版本是版本 8.4 。
我们计划每年发布一个主要升级版本,每几个月发布一个小版本。
编辑 我从哪里能得到对 PostgreSQL 的支持?PostgreSQL 社区通过邮件列表为其大多数用户提供帮助,订阅邮件列表的主站点是 http://www.postgresql.org/community/lists/,一般情况下,先加入 General 或Bug 邮件列表是一个较好的开始。
主要的 IRC 频道是在 FreeNodeirc.freenode.net的postgresql,为了连上此频道,可以使用 UNIX 程序 irc,其指令格式: irc -c postgresql quotUSERquotirc.freenode.net ,或者使用其他 IRC 客户端程序。
在此网络中还存在一个PostgreSQL 的西班牙频道postgersql-es和法语频道 postgresql-fr。
同样地,在 EFNET 上也有一个 PostgreSQL 的交流频道。
可提供商业支持的公司列表可在http://www.postgresql.org/support/professional_support 浏览。
编辑 我如何提交一个 BUG 报告?可访问 http://www.postgresql.org/support/submitbug ,填写 Bug 上报表格即可,同样也可访问 ftp 站点 ftp://ftp.PostgreSQL.org/pub/ 检查有无更新的 PostgreSQL版本或补丁。
通过使用 Bug 提交表格或是发往 PostgreSQL 邮件列表的 Bug 通常会有以下之一回复: 所提交内容不是一个 Bug 及其不是 Bug 的原因。
所提交内容是一个已知的 Bug 并且已经加入 TODO 待处理任务列表。
所提交的 Bug 已在当前版本中被修正。
所提交的 Bug 已修正但尚未将补丁加入现在的发布软件包。
请求提交者提供更详细的信息: 操作系统 PostgreSQL 版本 可重现 Bug 的测试案例 调试信息 调试跟踪输出 所提交内容是一个新 Bug,将执行以下工作: 创建一个新补丁并将其加入下一个主要版本或是小的改进版本中。
此 Bug 暂时不能修正,将被加至 TODO 待处理任务列表。
编辑 我如何了解已知的 BUG 或暂缺的功能?PostgreSQL 支持一个扩展的
SQL:2003 的子集。
参阅我们的 TODO 列表,了解已知 Bug 列表、暂缺的功能和将来的开发计划。
要求增加新功能的申请通常会收到以下之一的回复: 该功能已加入 TODO 待处理任务列表。
该功能不是必须的,因为: 它是现有的且符合
SQL 标准的某功能的重复。
该功能性会大大增加
代码的复杂程序,而带来的好处是微不足道的。
该功能是不安全或是不可靠的。
该功能将被加入 TODO 待处理任务列表。
PostgreSQL 不使用 Bug 跟踪系统,因为我们发现在邮件列表中直接回复以及保证TODO 任务列表总是处于最新状态的方式工作效率会更高一些。
事实上,Bug 不会在我们的软件中存在很长时间,对影响很多用户的 Bug 也总是很快会被修正。
唯一能找到所有改进、提高和修正的地方是 CVS 的日志信息,即使是在软件新版本的发布信息中也不会列出每一处的软件更新。
编辑 能够获取的最新文档有哪些?PostgreSQL 包含大量的文档,主要有详细的参考手册,手册页和一些的测试例子。
参见 /doc 目录(译注:应为 PGHOME/doc)。
你还可以在线浏览 PostgreSQL的手册,其网址是:http://www.postgresql.org/docs 。
有两本关于 PostgreSQL 的书在线提供,在http://www.postgresql.org/docs/books/awbook.html 和http://www.commandprompt.com/ppbook/ 。
也有大量的 PostgreSQL 书籍可供购买,其中最为流行的一本是由 Korry Douglas 编写的。
在http://www.postgresql.org/docs/books/ 上有大量有关 PostgreSQL 书籍的简介。
在http://www.postgresql.org/docs/techdocs 上收集了有关 PostgreSQL 的大量技术文章。
客户端的命令行程序 psql 有一些以 d 开头的命令,可显示关于类型,操作符,函数,聚合等信息,使用 可以显示所有可用的命令。
我们的 web 站点包含更多的文档。
编辑 我应该怎样学习
SQL ?首先考虑上述提到的与 PostgreSQL 相关的书籍。
我们的许多用户喜欢 ThePractical
SQL Handbook, Bowman Judith S. 编写,Addison-Wesley 公司出版,其他的则喜欢 The Complete Reference
SQL Groff 编写,McGraw-Hill 公司出版。
在下列网址上也有很好的教程,他们是 http://www.intermedia.net/support/
sql/sqltut.shtm http://sqlcourse.com. http://www.w3schools.com/
sql/default.asp http://mysite.verizon.net/Graeme_Birchall/id1.html编辑 如何提交补丁或是加入开发队伍?详见 开发人员常见问题 Developers FAQ 。
编辑 PostgreSQL 和其他数据库系统比起来如何?评价软件有好几种方法:功能,性能,可靠性,支持和价格。
功能 PostgreSQL 拥有大型商用数据库最多的功能,例如:事务,子查询, 触发器,视图,外键参考完整性和复杂的锁定等。
我们还有一些它们没有 的特性,如用户定义类型,继承,规则和多版本并行控制以减少锁的争用等。
性能 PostgreSQL 和其他商用或
开源的数据库具有类似的性能。
对某些数 据处理快一些,对其他一些处理慢一些。
与其他数据库相比,我们的性能 优劣通常在 /- 10之间。
可靠性 我们都知道数据库必须是可靠的,否则它就一点用都没有。
我们努力 做到发布经过认真测试的,缺陷最少的稳定
代码。
每个版本至少有一个月的 beta 测试时间,并且我们的发布历史显示我们可以提供稳定的,牢固的,可 用于生产使用的版本。
我们相信在这方面我们与其他的数据库软件是相当 的。
支持 我们的邮件列表提供一个非常大的开发人员和用户的组以帮助解决 所碰到的任何问题。
我们不能保证总是能解决问题,相比之下,商用数据库 软件也并不是总能够提供解决方法。
直接与开发人员、用户群、手册和源 程序接触使 PostgreSQL 的支持比其他数据库还要好。
还有一些商业性的全 面技术支持,可以给提供给那些需要的人。
(参阅 1.7 小节) 价格 我们对任何用途都免费,包括商用和非商用目的。
你可以不加限制 地向你的产品里加入我们的
代码,除了那些我们在上面的版权声明里声明的 BSD 版权之外的内容。
编辑 PostgreSQL 可以处理最近各个国家夏时制的变化吗PostgreSQL 8.0 之前的版本是使用操作系统中的时区数据库来处理夏时制的信息,自 8.0 版及以后的版本 PostgreSQL 会自身含有最新的时区信息。
美国夏时制的更 如改包括在 PostgreSQL 8.0.4 版以后版本及所有以后发布的大的升级版本, 8.1 版,加拿大和澳大利亚夏时制的更新包括在 8.0.10 版及以后版本中。
编辑 用户客户端问题编辑 我们可以用什么语言和 PostgreSQL 打交道?PostgreSQL缺省情况只安装有 C 和内嵌式 C 的接口,其他的接口都是独立的项目,能够分别下载,这些接口项目独立的好处 是他们可以有各自的发布计划和各自独立的开发组。
一些编程语言如 PHP 都有访问 PostgreSQL 的接口,Perl、TCL、Python 以及很多其他语言的接口在网站上的 Drivers/Interfaces 小节可找到, 并且通过 Internet 很容易搜索到。
编辑 有什么工具可以把 PostgreSQL 用于 Web 页面?一个介绍以数据库为后台的挺不错的站点是:http://www.webreview.com。
对于 Web 集成,PHP 是一个极好的接口。
它在 http://www.php.net/。
对于复杂的任务,很多人采用 Perl 接口和 使用 CGI.pm 的 DBD::Pg 或mod_perl 。
编辑 PostgreSQL 拥有图形用户界面吗?商业用户或是
开源开发人员能找到很多的有关 PostgreSQL 的 GUI 图形工具软件,在 PostgreSQL 社区文档 有一个详细的列表。
编辑 系统管理问题编辑 我怎样能把 PostgreSQL 装在 /usr/local/pgsql 以外的地方?在运行 configure 时加上 --prefix 选项。
编辑 我如何控制来自其他电脑的连接?缺省情况下,PostgreSQL 只允许来自本机且通过 unix 域套接字或 TCP/IP 方式的连接。
你只有在修改了配置文件 postgresql.conf 中的 listen_addresses,且也在配置文件PGDATA/pg_hba.conf 中打开了 基于远程电脑( host-based )的身份认证,并重新启动 PostgreSQL,否则其他电脑是不能与你的 PostgreSQL 服务器进行连接的。
编辑 我怎样调整数据库引擎以获得更好的性能?有三个主要方面可以提升 PostgreSQL 的潜能。
查询方式的变化,这主要涉及修改查询方式以获取更好的性能: 创建索引,包括表达式和部分索引; 使用 COPY 语句代替多个 Insert 语句; 将多个
SQL 语句组成一个事务以减少提交事务的开销; 从一个索引中提取多条记录时使用 CLUSTER; 从一个查询结果中取出部分记录时使用 LIMIT; 使用预编译式查询(Prepared Query; 使用 ANALYZE 以保持精确的优化统计; 定期使用 VACUUM 或 pg_autovacuum 进行大量数据更改时先删除索引(然后重建索引) 服务器的配置 配置文件 postgres.conf 中的很多设置都会影响性能,所有参数的列 表可见:管理员指南/数据库服务器运行环境/数据库服务器运行配置, 有关 参数的解释可见: http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.htm l 和 http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html。
硬件的选择 计算机硬件对性能的影响可浏览 http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html 和 http://www.powerpostgresql.com/PerfList/。
编辑 PostgreSQL 里可以获得什么样的调试特性?PostgreSQL 有很多类似 log_ 的服务器配置变量可用于查询的打印和进程统计,而这些工作对调试和性能测试很有帮助。
编辑 (已有 为什么在试图连接时收到“Sorry too many clients太多用户连接)”消息?这表示你已达到缺省 100 个并发后台进程数的限制,你需要通过修改postgresql.conf 文件中的 max_connections 值来 增加 postmaster 的后台并发处理数,修改后需重新启动 postmaster。
编辑 PostgreSQL 的升级过程有哪些内容 ?浏览 http://www.postgresql.org/support/versioning 页面可找到关于升级的详细讨论,另外, http://www.postgresql.org/docs/current/static/install-upgrading.html 处也有详细的操作步骤。
编辑 使用 PostgreSQL我需要使用什么计算机硬件 ?由于计算机硬件大多数是兼容的,人们总是倾向于相信所有计算机硬件质量也是相同的。
事实上不是, ECC RAM(带奇偶校验的内存),SCSI (硬盘)和优质的主板比一些便宜货要更加可靠且具有更好的性能。
PostgreSQL 几乎可以运行在任何硬件上, 但如果可靠性和性能对你的系统很重要,你就需要全面的研究一下你的硬件配置了。
在我们的邮件列表上也有关于 硬件配置和性价比的讨论。
编辑 操作问题编辑 如何只选择一个查询结果的头几行?或是随机的一行?如果你只是要提取几行数据,并且你在执行查询中知道确切的行数,你可以使用LIMIT 功能。
如果有一个索引与 ORDER BY 中的条件匹配,PostgreSQL 可能就只处理要求的头几条记录, (否则将对整个查询进行处理直到生成需要的行)。
如果在执行查询功能时不知道确切的记录数, 可使用游标cursor和 FETCH 功能。
可使用以下方法提取一行随机记录的: SELECT cols FROM tab ORDER BY random LIMIT 1 编辑 如何查看表、索引、数据库以及用户的定义?如何查看psql 里用到的查询指令并显示它们?在 psql 中使用 dt 命令来显示.
上一篇:
更新数据源
下一篇:
她要是喜欢我