Bài viết này sẽ mô tả cách import dữ liệu của file CSV vào bảng (table) PostgreSQL.
Đầu tiên, tạo một bảng mới có tên là persons với các cột sau:
- id: person id
- first_name: first name
- last_name: last name
- birth_day: date of birth
- email: email address
CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), birth_day DATE, email VARCHAR(255), PRIMARY KEY (id) );
Sau đó, chuẩn bị một file CSV F:\minhhn.com\MinhHoangBlog\Persons.csv có các trường dữ liệu tương ứng như các cột của bảng persons đã tạo ở trên.
1. Sử dụng truy vấn sql
Để import data của file CSV vào bảng PostgreSQL, chúng ta sẽ sử dụng câu lệnh COPY như sau:
COPY persons(first_name, last_name, birth_day, email) FROM 'F:\minhhn.com\MinhHoangBlog\Persons.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 đã import thành công 2 hàng dữ liệu của file CSV vào bảng persons
Nói thêm về lệnh COPY ở trên.
Thứ tự các cột của table phải giống như các cột trong file CSV. Trong trường hợp file CSV chứa đầy đủ tất cả các cột của table thì bạn không cần chỉ định rõ ràng chúng, chỉ cần ghi tên table thôi là được:
COPY table_name
FROM 'F:\minhhn.com\MinhHoangBlog\Persons.csv'
DELIMITER ','
CSV HEADER;
DELIMITER ','
cho biết dấu phân cách giữa các dữ liệu trong file CSV.
Chỉ định từ khóa HEADER
để chỉ ra rằng file CSV có chứa tiêu đề. Khi lệnh COPY nhập dữ liệu, nó sẽ bỏ qua tiêu đề của file.
Lưu ý rằng file CSV phải được đọc trực tiếp bởi PostgreSQL server, chứ không phải bởi client application. Do đó, PostgreSQL server phải truy cập được file CSV. Ngoài ra, bạn cần có quyền truy cập superuser để thực thi thành công câu lệnh COPY.
2. Sử dụng giao diện pgAdmin
Sử dụng phương pháp này trong trường hợp bạn cần import trực tiếp file CSV từ máy tính của mình vào bảng trên PostgreSQL database server.
Đầu tiên, thực thi truy vấn sau để clear data đã import ở trên vào bảng persons
TRUNCATE TABLE persons RESTART IDENTITY;
Sau đó, 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 > bỏ chọn cột id > click OK
Xong, chờ xíu là quá trình import hoàn tất, và sẽ hiện thông báo kết quả:
Xem thêm: Cách export dữ liệu của table PostgreSQL ra CSV file.
[…] 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ữ […]