如何导入PostgreSQL数据库数据

如何导入PostgreSQL数据库数据,第1张

数据的导出:

$ pg_dump -U postgres(用户名) (-t 表名) 数据库名(缺省时同用户名) > 路径/文件名sql

[html] view plain copy

postgres@debian:~$ pg_dump -U postgres -t system_calls wangye > /testsql

postgres@debian:~$ ls

91 testsql

数据的导入:

导入数据时首先创建数据库再用psql导入:

$ createdb newdatabase

$ psql -d newdatabase -U postgres -f mydatabasesql // sql 文件在当前路径下

$ psql -d databaename(数据库名) -U username(用户名) -f < 路径/文件名sql // sql 文件不在当前路径下

[html] view plain copy

$ su postgresql #切换到psql用户下

$ psql -d wangye -U postgres -f system_callssql # sql 文件在当前路径下

INSERT 0 1

INSERT 0 1

INSERT 0 1

21 pgAdmin3的启动

您可以在应用程序---系统工具中找到pgAdmin3的启动项;

也可以在命令行下输入:

xiaop@xiaop-laptop:~$ /usr/bin/pgadmin3 start

622 连接已创建的数据库mydb ;

点击档案-----新增服务器,然后在跳出的窗口下输入:

地址:localhost

描述:服务器名称(随意填写)

维护数据库:postgres

用户名:自己创建一个(详情参见创建用户)

密码:和用户名对应(创建用户时自己创建)

点击确定后大家便可以查看postsql已有的数据库了;

注:pgAdmin3的数据库和终端下创建的数据库是完全同步的(可以用刷新查看效果), pgAdmin3是比较方便的图形化管理工具,它可以创建图表,管理数据库等,有关pgAdmin3的详细介绍我们在以后讨论,本文主要介绍命令行下的 *** 作。图形化管理工具能做到的命令行都可以做到,您可以在命令行下创建表,在pgAdmin3上查看是否同步:

7 创建和删除表;

71 创建新表;

创建完数据库之后,您就可以创建新表了,可以通过声明表的名字和所有字段的名字及其类型来创建表,例如:

mydb#CREATE TABLE weather (

city varchar(80),

temp_lo int, -- 最低气温

temp_hi int, -- 最高气温

prcp real, -- 降水量

date date

);

注:您可以在 psql 里连换行符一起键入这些东西。 psql 可以识别该命令直到分号才结束,不要忘记“;”

您可以在 SQL 命令中自由使用空白(也就是空格,tab,和换行符)。 这就意味着您可以用和上面不同的对齐方式键入命令。 两个划线("--") 引入注释。 任何跟在它后面的东西直到该行的结尾都被忽略。 SQL 是对关键字和标识符大小写不敏感的语言,只有在标识符用双引号包围时才能保留它们的大小写属性。

72 数据类型;

上面例子中的varchar(80) 声明一个可以存储最长 80 个字符的任意字符串的数据类型。 int 是普通的整数类型。 real 是一种用于存储单精度浮点数的类型。 date 类型应该可以自解释。

PostgresSQL 支持标准的 SQL 类型 int,smallint, real,double precision, char(N), varchar(N),date, time,timestamp 和 interval,还支持其他的通用类型和丰富的几何类型。 PostgreSQL 可以客户化为定制任意的用户定义的数据类型,您可以参考PostgreSQL的中文文档来查询;

73 删除表;

如果您不再需要某个表,或者您想创建一个不同的表,那么您可以用下面的命令删除它:

mydb#DROP TABLE tablename

8 向表中添加行;

81 INSERT;

INSERT 用于向表中添加行,您可以输入(在数据库中 *** 作):

mydb#INSERT INTO weather VALUES ('San Francisco', 46, 50, 025, '1994-11-27');

注:所有数据类型都使用了相当明了的输入格式。 那些不是简单数字值的常量必需用单引号(')包围, 就象在例子里一样。

82 point类型输入;

point 类型要求一个座标对作为输入,如下:

mydb#INSERT INTO cities VALUES ('San Francisco', '(-1940, 530)');

83 COPY;

您还可以使用 COPY 从文本文件中装载大量数据。 这么干通常更快,因为 COPY 命令就是为这类应用优化的, 只是比 INSERT 少一些灵活性.比如:

mydb#COPY weather FROM '/home/user/weathertxt';

注:weathertxt是您提前写好的符合格式标准的表格内容文档;

9 查询一个表;

91 SELECT;

要从一个表中检索数据就是查询这个表。 SQL 的 SELECT 就是做这个用途的。 该语句分为选择列表(列出要返回的字段部分),表列表(列出从中检索数据的表的部分), 以及可选的条件(声明任意限制的部分)。比如,要检索表 weather 的所有行,键入:

SELECT FROM weather;

<code>

输出结果:

<code>

city | temp_lo | temp_hi | prcp | date

---------------+---------+---------+------+------------

San Francisco | 46 | 50 | 025 | 1994-11-27

San Francisco | 43 | 57 | 0 | 1994-11-29

Hayward | 37 | 54 | | 1994-11-29

(3 rows)

您可以在选择列表中写任意表达式,而不仅仅是字段列表。比如,您可以:

SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;

这样应该得出:

city | temp_avg | date

---------------+----------+------------

San Francisco | 48 | 1994-11-27

San Francisco | 50 | 1994-11-29

Hayward | 45 | 1994-11-29

(3 rows)

请注意这里的 AS 子句是如何给输出字段重新命名的。(AS 子句是可选的。)

92 WHERE;

一个查询可以使用 WHERE 子句"修饰",声明需要哪些行。 WHERE 子句包含一个布尔(真值)表达式,只有那些布尔表达式为真的行才会被返回。 允许您在条件中使用常用的布尔 *** 作符(AND,OR, 和 NOT)。 比如,下面的查询检索旧金山的下雨天的天气:

mydb#SELECT FROM weather

WHERE city = 'San Francisco' AND prcp > 00;

结果:

city | temp_lo | temp_hi | prcp | date

---------------+---------+---------+------+------------

San Francisco | 46 | 50 | 025 | 1994-11-27

(1 row)

93 排序;

您可以要求返回的查询是排好序的:

mydb#SELECT FROM weather

ORDER BY city;

得出结果:

city | temp_lo | temp_hi | prcp | date

---------------+---------+---------+------+------------

Hayward | 37 | 54 | | 1994-11-29

San Francisco | 43 | 57 | 0 | 1994-11-29

San Francisco | 46 | 50 | 025 | 1994-11-27

在这个例子里,排序的顺序并非绝对清晰的,因此您可能看到 San Francisco 行随机的排序。 但是如果您使用下面的语句,那么就总是会得到上面的结果

SELECT FROM weather

ORDER BY city, temp_lo;

您可以要求查询的结果按照某种顺序排序, 并且消除重复的行输出:

mydb#SELECT DISTINCT city

FROM weather;

得出结果:

city

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

Hayward

San Francisco

(2 rows)

打开软件,进入界面中。

双击“PostgresSQL 93”连接服务器

方法一:右键单击“postgres”,选择“新建对象”--新建数据库,设置新的数据库的参数,所有者一般默认为“postgres”

新建完后,不能立即看到界面上更新的数据,需要点击界面上的更新按钮才能够看到数据库的变化情况。

方法二:在插件中输入SQL语言,运行命令

方法三:点击面板上的“执行任意的SQL查询”

要保证 PG 数据库集群中数据的同步,可以采用以下一些方法:

1 流复制:流复制是 PG 数据库集群中最常用的数据同步方式。它基于二进制日志的基础上,将主服务器上的事务日志传输到从服务器上进行重放。当主服务器执行一个新的事务时,它会向从服务器发送一个 WAL 记录,然后该记录会被写入从服务器的 WAL,从而实现了数据同步。

2 逻辑复制:逻辑复制是另一种常用的 PG 数据库集群数据同步方式。它通过在主服务器上解析 SQL 插入,更新和删除语句,然后再将这些语句传输到从服务器上执行,来实现数据同步。

3 复制槽:复制槽是一个用于保存复制信息的数据结构,可以用于控制流复制和逻辑复制。通过使用复制槽,可以确保从服务器可以接收到主服务器上的所有更改,即使从服务器离线或重启。

4 pgpool-II:pgpool-II 是一个流行的第三方开源工具,用于 PG 数据库集群中的负载均衡和故障转移。通过在 pgpool-II 中设置正确的参数,可以实现数据同步,从而提高系统的可用性和性能。

综上所述,要保证 PG 数据库集群中数据的同步,可以采用多种方法。具体选择哪一种同步方式取决于您的系统架构和业务需求。

以上就是关于如何导入PostgreSQL数据库数据全部的内容,包括:如何导入PostgreSQL数据库数据、怎么把postgresql的数据导出成sql,我有pgAdmin3、如何创建和连接 PostgreSQL 数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9616848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存