Bảng tính có lẽ là một trong những yếu tố quan trọng nhất trong mọi tổ chức (dù thuộc loại hình nào). Thường sẽ có những tình huống bạn cần nhập một hoặc nhiều bảng tính rất quan trọng vào máy chủ cơ sở dữ liệu để có thể truy vấn hiệu quả. Trong hướng dẫn này, bạn sẽ học cách thực hiện điều đó trong PostgreSQL.
Hướng dẫn này giả định rằng bạn đã quen thuộc với SQL và cách viết các truy vấn SQL đơn giản trong PostgreSQL. Nếu bạn mới bắt đầu với SQL, dưới đây là một số tài nguyên có thể hữu ích cho bạn -
Hãy nhanh chóng xem ảnh chụp (chứa 10 hàng đầu tiên) của bảng tính -
Bảng tính chứa thông tin của một số sinh viên đại học.
Từ ảnh chụp, ta có thể suy ra kiểu dữ liệu có thể có của các cột -
ID, Age và Percentage Marks là các cột số. Cụ thể hơn, ID và Age có thể là kiểu integer và cột Percentage Marks có thể là kiểu float.
Cột Name là kiểu ký tự.
Cách dễ nhất để nhập bảng tính này (bạn cũng có thể gọi là tập dữ liệu) vào cơ sở dữ liệu PostgreSQL là trước tiên chuyển bảng tính thành tệp .csv rồi nhập tệp đó vào PostgreSQL. CSV là viết tắt của comma-separated values (giá trị phân tách bằng dấu phẩy). Cách này có hai ưu điểm chính -
Tệp .csv nhẹ hơn nhiều so với bảng tính nên dễ xử lý hơn khi bộ nhớ thấp.
PostgreSQL có nhiều tiện ích tích hợp để xử lý tệp .csv một cách hiệu quả.
Mọi trình soạn thảo Excel đều cho phép bạn chuyển bảng tính thành tệp .csv. Trên Google Sheets, bạn có thể thực hiện theo đường dẫn: File -> Download as -> Comma-separated values.
Nhập tệp .csv vào cơ sở dữ liệu PostgreSQL
Bây giờ, để có thể nhập tệp .csv bạn vừa tạo vào một cơ sở dữ liệu PostgreSQL, trước hết bạn cần có một cơ sở dữ liệu PostgreSQL. Hãy nhanh chóng tạo một cơ sở dữ liệu bằng giao diện pgAdmin.
Bạn có thể tạo cơ sở dữ liệu với bất kỳ tên nào bạn muốn. Khi xong, bạn sẽ cần tạo một bảng trong cơ sở dữ liệu đó để chứa các bản ghi từ tệp .csv mà bạn sắp nhập. Hãy tạo một bảng tên Student_Records trong cơ sở dữ liệu bạn vừa tạo.
CREATE TABLE Student_Records
(
ID serial NOT NULL,
Name varchar(50),
Age SMALLINT,
Percentage_Marks float8
);
Bạn giữ nguyên kiểu dữ liệu của các cột như đã thảo luận ở trên. Để thuận tiện, bạn cũng giữ nguyên tên cột. Giờ hãy điều hướng đến bảng bạn vừa tạo trong pgAdmin, nhấp chuột phải vào bảng và chọn Import từ các tùy chọn. Tham khảo tại - https://www.loom.com/share/2eeb1a2c94bf4f928c3ffa5b1b72eef4.
Bạn có thể bỏ qua các lỗi xảy ra trong quá trình nhập như thấy trong screencast. Bạn có thể kiểm tra các bản ghi đã được nhập đúng hay chưa bằng cách chạy truy vấn select.
Giờ hãy xem cách thực hiện điều trên bằng cửa sổ lệnh psql. Để làm vậy, trước tiên hãy làm rỗng bảng Student_Records bằng truy vấn truncate table Student_Records;.
Bây giờ, mở một cửa sổ lệnh psql trông như sau -
Tiếp theo, chuyển sang cơ sở dữ liệu bạn đã tạo để nhập bảng tính ban đầu. Bạn có thể chuyển sang một cơ sở dữ liệu trong PostgreSQL bằng lệnh sau -
\c database_name
Nếu kết nối thành công, dấu nhắc psql sẽ chuyển thành tên cơ sở dữ liệu bạn chỉ định. Giờ bạn có thể dùng lệnh sau để nhập tệp .csv vào bảng Students_Records -
COPY Student_Records(ID,Name,Age,Percentage_Marks) FROM 'D:\Students.csv' DELIMITER ',' CSV HEADER;
Bây giờ hãy thực thi một truy vấn select để kiểm tra việc nhập đã đúng hay chưa.
Bạn có thể tìm hiểu thêm về lệnh Copy từ đây và thử nghiệm với các tùy chọn khác nhau của nó.
Kết luận
Đó là tất cả cho hướng dẫn này. Giờ đây bạn có thể nhập một bảng tính vào PostgreSQL và thực hiện phân tích giống như với các bảng SQL tiêu chuẩn.