资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1Postgresql数据库常用命令psqlNamepsql - PostgreSQL 交互终端 Synopsispsql option. dbname username描述psql 是一个以终端为基础的 PostgreSQL 前端。它允许你交互地键入查询,把它们发出给 PostgreSQL, 然后看看查询的结果。另外,输入可以来自一个文件。还有, 它提供了一些元命令和多种类 shell 地特性来实现书写脚本以及对大量任务的自动化。选项-a-echo-all在读取行时向标准输出打印所有内容。 这个选项在脚本处理时比交互模式时更有用。这个选项等效于设置变量 ECHO 为 all。-A-no-align切换为非对齐输出模式。 (缺省输出模式是对齐的。 )-c command-command command声明 psql 将执行一条查询字串, command,然后退出。这一点在 shell 脚本里很有用。command 必须是一条完全可以被服务器分析的查询字串(也就是说,它不包含 psql特有的特性) , 或者是一个反斜杠命令。这样你就不会混合 SQL 和 psql 元命令。要想混合使用,你可以把字串定向到 psql里,象这样: echo /x / select * from foo; | psql。如果命令字串包含多个 SQL 命令,那么他们在一个事务里处理, 除非在字串里包含了明确的 BEGIN/COMMIT 命令把他们分成多个事务。 这个和从 psql 的标准输入里给它填充相同字串不同。-d dbname-dbname dbname声明想要联接的数据库名称。等效于在命令行行上把 dbname 声明为第一个非选项参数。-e-echo-queries把所有发送给服务器的查询同时也拷贝到标准输出。 等效于把变量 ECHO 设置为 queries。-E-echo-hidden回显由/d 和其他反斜杠命令生成的实际查询。 你可以使用这个命令学习 psql 的内部操作。 这等效于在psql里设置变量 ECHO_HIDDEN。-f filename-file filename使用 filename作为命令的语句源而不是交互式读入查询。 在处理完文件后,psql 结束。这个选项在很多方面等效于内部命令 /i。如果 filename 是 -(连字符) ,则从标准输入读取。使用这个选项与用 psql 的提示符。例如,$ psql testdbWelcome to psql 8.0.0, the PostgreSQL interactive terminal.Type: /copyright for distribution terms/h for help with SQL commands/? for help with psql commands/g or terminate with semicolon to execute query/q to quittestdb=用户可以在这个提示符下键入 SQL 查询。 通常,输入的行将在命令终止分号出现时送到服务器。 一行的终止并不结束命令!因此命令可以因清晰起见跨越好几行。如果命令发送出去而且执行没有错误, 命令结果会显示在屏幕上。当命令正在进行时,psql 同样还轮询由 LISTEN 和 NOTIFY. 生成的异步通知信号。元命令你在 psql 里输入的任何以不带引号的反斜杠(/)开头的东西都是 psql 元命令,这些命令是由 psql 自己处理的。这些命令也是令 psql 更可用于管理或书写脚本的原因。 元命令更常见的叫法是斜杠或反斜杠命令。一个 psql 命令的格式是反斜杠后面紧跟一个命令动词,然后是任意参数。 参数与命令动词和其他参数以任意个空白字符间隔。要在参数里面包含空白,你必须用单引号把它包围起来。 要在这样的参数里包含单引号,前面加一个反斜杠。任何包含在单引号里的东西会被进一步进行类 C 的替换,把 /n (新行) ,/t (tab) ,/digits, /0digits和 /0xdigits (给出的十进制,八进制,或十六进制码的字符)替换掉。如果一个不带引号的参数以冒号(:)开头, 它会被当作一个 psql 变量,并且该变量的值会最终成为真正的参数值。 (译注:类似 ecpg 和 pl/pgsql 的变量用法。 )用“反勾号” (backticks ) 包围的内容被当作一个命令行传入 shell。 该命令的输出(删除了结尾的新行)被当作参数值。上面描述的逃逸(字符)序列在反勾号里也生效。有些命令以一个 SQL 标识的名称(如,一个表名)为参数。 这些参数遵循 SQL 语法关于双引号的规则: 不带双引号的标识强制成小写, 而双引号保护字母不受大小写转换,并且允许在标识符中使用空白。 在双引号中,成对的双引号在结果名字中分析成一个双引号。比如, FOOBARBAZ 解析成 fooBARbaz,而 A weird name 变成 A weird name。对参数的分析在碰到另一个不带引号的反斜杠时停止。 这里会认为是一个新的元命令的开始。特殊序列 /(双反斜杠)标识参数的结尾并将继续分析后面的 SQL 命令(如果存在的话) 。这样 SQL 和 psql命令可以自由的在一行里面混合。 但是在任何情况下,一条元命令的参数不能延续超过行尾。下列元命令是已定义的:4/a如果目前的表输出格式是不对齐的,切换成对齐的。 如果是对齐的,切换成不对齐。这条命令是为了向后兼容。参阅 /pset 获取一个更通用的解决方法。/cd directory 把当前工作目录改变到 directory。 没有参数是则改变到当前用户的家目录。提示: 要打印出你的当前工作目录,使用 /!pwd。/C title 把正在打印的表的标题设置为一个查询的结果或者取消这样的设置。 这条命令等效于 /pset title title. (这条命令的名称源于 caption,因为以前只是用于在一个 HTML 表里面设置标题。 )/connect (或者 /c) dbname username 与一个新的数据库建立一个联接,使用/不用一个用户名。 前面的联接将关闭。如果 dbname 是 -,那么就假设是当前数据库名称。如果省略 username,则假设是当前用户名。作为一条特殊规则,不带任何参数运行/connect 将以缺省用户身份与缺省数据库连接(正如你不带任何参数运行 psql 一样。 )如果联接失败(用户名错,访问拒绝等) ,那么将保留前面的联接-当且仅当在 psql 处于交互模式下如此。 如果运行的是非交互的脚本,处理会马上停止,并返回一个错误。 选择这样的区别是一方面为用户使用方便考虑,另一方面为保证脚本不会碰巧操作了错误的数据库的安全机制考虑的。/copy table ( column_list ) from | to filename | stdin | stdout | pstdin | pstdout with oids delimiter as character null as string csv quote as character escape as character force quote column_list force not null column_list 执行前端(客户端)拷贝。这是一个运行 SQL COPY 命令的操作, 不同的是 SQL COPY 是服务器在读写指明的文件,而 psql 读写文件并作为本地的文件系统和服务器之间的路由取出或写入数据。 这意味着文件访问性和权限都是本地用户的,而不是服务器的,因此不需要 SQL 超级用户权限。这条命令的语法是模拟 SQL COPY 命令的。 要注意的是由此而来,有一些特殊的分析规则应用于 /copy 命令。尤其是变量替换规则和反斜杠代换规则不起作用。/copy table from stdin | stdout 分别基于命令输入和输出读/写。所有行都从发出命令的同一个源读取,直到读到了 /. 或者流达到 EOF。 输出发送到和命令输出相同的位置。要从 psql 的标准输入或者输出读/写,使用 pstdin 或者 pstdout。这个选项用于把和 SQL 脚本嵌在一起的文件填充表很有用。提示: 此操作不象 SQL COPY 命令这样高效, 因为所有数据必须通过客户端/服务器联接。对于大数据量的操作,另一种方法更可行。/copyright显示 PostgreSQL 的版权和版本信息。/d pattern /d+ pattern 对于每个匹配 pattern的关系(表,视图,索引或者序列) , 显示所有列,它们的类型,表空间(如果不是缺省的)和任何特殊属性,象 NOT NULL或缺省等只要存在。 如果实际上这个关系是一个表,任何已定义的索引,主键,唯一约束相关的索引,规则,约束,和触发器也同样显示出来, 如果关系是一个视图,还显示视图的定义。 (匹配模式在下面定义。 )从 /d+ 来的命令也是一样的,只不过显示更多信息:任何与表的列关联的注解也都会显示, 还有就是表中出现的 OID。注意: 如果如果不带任何 pattern调用 /d, 等效于 /dtvs,将显示一个所有表,视图和序列的列表。 这完全是出于方便的考虑。/da pattern 列出所有可用聚集函数,以及它们操作的数据类型。如果声明了 pattern,那么只显示匹配(正则表达式)的聚集函数。/db pattern /db+ pattern 列出所有可用的表空间。如果声明了 pattern, 那么只显示那些匹配模式的表空间。如果在命令名上附加了 +,那么每个对象都和与之相关的权限一起列出。/dc pattern 列出所有字符集之间的可用转换。如果声明了 pattern, 则只列出那些匹配模式的转换。/dC列出所有类型转换。/dd pattern 显示所有匹配 pattern 的描述,如果没有给出参数,显示所有可视对象。 但是不管怎样,只有那些有描述内容的对象才显示出来。 (对象包括聚集,函数,操作符,类型, 关系(表,视图,索引,序列,大对象) ,规则和触发器。 )例如:5= /dd versionObject descriptionsSchema | Name | Object | Description-+-+-+-pg_catalog | version | function | PostgreSQL version string(1 row)可以用 COMMENT SQL 命令生成对对象的描述。/dD pattern 列出所有可用域。如果声明了 pattern,那么只显示匹配的域。/df pattern /df+ pattern 列出所有可用函数,以及它们的参数和返回的数据类型。如果声明了 pattern,那么只显示匹配(正则表达式)的函数。如果使用了 /df+ 的形式,每个函数的附加信息,包括语言和描述也会显示出来。注意: 要查找接受或者返回特定类型的函数,使用你的分页器的搜索功能来滚动 /df 的输出。为了减少混乱,/df 并不显示数据类型的 I/O 函数。 这样是通过忽略那些接受或者返回类型 cstring 的函数实现的。/dg pattern 列出所有数据库组。如果声明了 pattern, 只显示那些匹配模式的名字。/distvS pattern 这不是实际的命令名称:字母 i,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号