位置: 编程技术 - 正文

PostgreSQL教程(十八):客户端命令(2)

编辑:rootadmin

推荐整理分享PostgreSQL教程(十八):客户端命令(2),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

七、pg_dump:

pg_dump是一个用于备份PostgreSQL数据库的工具。它甚至可以在数据库正在并发使用时进行完整一致的备份,而不会阻塞其它用户对数据库的访问。该工具生成的转储格式可以分为两种,脚本和归档文件。其中脚本格式是包含许多SQL命令的纯文本格式,这些SQL命令可以用于重建该数据库并将之恢复到生成此脚本时的状态,该操作需要使用psql来完成。至于归档格式,如果需要重建数据库就必须和pg_restore工具一起使用。在重建过程中,可以对恢复的对象进行选择,甚至可以在恢复之前对需要恢复的条目进行重新排序。该命令的使用方式如下: 1. 命令行选项列表:

选项 说明 -a(--data-only) 只输出数据,不输出模式(数据对象的定义)。这个选项只是对纯文本格式有意义。对于归档格式,你可以在调用pg_restore时指定选项。 -b(--blobs) 在dump中包含大对象。 -c(--clean) 在输出创建数据库对象的SQL命令之前,先输出删除该数据库对象的SQL命令。这个选项只是对纯文本格式有意义。对于归档格式,你可以在调用 pg_restore时指定选项。 -C(--create) 先输出创建数据库的命令,之后再重新连接新创建的数据库。对于此种格式的脚本,在运行之前是和哪个数据库进行连接就不这么重要了。这个选项只是对纯文本格式有意义。对于归档格式,你可以在调用pg_restore时指定选项。 -Eencoding 以指定的字符集创建该dump文件。 -ffile 输出到指定文件,如果没有该选项,则输出到标准输出。 -Fformat

p(plain): 纯文本格式的SQL脚本文件(缺省)。c(custom): 输出适合于pg_restore的自定义归档格式。 这是最灵活的格式,它允许对装载的数据和对象定义进行重新排列。这个格式缺省的时候是压缩的。t(tar): 输出适合于pg_restore的tar归档文件。使用这个归档允许在恢复数据库时重新排序和/或把数据库对象排除在外。同i时也可能可以在恢复的时候限制对哪些数据进行恢复。

-n schema 只转储schema的内容。如果没有声明该选项,目标数据库中的所有非系统模式都会被转储。该选项也可以被多次指定,以指定不同pattern的模式。 -Nschema 不转储匹配schema的内容,其他规则和-n一致。 -o(--oids) 作为数据的一部分,为每个表都输出对象标识(OID)。 -O(--no-owner) 不输出设置对象所有权的SQL命令。 -s(--schema-only) 只输出对象定义(模式),不输出数据。 -Susername 指定关闭触发器时需要用到的超级用户名。它只有在使用--disable-triggers的时候才有关系。 -ttable 只输出表的数据。很可能在不同模式里面有多个同名表,如果这样,那么所有匹配的表都将被转储。通过多次指定该参数,可以一次转储多张表。这里还可以指定和psql一样的pattern,以便匹配更多的表。(关于pattern,基本的使用方式是可以将它视为unix的通配符,即*表示任意字符,&#;表示任意单个字符,.(dot)表示schema和object之间的分隔符,如a*.b*,表示以a开头的schema和以b开头的数据库对象。如果没有.(dot),将只是表示数据库对象。这里也可以使用基本的正则表达式,如[0-9]表示数字。) -Ttable 排除指定的表,其他规则和-t选项一致。 -x(--no-privileges) 不导出访问权限信息(grant/revoke命令)。 -Z0..9 声明在那些支持压缩的格式中使用的压缩级别。 (目前只有自定义格式支持压缩) --column-inserts 导出数据用insert into table_name(columns_list) values(values_list)命令表示,这样的操作相对其它操作而言是比较慢的,但是在特殊情况下,如数据表字段的位置有可能发生变化或有新的字段插入到原有字段列表的中间等。由于columns_list被明确指定,因此在导入时不会出现数据被导入到错误字段的问题。 --inserts 导出的数据用insert命令表示,而不是copy命令。即便使用insert要比copy慢一些,但是对于今后导入到其他非PostgreSQL的数据库是比较有意义的。 --no-tablespaces 不输出设置表空间的命令,如果带有这个选项,所有的对象都将恢复到执行pg_restore时的缺省表空间中。 --no-unlogged-table-data 对于不计入日志(unlogged)的数据表,不会导出它的数据,至于是否导出其Schema信息,需要依赖其他的选项而定。 -h(--host=host) 指定PostgreSQL服务器的主机名。 -p(--port=port) 指定服务器的侦听端口,如不指定,则为缺省的。 -U(--username=username) 本次操作的登录用户名,如果-O选项没有指定,此数据库的Owner将为该登录用户。 -w(--no-password) 如果当前登录用户没有密码,可以指定该选项直接登录。

2. 应用示例:

八、pg_restore:

pg_restore用于恢复pg_dump导出的任何非纯文本格式的文件,它将数据库重建成保存它时的状态。对于归档格式的文件,pg_restore可以进行有选择的恢复,甚至也可以在恢复前重新排列数据的顺序。

pg_restore可以在两种模式下操作。如果指定数据库,归档将直接恢复到该数据库。否则,必须先手工创建数据库,之后再通过pg_restore恢复数据到该新建的数据库中。该命令的使用方式如下: 1. 命令行选项列表:

选项 说明 filename 指定要恢复的备份文件,如果没有声明,则使用标准输入。 -a(--data-only) 只恢复数据,而不恢复表模式(数据对象定义)。 -c(--clean) 创建数据库对象前先清理(删除)它们。 -C(--create) 在恢复数据库之前先创建它。(在使用该选项时,数据库名需要由-d选项指定,该选项只是执行最基本的CREATE DATABASE命令。需要说明的是,归档文件中所有的数据都将恢复到归档文件里指定的数据库中)。 -ddbname 与数据库dbname建立连接并且直接恢复数据到该数据库中。 -e(--exit-on-error) PostgreSQL教程(十八):客户端命令(2)

如果在向数据库发送SQL命令的时候遇到错误,则退出。缺省是继续执行并且在恢复结束时显示一个错误计数。

-Fformat 指定备份文件的格式。由于pg_restore会自动判断格式,因此指定格式并不是必须的。如果指定,它可以是以下格式之一:t(tar): 使用该格式允许在恢复数据库时重新排序和/或把表模式信息排除出去,同时还可能在恢复时限制装载的数据。 c(custom):该格式是来自pg_dump的自定义格式。这是最灵活的格式,因为它允许重新对数据排序,也允许重载表模式信息,缺省情况下这个格式是压缩的。 -I index 只恢复指定的索引。 -l(--list) 列出备份中的内容,这个操作的输出可以作为-L选项的输入。注意,如果过滤选项-n或-t连同-l选项一起使用的话,他们也将限制列出的条目。 -L list-file 仅恢复在list-file中列出的条目,恢复的顺序为各个条目在该文件中出现的顺序,你也可以手工编辑该文件,并重新排列这些条目的位置,之后再进行恢复操作,其中以分号(;)开头的行为注释行,注释行不会被导入。 -n namespace 仅恢复指定模式(Schema)的数据库对象。该选项可以和-t选项联合使用,以恢复指定的数据对象。 -O(--no-owner) 不输出设置对象所有权的SQL命令。 -Pfunction-name(argtype [, ...])

只恢复指定的命名函数。该名称应该和转储的内容列表中的完全一致。

-s(--schema-only) 只恢复表结构(数据定义)。不恢复数据,序列值将重置。 -Susername 指定关闭触发器时需要用到的超级用户名。它只有在使用--disable-triggers的时候才有关系。 -t table 只恢复指定表的Schema和/或数据,该选项也可以连同-n选项指定模式。 -x(--no-privileges) 不恢复访问权限信息(grant/revoke命令)。 -1(--single-transaction) 在一个单一事物中执行恢复命令。这个选项隐含包括了--exit-on-error选项。 --no-tablespaces 不输出设置表空间的命令,如果带有这个选项,所有的对象都将恢复到执行pg_restore时的缺省表空间中。 --no-data-for-failed-tables 缺省情况下,即使创建表失败了,如该表已经存在,数据加载的操作也不会停止,这样的结果就是很容易导致大量的重复数据被插入到该表中。如果带有该选项,那么一旦出现针对该表的任何错误,对该数据表的加载将被忽略。 --role=rolename 以指定的角色名执行restore的操作。通常而言,如果连接角色没有足够的权限用于本次恢复操作,那么就可以利用该选项在建立连接之后再切换到有足够权限的角色。 -h(--host=host) 指定PostgreSQL服务器的主机名。 -p(--port=port) 指定服务器的侦听端口,如不指定,则为缺省的。 -U(--username=username) 本次操作的登录用户名,如果-O选项没有指定,此数据库的Owner将为该登录用户。 -w(--no-password) 如果当前登录用户没有密码,可以指定该选项直接登录。

2. 应用示例:

九、psql:

PostgreSQL的交互终端,等同于Oracle中的sqlplus。 1. 常用命令行选项列表:

选项 说明 -c command 指定psql执行一条SQL命令command(用双引号括起),执行后退出。 -d dbname 待连接的数据库名称。 -E   回显由d和其他反斜杠命令生成的实际查询。 -f filename 使用filename文件中的数据作为命令输入源,而不是交互式读入查询。在处理完文件后,psql结束并退出。 -h hostname 声明正在运行服务器的主机名 -l 列出所有可用的数据库,然后退出。 -L filename 除了正常的输出源之外,把所有查询记录输出到文件filename。 -o filename 将所有查询重定向输出到文件filename。 -p port 指定PostgreSQL服务器的监听端口。 -q --quiet 让psql安静地执行所处理的任务。缺省时psql将输出打印欢迎和许多其他信息。 -t --tuples-only 关闭打印列名称和结果行计数脚注等信息。 -U username 以用户username代替缺省用户与数据库建立连接。

2. 应用示例:

3. 内置命令列表: psql内置命令的格式为反斜杠后面紧跟一个命令动词,之后是任意参数。参数与命令动词以及其他参数之间可以用空白符隔开,如果参数里面包含空白符,该参数必须用单引号括起,如果参数内包含单引号,则需要用反斜杠进行转义,此外单引号内的参数还支持类似C语言printf函数所支持的转义关键字,如t、n等。

命令 说明 a 如果目前的表输出格式是不对齐的,切换成对齐的。如果是对齐的,则切换成不对齐。 cd [directory] 把当前工作目录切换到directory。没有参数则切换到当前用户的主目录。 C [title]   为查询结果添加表头(title),如果没有参数则取消当前的表头。 c[dbname[username] ] 连接新的数据库,同时断开当前连接。如果dbname参数为-,表示仍然连接当前数据库。如果忽略username,则表示继续使用当前的用户名。 copy 其参数类似于SQL copy,功能则几乎等同于SQL copy,一个重要的差别是该内置命令可以将表的内容导出到本地,或者是从本地导入到数据库指定的表,而SQL copy则是将表中的数据导出到服务器的某个文件,或者是从服务器的文件导入到数据表。由此可见,SQL copy的效率要优于该内置命令。 d [pattern] 显示和pattern匹配的数据库对象,如表、视图、索引或者序列。显示所有列,它们的类型,表空间(如果不是缺省的)和任何特殊属性。 db [pattern]   列出所有可用的表空间。如果声明了pattern, 那么只显示那些匹配模式的表空间。 db+ [pattern]   和上一个命令相比,还会新增显示每个表空间的权限信息。 df [pattern]   列出所有可用函数,以及它们的参数和返回的数据类型。如果声明了pattern,那么只显示匹配(正则表达式)的函数。 df+ [pattern]   和上一个命令相比,还会新增显示每个函数的附加信息,包括语言和描述。   distvS [pattern] 这不是一个单独命令名称:字母 i、s、t、v、S 分别代表索引(index)、序列(sequence)、表(table)、视图(view)和系统表(system table)。你可以以任意顺序声明部分或者所有这些字母获得这些对象的一个列表。 dn [pattern]   列出所有可用模式。如果声明了pattern,那么只列出匹配模式的模式名。 dn+ [pattern] 和上一个命令相比,还会新增显示每个对象的权限和注释。 dp [pattern] 生成一列可用的表和它们相关的权限。如果声明了pattern, 那么只列出名字可以匹配模式的表。 dT [pattern] 列出所有数据类型或只显示那些匹配pattern的。 du [pattern] 列出所有已配置用户或者只列出那些匹配pattern的用户。 echotext [ ... ] 向标准输出打印参数,用一个空格分隔并且最后跟着一个新行。如:echo `date` g[{filename ||command}] 把当前的查询结果缓冲区的内容发送给服务器并且把查询的输出存储到可选的filename或者把输出定向到一个独立的在执行 command的Unix shell。 ifilename 从文件filename中读取并把其内容当作从键盘输入的那样执行查询。 l 列出服务器上所有数据库的名字和它们的所有者以及字符集编码。 o[{filename ||command}] 把后面的查询结果保存到文件filename里或者把后面的查询结果定向到一个独立的shell command。 p 打印当前查询缓冲区到标准输出。 q 退出psql程序。 r 重置(清空)查询缓冲区。 s [filename] 将命令行历史打印出或是存放到filename。如果省略filename,历史将输出到标准输出。 t   切换是否输出列/字段名的信息头和行记数脚注。 w{filename ||command} 将当前查询缓冲区输出到文件filename或者定向到Unix命令command。 z [pattern] 生成一个带有访问权限列表的数据库中所有表,视图和序列的列表。如果给出任何pattern,则被当成一个规则表达式,只显示匹配的表,视图和序列。 ! [command] 返回到一个独立的Unix shell或者执行Unix命令command。参数不会被进一步解释,shell将看到全部参数。

4. 内置命令应用示例:

在psql中,大部分的内置命令都比较易于理解,因此这里只是给出几个我个人认为相对容易混淆的命令。

SQLite教程(七):数据类型详解 一、存储种类和数据类型:SQLite将数据值的存储划分为以下几种存储类型:NULL:表示该值为NULL值。INTEGER:无符号整型值。REAL:浮点值。TEXT:文本字符串,

PostgreSQL教程(二十):PL/pgSQL过程语言 一、概述:PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候

FREEBSD安装POSTGRESQL笔记 折腾了好长时间,重新初始化好多次。安装的时候,命令:pkgsearchpostgresql.额好多包,选择最新的9.4安装server,会一起安装client。安装完会有很多文字提

标签: PostgreSQL教程(十八):客户端命令(2)

本文链接地址:https://www.jiuchutong.com/biancheng/319639.html 转载请保留说明!

上一篇:PostgreSQL教程(十九):SQL语言函数

下一篇:PostgreSQL教程(二十):PL/pgSQL过程语言

  • 法人拿走公司利润要交税吗
  • 香港保险代理人佣金
  • 房屋中介机构可以资金托管吗
  • 房产折旧计算方法 举例
  • 房地产开发企业土地增值税清算
  • 物料损耗会计分录
  • 每个月计提工资没有发怎么办
  • 企业认缴出资怎么做账
  • 集团财务公司可以放款给外部单位吗
  • 打印机需要计提折旧吗
  • 开出增值税普通发票需要交税吗
  • 地税逾期申报怎么处理
  • 小微企业减免税如何算
  • 有限公司缴税
  • 为什么增值税发票综合服务平台进不去
  • 增值税专用发票验票
  • 蔬菜销售收入免增值税吗
  • 展览费怎么开票
  • 广告制作费怎么入账
  • 利息收入需要开票吗
  • 附有销售退回条款的递延所得税问题
  • 电子商务平台怎么下载中标通知书
  • 企业的团队建设之荒野求生
  • windows10如何关闭左下角的搜索
  • 房地产公司的存货分析
  • windows11怎么设置默认应用
  • 临时工工资的会计处理
  • 建筑业预缴企业所得税税率是多少
  • 最贵的苹果4
  • 制造业利润占比多少合适
  • 印花税的优惠政策和依据
  • vue实现简易购物车
  • ICLR2023《Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series》
  • python答疑
  • dpkg deinstall
  • php静态方法可以被继承吗
  • 公司发放工作服账务处理
  • 金税三期可以申报个税吗
  • 合同发票收款付款管理系统源码
  • 车票怎么抵扣增值税税率
  • 库存材料清查结论怎么写
  • 不动产投资缴纳什么税
  • 个体工商户购买生育险有生育津贴吗
  • 车间领用五金配件入什么科目
  • 暂估应付款怎么录入
  • 国税办税人员怎么解绑
  • 清包工方式建筑服务
  • 进项加计抵减对账怎么做
  • 无形资产减值准备是什么科目
  • 一般纳税人建筑劳务税率
  • 季度所得税申报表本年累计怎么填
  • 计提生产经营所得
  • 车辆使用费怎么算
  • 所得税需要转本吗
  • 固定资产的改良支出有哪些
  • 企业用地手续办理流程
  • 机械租赁带司机和不带司机的税率
  • 广告公司如何开展业务
  • 个体户利润总额是4万应缴纳多少个人经营所得
  • 暂估固定资产的账务处理
  • 加工企业三种商业模式
  • 账簿凭证管理的内容
  • mysql 5.7.32
  • win10系统的邮件和日历跟outlook一样嘛
  • xp怎么安装framework
  • centos如何操作
  • 微软刷机怎么刷
  • win8整理磁盘碎片的步骤
  • win10任务栏电源图标打不开
  • win7系统咋样
  • android 布局
  • cocos2d教程
  • node .js
  • jquery简单例子
  • 基于jquery的框架有哪些
  • 进程间的通信方
  • 进口消费税怎么入账
  • 办公室租金可以开专票抵扣进项税吗
  • 北京西城区税务所
  • 企业需要缴纳哪些费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设