Danh sách Tutorial

Import file CSV vào PostgreSQL Database


Hầu hết hệ quản trị CSDL đều hỗ trợ import dữ liệu từ file CSV vào database. Tất nhiên là bạn cũng phải tuân theo các quy tắc mà chúng quy định. Bài viết dưới đây trên vinasupport.com sẽ hướng dẫn các bạn import dữ liêu trong file CSV một cách dễ dàng nhất.

Bước 1: Tạo bảng để import csv

Đầu tiên chúng ta tạo 1 bảng CSDL employee có các cột như sau:

  • employee_id: là ID của nhân viên
  • name: Tên nhân viên
  • email: Email của nhân viên
  • age: Tuổi

Các bạn tạo bằng câu lệnh SQL này:

CREATE TABLE IF NOT EXISTS public.employee
(
    employee_id bigint NOT NULL,
    name character varying(255) COLLATE pg_catalog."default" NOT NULL,
    email character varying(255) COLLATE pg_catalog."default" NOT NULL,
    age integer,
    CONSTRAINT employee_pkey PRIMARY KEY (employee_id)
)

Sau khi chạy câu lệnh SQL tạo bảng, chúng ta có bảng CSDL như sau:

Bứớc 2: Chuẩn bị dữ liệu trong file CSV

Với bảng kết quả như trên, vinasupport.com sẽ chuẩn bị 1 file csv có dữ liệu tương ứng như bên dưới:

"ID","Name","Email","Age"
1,"Nguyen Van A","a@gmail.com",21
2,"Nguyen Van B","b@gmail.com",18
3,"Nguyen Thi C","c@gmail.com",34
4,"Nguyen Khac D","d@gmail.com",34

Bước 3: Import CSV và database trên PostgreSQL

Để import dữ liệu trực tiếp vào PostgreSQl chúng ta dùng câu lệnh COPY giống như ví dụ sau:

COPY employee(employee_id, name, email, age)
FROM '/home/vinasupport.com/Documents/test.csv'
DELIMITER ','
CSV HEADER;

Trong đó:

  • DELIMITER: Là ký tự ngăn cách giữa các field
  • CSV HEADER: Báo cho chúng ta biết là file CSV có header. Nó sẽ tự động bỏ qua dòng đầu tiên.

Kết quả sau khi import thành công:

Việc import dữ liệu bằng CSV dược thực hiên rất nhanh chóng. Tuy nhiên dữ liệu import vào sẽ chỉ được validate cơ bản với kiểu dữ liệu của của từng column. Vì vậy bạn chỉ nên sử dụng import bằng CSV trong trường hợp dữ liệu đã được chuẩn hóa hoặc trường hợp sao lưu và phục hồi lại bằng CSV.

Nguồn: vinasupport.com

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web