Bài viết này sẽ mô tả các kỹ thuật khác nhau để export dữ liệu của bảng PostgreSQL ra file CSV.
Ở bài viết trước, chúng ta đã biết cách import dữ liệu của file CSV vào bảng. Chúng ta sẽ sử dụng bảng persons đã tạo trong bài viết đó để export dữ liệu ra file CSV.
Và thử check dữ liệu của bảng persons
1. Sử dụng COPY statement
Cách dễ nhất để export dữ liệu của bảng ra file CSV là sử dụng câu lệnh COPY.
Ví dụ: chúng ta sẽ export dữ liệu của bảng persons ra file CSV có tên persons_db.csv trong thư mục F:\minhhn.com\MinhHoangBlog thì có thể sử dụng câu lệnh sau:
COPY persons TO 'F:\minhhn.com\MinhHoangBlog\persons_db.csv' DELIMITER ',' CSV HEADER;
Khi thực thi xong lệnh COPY, PostgreSQL trả lại thông báo sau:
COPY 2
Điều đó có nghĩa đã export thành công 2 hàng dữ liệu của bảng persons ra file CSV.
Trong một số trường hợp, bạn chỉ muốn export dữ liệu của một số cột ra file CSV thì hãy chỉ định tên cột cùng với tên bảng sau từ khóa COPY.
Ví dụ: câu lệnh sau xuất dữ liệu từ các cột first_name, last_name và email của bảng persons
COPY persons(first_name,last_name,email)
TO 'F:\minhhn.com\MinhHoangBlog\persons_db1.csv'
DELIMITER ','
CSV HEADER;
Nếu bạn không muốn export dòng tiêu đề chứa tên cột của bảng, chỉ cần xóa chỉ định HEADER
trong câu lệnh COPY.
Ví dụ: câu lệnh sau không export phần header và chỉ xuất dữ liệu từ cột email ra file CSV.
COPY persons(email) TO 'F:\minhhn.com\MinhHoangBlog\persons_db2.csv' DELIMITER ',' CSV;
2. Sử dụng \copy command
Trong trường hợp bạn có quyền truy cập vào máy chủ cơ sở dữ liệu PostgreSQL từ xa (remote PostgreSQL database server), nhưng bạn không có đủ đặc quyền để write file trên đó, bạn có thể sử dụng lệnh \copy được tích hợp trong PostgreSQL.
Lệnh \copy về cơ bản chạy câu lệnh COPY ở trên. Tuy nhiên, thay vì server ghi file CSV, psql ghi file CSV, chuyển dữ liệu từ server sang hệ thống file local của bạn. Để sử dụng lệnh \copy, bạn chỉ cần có đủ đặc quyền cho máy local của mình. Nó không yêu cầu đặc quyền superuser PostgreSQL.
Ví dụ: nếu bạn muốn export tất cả dữ liệu của bảng persons vào tệp persons_client.csv, bạn có thể thực thi lệnh \copy từ máy psql client như sau:
\copy (SELECT * FROM persons) to 'F:\minhhn.com\MinhHoangBlog\persons_client.csv' WITH csv
3. Sử dụng giao diện pgAdmin
Sau khi vào trang quản trị cơ sở dữ liệu pgAdmin > right-click bảng persons > chọn Import/Export…
Hộp thoại Import/Export data sẽ xuất hiện, bạn thiết lập các thông số như hình:
Cuối cùng, click tab Columns > tùy chọn sẽ export toàn bộ cột, hoặc xóa cột không cần export > click OK
Xong, chờ xíu là quá trình export hoàn tất, và chúng ta có kết quả:
[…] Xem thêm: Cách export dữ liệu của table PostgreSQL ra CSV file. […]