Câu chuyện bắt đầu với một table model đơn giản với các cột và kiểu dữ liệu như sau:
OK, giờ hãy tạo bảng với câu lệnh sau:
CREATE TABLE post (
id int PRIMARY KEY,
author_id int,
title text,
description text,
view_count int,
created_at timestamp,
published_at timestamp
)
thu được kết quả:
OK, bảng đã có, giờ tới khâu insert dữ liệu mẫu vào bảng
Có 2 cách:
- Dùng câu lệnh INSERT. Cách này dân dã, quen thuộc, dễ làm; cơ mà nếu như phải INSERT khoảng 2000 bản ghi vào bảng thì ... :D
- Dùng Mockaroo. Cách này tinh tế hơn ;)
Bắt đầu với cách 1 trước. Rất đơn giản, sử dụng câu lệnh INSERT:
INSERT INTO post (id, author_id, title, description, view_count, created_at, published_at) VALUES
(1, 1, ‘Hello World’, ‘This is the first post’, 10, ‘2018–07–19 19:00:00’, ‘2018–07–19 20:00:00’)
thu được kết quả:
Bản ghi đầu tiên, yay !!!
Nếu bạn muốn bảng có 10 bản ghi --> INSERT 10 bản ghi, kiểu như này:
Nếu muốn 100 bản ghi --> INSERT 100 bản ghi
Oh wait, I have a bad feeling about this !!!
Thế nếu như muốn có 1000 bản ghi thì ... ?
Thì bạn phải nhập bằng tay 1000 câu lệnh INSERT
Ok fine I quit :)
Bình tĩnh !!! Trước khi bỏ cuộc, hãy dùng thử Mockaroo
Truy cập trang https://mockaroo.com/ → xuất hiện giao diện như hình dưới:
Với Mockaroo, ta có thể định nghĩa:
- Tên cột và kiểu dữ liệu tương ứng
- Thêm/xóa cột
- Số lượng bản ghi muốn insert (Với account free thì chỉ insert được tối đa 1000 bản ghi)
- Tên bảng
Với cấu trúc bảng post sẵn có, ta có thể dùng Mockaroo để setup dữ liệu cần insert theo các bước:
Bước 1: Định nghĩa tên cột
Lần lượt gõ các trường id, author_id, title, description, view_count, created_at, published_at vào từng ô trong mục Field Name. Nếu thiếu cột, hãy click vào nút Add Another Field
Bước 2: Định nghĩa kiểu dữ liệu cho từng cột
Trước tiên, hãy bắt đầu với cột id
Click vào ô Type bên cạnh ô id, xuất hiện cửa sổ popup như hình dưới:
Có 142 kiểu dữ liệu để lựa chọn
Do cột id ở bảng post có kiểu dữ liệu là integer và là PRIMARY KEY, ta hãy lựa chọn option là Row Number:
Xong cột id, giờ chuyển đến cột author_id
Với author_id, ta muốn phản ánh mối quan hệ một-nhiều giữa 2 đối tượng bài viết và tác giả: 1 tác giả có thể có nhiều bài viết. Do đó, cùng 1 author_id có thể xuất hiện ở nhiều dòng khác nhau, tương ứng với nhiều bài viết khác nhau.
Trước hết, hãy chọn kiểu dữ liệu cho author_id. Tương tự id, author_id cũng có kiểu integer, do đó hãy chọn Row Number. Các bước tương tự như đã làm với cột id
Sau khi chọn Row Number, click vào ô fx:
xuất hiện cửa sổ popup:
Bên trong cửa sổ popup, gõ đoạn lệnh ```random(1,10)``` vào ô text. Đoạn lệnh này có tác dụng sinh ra các số nguyên (do trước đó ta đã chọn kiểu dữ liệu là Row Number) ngẫu nhiên trong khoảng từ 1 đến 10. Điều này đảm bảo trong 1000 bản ghi mà ta insert vào thì sẽ có những bản ghi có author_id giống nhau
Sau đó chọn Apply
Xong cột author_id, giờ đến 2 cột title và description
2 cột này đều có kiểu dữ liệu text và đều cần dữ liệu là một chuỗi string tương đối dài, thường là một đoạn văn gồm một hoặc nhiều câu. Trong trường hợp này, hãy sử dụng kiểu dữ liệu là Sentences:
Như các bạn thấy, Mockaroo cho chúng ta xác định số lượng sentence tối thiểu và tối đa, như trên hình thì tôi lựa chọn cho title và description lần lượt là (1,2) và (1,5)
Xong 2 cột title và description, giờ chuyển sang cột view_count
Giống với cột id, view_count cũng có kiểu dữ liệu integer. Tuy nhiên, cột id có PRIMARY KEY constraint, còn view_count thì không. Vì thế, thay vì dùng Row Number, ta sẽ dùng kiểu dữ liệu Number:
Giống như Sentences, với kiểu dữ liệu Number, Mockaroo cũng cho phép người dùng xác định giá trị min, max. Như ở trên hình, tôi xác định min = 100 và max = 500
2 cột cuối cùng cần định nghĩa kiểu dữ liệu là created_at và published_at:
Trong data model, created_at và published_at có kiểu dữ liệu timestamp. Với Mockaroo, ta sẽ dùng kiểu dữ liệu Date cùng với option SQL datetime:
OK, chúng ta đã định nghĩa xong tên cột và các kiểu dữ liệu tương ứng. Giờ hãy định nghĩa nốt tên bảng và số lượng bản ghi cần insert:
Cần insert 1000 bản ghi vào bảng post
Tên bảng: post
Số lượng bản ghi: 1000 (Nếu muốn nhiều hơn 1000 bản ghi, bạn cần đăng kí premium account)
OK mọi thứ đã sẵn sàng !!! Bạn có thể click vào ô Preview để xem trước dữ liệu được insert:
Preview 100 bản ghi đầu tiên
Sau khi preview và thấy ưng ý, hãy click vào nút download. File download dưới dạng đuôi .sql. Hãy open file này lên và copy toàn bộ nội dung file vào pgAdmin, sau đó execute để tiến hành insert 1000 bản ghi vào bảng post:
Mở file .sql vừa download
Copy toàn bộ nội dung file .sql vào pgAdmin và chạy câu lệnh !!!
XIN CHÚC MỪNG !!! Các bạn vừa insert thành công 1000 bản ghi vào bảng post chỉ với một vài bước setup đơn giản với Mockaroo.
Với Mockaroo, việc giả lập dữ liệu chưa bao giờ dễ dàng đến thế !
(Tất nhiên sẽ còn dễ dàng hơn nếu bạn đồng ý trả cho Mockaroo một ít xèng để được dùng gói premium account :v)
Techmaster liên tục khai giảng các khoá học mới trong tháng 1 và tháng 2 năm 2020. Xem chi tiết lịch khai giảng tại đây
Bình luận