Cách nhập và xuất dữ liệu CSV trong PostgreSQL

Tệp CSV đơn giản hóa quá trình lưu trữ dữ liệu. Vì định dạng dựa trên hàng và dựa trên cột, CSV dịch tốt sang cơ sở dữ liệu quan hệ.
Thật dễ dàng để nhập tệp CSV vào cơ sở dữ liệu và xuất từ cơ sở dữ liệu sang tệp CSV. Có một số kỹ thuật khác nhau mà bạn có thể sử dụng để làm như vậy với PostgreSQL.
Mục Lục
Tạo tệp CSV
Dưới đây là một số dữ liệu CSV mẫu mà bạn có thể sử dụng để tạo tệp CSV của riêng mình:
id,firstname,lastname,email
1,Riannon,Pulsifer,Riannon.Pulsifer@example.com
2,Moyna,Palocz,Moyna.Palocz@example.com
3,Roslyn,Bearnard,Roslyn.Bearnard@example.com
4,Gloria,Aldric,Gloria.Aldric@example.com
5,Felice,Greenwald,Felice.Greenwald@example.com
Trước khi nhập tệp CSV vào cơ sở dữ liệu PostgreSQL, bạn sẽ cần tạo một bảng phù hợp với định dạng tệp CSV. Sử dụng mã sau để tạo bảng Postgres.
CREATE TABLE employees(id int NOT NULL,
firstname char(20),
lastname char(20),
email char(50));
Nhập tệp CSV vào PostgreSQL
Bạn có thể nhập tệp CSV vào bảng Postgres trên máy chủ hoặc trên máy khách.
Nhập tệp CSV ở phía máy chủ
Để nhập tệp CSV vào máy chủ PostgreSQL, hãy sử dụng lệnh PostgreSQL COPY và từ khóa FROM. Điều này cho phép bạn sao chép dữ liệu từ tệp CSV sang bảng Postgres, miễn là cấu trúc phù hợp. Sử dụng mã sau để sao chép tệp CSV mẫu vào bảng nhân viên:
COPY employees(id,firstname,lastname,email)
FROM '/tmp/sample.csv'
DELIMITER ','
CSV HEADER;
Đường dẫn trong ví dụ trên là tuyệt đối. Bạn có thể sử dụng một đường dẫn liên quan đến thư mục dữ liệu Postgres của mình nếu bạn muốn.
Bạn có thể sao chép dữ liệu có hoặc không có tiêu đề, vì vậy hãy bỏ qua dòng mã cuối cùng nếu bạn không cần chúng.
Nhập tệp CSV ở phía máy khách
Trên máy khách, hãy sử dụng psql copy để nhập tệp CSV. Chạy mã sau trên dấu nhắc lệnh psql để sao chép tệp CSV mẫu vào bảng nhân viên.
copy employees FROM '/tmp/sample.csv' DELIMITER ',' CSV HEADER;
Xuất tệp CSV từ PostgreSQL
Giống như nhập, bạn cũng có thể xuất tệp CSV ở phía máy chủ hoặc phía máy khách.
Xuất tệp CSV ở phía máy chủ
Sử dụng lệnh COPY và từ khóa TO để xuất dữ liệu sang tệp CSV. Bạn cần chỉ định bảng nguồn và đường dẫn đến tệp đích. Lần này, đường dẫn phải là tuyệt đối:
COPY employees TO '/tmp/employees.csv' CSV HEADER;
Nếu bạn chỉ cần xuất một số hàng từ cơ sở dữ liệu, hãy sử dụng lệnh SELECT như sau:
COPY (SELECT * FROM employees where firstname='Moyna') TO '/tmp/employees-moyna.csv' CSV HEADER;
Xuất tệp CSV ở phía máy khách
Để xuất dữ liệu ở phía máy khách, hãy sử dụng copy lệnh và ĐẾN từ khóa trong dấu nhắc lệnh psql:
copy employees TO 'path-to-file.csv' CSV header;
Sử dụng Bộ điều hợp cơ sở dữ liệu
Bạn không phải sử dụng thiết bị đầu cuối để nhập tệp CSV. Bạn có thể nhập dữ liệu thông qua đối tượng con trỏ bằng ngôn ngữ lập trình ưa thích của mình. Ví dụ: nếu bạn làm việc với Python, bạn có thể kết nối với máy chủ PostgreSQL và thực thi SAO CHÉP yêu cầu.
Đối với điều này, bạn cần kết nối Python với Postgres thông qua bộ điều hợp cơ sở dữ liệu như psycopg2.
pip install psycopg2
Kết nối với cơ sở dữ liệu bằng mã sau:
import psycopg2;connection = psycopg.connect(
database="employee_db",
host="localhost"
user="postgres",
password="password",
)
Sau đó, tạo một đối tượng con trỏ và sử dụng nó để thực hiện lệnh COPY:
cursor = connection.cursor()cursor.execute(
"COPY employees(id,firstname,lastname,email)
FROM '/tmp/sample.csv'
DELIMITER ','
CSV HEADER;"
)
connection.close()
Quản lý dữ liệu PostgreSQL của bạn với sự tiện lợi của CSV
Đó là một quá trình đơn giản để nhập và xuất dữ liệu bằng cách sử dụng các tệp PostgreSQL và CSV. Bạn có thể sử dụng các lệnh psql trên máy khách hoặc máy chủ hoặc sử dụng bộ điều hợp cơ sở dữ liệu theo lập trình.
Nếu bạn là người thích GUI hơn, hãy cân nhắc sử dụng công cụ pgAdmin. Đây là một ứng dụng GUI mã nguồn mở có thể giúp bạn nhập và xuất dữ liệu dễ dàng hơn.