首页软件使用教程如何把文件导入PostgreSQL数据库

如何把文件导入PostgreSQL数据库

2025-08-26 344

PostgreSQL是一款开源的关系型数据库管理系统,具有可靠的性能、丰富的功能,在很多场景都很受欢迎。本篇内容主要教大家如何把数据导入到PostgreSQL数据库。

一、安装PostgreSQL

如果你的服务器还没安装PostgreSQL,请根据以下步骤进行操作,安装之后可直接跳至第二步。

这里以Ubuntu 系统为例,用系统自带的apt包管理器来装,步骤很简单。先更新一下系统的软件包列表,确保能获取到最新的PostgreSQL版本:

sudo apt update

安装PostgreSQL主程序和配套工具(postgresql-contrib 包含一些实用的扩展功能):

sudo apt install postgresql postgresql-contrib

如何把文件导入PostgreSQL数据库

安装完成后,启动PostgreSQL服务:

sudo service postgresql start

最后验证一下是否安装成功、服务是否在运行,执行以下命令查看状态:

sudo systemctl status postgresql

如果没问题,会看到类似 “active (running)” 的提示,说明PostgreSQL已经正常启动了。

如何把文件导入PostgreSQL数据库

二、创建目标数据库

如果要导入数据到一个新的数据库(还没创建),可以按下面的步骤来建库:

首先进入PostgreSQL的命令行界面(psql),这里用默认的 “postgres” 超级用户登录(这个用户是安装PostgreSQL时自动创建的):

sudo -u postgres psql

如何把文件导入PostgreSQL数据库

执行后会进入psql交互模式,命令行提示符会变成 “postgres=#”。

用CREATE DATABASE命令创建新数据库,把 “my_db” 换成你想要的数据库名(比如 “company_db”):

CREATE DATABASE my_db;

执行后如果出现“CREATE DATABASE”的提示,就说明数据库创建成功了。

接下来可以连接到刚创建的数据库(后续导入数据也可以用这个连接),命令是:

\c my_db

出现 “You are now connected to database “my_db” as user “postgres”.” 的提示,就表示已经成功连接到目标数据库,接下来就能准备导入数据了。

如何把文件导入PostgreSQL数据库

三、根据数据格式选择对应的导入方法

数据文件的格式不同,导入的方法也不一样。下面分别讲三种常见格式(SQL文件、CSV文件、PostgreSQL dump文件)的导入步骤,根据自己的文件类型选对应的方法就行。

1、从SQL文件导入

如果你的数据是保存在SQL文件里的(比如从其他数据库导出的.sql备份文件),导入步骤如下:

先退出之前的 psql 交互模式(如果还在里面的话),按\q然后回车就能回到系统终端:

\q

在系统终端里执行以下命令,把 SQL 文件导入到目标数据库:

psql -U postgres -d my_db -f /path/to/yourfile.sql

这里解释一下命令里的各个部分,方便你理解和修改:

  • -U postgres:指定用 “postgres” 用户登录 PostgreSQL(如果你的数据库用其他用户,就换成对应的用户名);
  • -d my_db:指定要导入到的目标数据库,把 “my_db” 换成你实际的数据库名;
  • -f /path/to/yourfile.sql:指定 SQL 文件的路径和文件名,比如你的文件在 “/home/backup/data.sql”,就把这部分换成对应的路径。

执行命令后,系统会提示你输入 “postgres” 用户的密码(如果之前设置过的话),输入正确后就开始导入了。导入时间根据SQL文件大小而定,等命令执行完成,数据就导入到数据库里了。

2、从CSV文件导入

如果你的数据是CSV格式(比如从Excel、Excel表格导出的.csv文件),可以直接导入到PostgreSQL的已有表中。注意导入前要确保目标表已经存在,并且表的列数、列类型要和 CSV 文件里的数据对应上(比如CSV里第一列是 “id”(数字),表也要有 “id” 列且类型是整数)。

导入步骤很简单,在 psql 交互模式下(先按第二步的方法连接到目标数据库),执行以下 SQL 命令:

COPY my_table(column1, column2, column3)
FROM ‘/path/to/yourfile.csv’
DELIMITER ‘,’
CSV HEADER;

同样解释一下关键部分:

  • my_table:换成你要导入数据的表名(比如 “user_info”);
  • (column1, column2, column3):换成表的实际列名,顺序要和 CSV 文件里的列一致(比如 CSV 是 “id,name,age”,这里就写 “(id, name, age)”);
  • /path/to/yourfile.csv:CSV 文件的实际路径(比如 “/home/data/user_list.csv”);
  • DELIMITER ‘,’:指定 CSV 文件的分隔符(默认是逗号,如果你用的是其他分隔符,比如分号 “;”,就改成DELIMITER ‘;’);
  • CSV HEADER:告诉 PostgreSQL “CSV 文件的第一行是列名”,如果你的 CSV 没有列名(第一行就是数据),就去掉这一句。

执行后如果没报错,就说明 CSV 里的数据已经成功导入到表中了。

3、从PostgreSQL dump文件导入

如果你的文件是用PostgreSQL自带的pg_dump命令导出的dump文件(通常后缀是.dump 或.sql),这种文件最好用专门的pg_restore工具来导入,能更好地还原数据库的结构、数据和索引等。

导入命令在系统终端里执行(不用进 psql),格式如下:

pg_restore -U postgres -d my_db /path/to/yourfile.dump

各部分解释:

  • -U postgres:登录用户(和之前一样,换成你的实际用户);
  • -d my_db:目标数据库名;
  • /path/to/yourfile.dump:dump 文件的路径(如果是.sql 后缀的 dump 文件,也可以用这个命令)。

这个命令会自动把dump文件里的所有内容(表结构、数据、存储过程等)还原到目标数据库,比直接用psql导入更完整,适合PostgreSQL自身的备份文件还原。

四、验证数据是否导入成功

导入完成后,最好检查一下数据有没有正确导进去,避免出问题。先进入psql交互模式并连接到目标数据库:

sudo -u postgres psql
\c my_db # 连接到你的目标数据库

查看数据库里的表,确认表是否存在(如果是导入SQL/dump文件,会自动创建表):

\dt

执行后会列出数据库里所有的表,如果能看到你预期的表(比如导入的“orders”“products” 表),说明表结构导入成功了。

再查看表中的数据,比如查看 “my_table” 表的前 10 行数据:

SELECT * FROM my_table LIMIT 10;

如果能看到正确的数据,就说明数据导入没问题了。

PostgreSQL本身功能很强,不管是迁移数据、还原备份,还是日常管理,都很方便,学会这些基础操作,后续用起来会更顺手。

相关推荐:

PostgreSQL数据库和MySQL区别有哪些?

Ubuntu如何安装Postgres主从备份

PostgreSQL主从同步配置及切换教程

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关文章