当前位置: 首页 > news >正文

PostgreSQL常用命令,启动连接,pg_dump导入导出

文章目录

  • 1 PostgreSQL服务启动与停止、连接
  • 2 常用sql命令
  • 3 数据备份与恢复

1 PostgreSQL服务启动与停止、连接

在没有设置环境变量的情况下 需进入pgsql的bin目录

#Windows下启动
#打开“开始”菜单,找到 “PostgreSQL” 文件夹,找到 “pgAdmin” 应用程序,单击该应用程序图标启动PostgreSQL
进入postgresql目录
.\bin\pg_ctl -D data -l logfile start
.\bin\pg_ctl -D data -l logfile stop
.\bin\pg_ctl -D 数据目录 -l /xx/postgresql.log start        #PostgreSQL 的 pg_ctl 命令要求 -l 参数后跟的是一个日志文件的路径,而不是目录。你需要指定一个具体的文件名,例如 D:\SoftwareInstall\PostgreSQL\data\log\postgresql.log。这样,PostgreSQL 就可以在该目录下创建或追加日志文件
注册为本地服务后 可直接通过 net start xx 启动服务
#Linux下启动
su - postgres
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile#连接指定服务器上的数据库(-U 用户名)
psql -h IP -p 端口 -U 用户名 -d 数据库名 -W

2 常用sql命令

select version(); #显示版本信息
\l  #列出所有数据库
\c database_name #切换到指定的数据库
#查看当前使用的数据库
select current_database();
\c #显示当前数据库名称和用户
\conninfo #显示客户端的连接信息
\du #显示所有用户
\dn #显示数据库中的schema
\encoding #显示字符集#创建数据库
creadb database db_name owner 所属用户 encoding UTF8;
drop database db_name;\d #列出数据库中所有表
\dt #列出数据库中所有表
\d [table_name] #显示指定表的结构
\di #列出数据库中所有 index
\dv #列出数据库中所有 view
drop table tb_name;  #删除一张表
#插入数据
insert into table_name(column1,column2,...) values(value1,value2,..)
alter table [表名] drop column [字段名];  #删除表中的字段\i testdb.sql #执行sql文件
\x #扩展展示结果信息,相当于MySQL的\G
\o /tmp/test.txt #将下一条sql执行结果导入文件中
\? #所有命令帮助
\h #sql命令帮助
\q #退出连接

3 数据备份与恢复

#  导出数据
#导出数据库结构和数据
pg_dump -h ip -p port -U 用户名 -d your_database -f backup.sql
#导出数据库结构(仅架构)
pg_dump -h ip -p port -U 用户名 -d your_database -s -f schema_dump.sql#导出单表结构和数据
pg_dump -h ip -p port -U 用户名 -d your_database -t table_name -f backup.sql  #sql中数据为copy方式 
pg_dump -h ip -p port -U 用户名 -d database_name -t table_name --column-inserts -f backup.sql  #sql中数据为insert方式,速度慢,便于导入到非PostgreSQL数据库
pg_dump -h ip -p port -U 用户名 -d database_name -t table_name --column-inserts > backup.sql   #不仅可以使用 -f xx.sql,也可使用 > xx.sql
#只导出表结构,不导出表数据
pg_dump -h ip -p port -U 用户名 -d database_name -t table_name -s -f backup.sql  #-s 参数只导致对象定义模式,不导出数据
#只导出表数据,不导出表结构
pg_dump -h ip -p port -U 用户名 -d database_name -t table_name -a -f backup.sql  #-a 参数只导出表数据,不导出表结构#导出多个表数据
pg_dump -h ip -p port -U 用户名 -d database_name -t tb_name1 -t tb_name2 -f backup.sql#  导入数据 执行sql文件
psql -h IP -p port -U 用户名 -W -d db_name < dump/save.sql
psql -h ip -p port -U postgres -d db_name -f xxx.sql 

pg_dump 常用参数

  • -h host:指定数据库主机名,或者IP
  • -p port:指定端口号
  • -U user:指定连接使用的用户名
  • -W:按提示输入密码
  • -d, --dbname=DBNAME:指定要导出的数据库名称
  • -a,–data-only:只导出表数据,不导出表结构
  • -s,–schema-only:只导致对象定义模式,不导出数据
  • -t,–table=table,只转存匹配到的表,视图,序列,可以使用多个-t匹配多个表,不指定具体表则导出整个数据库
  • -c,–clean:在导入时清理(删除)数据库,是否生成清理该数据库对象的语句,比如drop table
  • -C,–create,是否输出一条创建数据库语句
  • -f file,–file=file,指定输出文件或目录名,输出到指定文件中
  • -n schema,–schema=schema,只转存匹配schema的模式内容
  • -N schema,–exclude-schema=schema,不转存匹配schema的模式内容
  • -O,–no-owner,不设置导出对象的所有权
  • -T table,–exclude-table=table,不转存匹配到的表。
  • –inserts,使用insert命令形式导出数据,这种方式比默认的copy方式慢很多,但是可用于将数据导入到非PostgreSQL数据库。
  • –-column-inserts,导出的数据有显式列名,以带有列名的 INSERT 命令形式转储数据
  • 数据库名放最后,不指定默认是系统变量PGDATABASE指定的数据库

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python模块篇(五)
  • 2408d,加@GC作为函数属性
  • Java基于数据库、乐观锁、悲观锁、Redis、Zookeeper分布式锁的简单案例实现(保姆级教程)
  • 面试题:MQ
  • seata的使用(SpringBoot项目整合seata)
  • RabbitMQ-消息队列延迟队列一
  • Dockerfile搭建LNMP
  • Linux安装jdk8,tomcat和mysql
  • 【layUI】只能选某个特定区间的日历
  • 24/8/18算法笔记 目标导向强化学习
  • 【C++】C++11新增特性
  • Fabric:关于链码的编写及部署的问题记录
  • 在CodeBlocks搭建SDL2工程OLED液晶模拟器虚拟OLED单色液晶(128x64)
  • 使用MongoDB构建AI:Story Tools Studio将生成式AI引入Myth Maker AI游戏
  • vue中点击导航栏,动态改变样式,经典写法
  • 2017-09-12 前端日报
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Codepen 每日精选(2018-3-25)
  • HTTP那些事
  • Javascript 原型链
  • Java读取Properties文件的六种方法
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Spring声明式事务管理之一:五大属性分析
  • Swoft 源码剖析 - 代码自动更新机制
  • Theano - 导数
  • Vim 折腾记
  • 半理解系列--Promise的进化史
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 对JS继承的一点思考
  • 高度不固定时垂直居中
  • 搞机器学习要哪些技能
  • 王永庆:技术创新改变教育未来
  • 原生 js 实现移动端 Touch 滑动反弹
  • 怎么将电脑中的声音录制成WAV格式
  • 阿里云重庆大学大数据训练营落地分享
  • ​Redis 实现计数器和限速器的
  • $.each()与$(selector).each()
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • .md即markdown文件的基本常用编写语法
  • .NET 4.0中的泛型协变和反变
  • .net FrameWork简介,数组,枚举
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 直连SAP HANA数据库
  • .NET的微型Web框架 Nancy
  • .NET企业级应用架构设计系列之开场白
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [BZOJ] 2006: [NOI2010]超级钢琴
  • [C#]C#学习笔记-CIL和动态程序集