Tạo dữ liệu giả trong CSDL

Chắc các dev hay test đều rất ngán ngẩm việc phải tạo dữ liệu giả để test chương trình và fixbug. Đây đúng là 1 cơn ác mộng khi cứ phải hì hục gõ từng dòng vào trong CSDL nếu mà chương trình còn nhiều lỗi thậm chí là ko chạy được ở nhiều chức năng. Ngoài ra do đây là 1 công việc khá nhàm chán nên các bạn hầu như chỉ có copy paste nên dữ liệu hiển thị ra toàn là test1, test2…

Mấy bạn test bên mình thì có hẳn 1 file word chuyên để copy ra, mấy lần mang đi demo khách hàng toàn là “ông nội tôi, bà cô tôi…” =))

Chính vì thế trong bài viết này mình muốn chia sẻ các bạn 1 số cách để tạo dữ liệu mà mình hay sử dụng

Sql Data Generator

Đây là 1 công cụ của RedGate, 1 công ty khá mạnh về các tool hỗ trợ cho Sql. Các bạn tham khảo http://www.red-gate.com/products/sql-development/sql-data-generator/

Sau khi cài đặt thì chỉ cần chọn CSDL mà bạn đang cần tạo dữ liệu

Untitled

 

Rồi nhấn nút Generate Data thế là xong. Thật đơn giản phải không

Sử dụng website

Hiện tại trên mạng có khá nhiều trang hỗ trợ việc sinh dữ liệu. Chúng ta chỉ cần nhập thông tin các trường dữ liệu, kiểu dữ liệu là sẽ được các trang web này hỗ trợ tạo ra dữ liệu và có thể tải file scripts hoặc CSV hay Excel mang về chạy ở Database là được

Mình xin liệt kê 1 số trang web như

https://www.mockaroo.com/

http://www.databasetestdata.com/

http://dummydata.me/generate

…………….

Sử dụng lệnh trong SQL

Đây là cách mình hay sử dụng nhất vì dữ liệu các công cụ và website kia sinh ra nhiều khi chưa đúng hết được các nghiệp vụ mà chương trình của mình yêu cầu. Các bạn có thể tham khảo thêm nhé vì cách này cũng phức tạp và lâu hơn 2 cách trên :P. Tuy nhiên lợi thế là có thể áp dụng cho nhiều loại CSDL khác nhau.

Trong Oracle

insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;

Câu lệnh trên sẽ tạo 100 bản ghi có tên từ Employee1 đến Employee 100 và sinh ra ngẫu nhiên mức lương từ 2000 đến 9000.

2 kĩ thuật chính ở đây là

  • Sử dụng connect by level<= n để tạo ra n dòng từ dual
  • Sử dụng gói dbms_random để sinh ra giá trị ngẫu nhiên

Trong Sql thì bạn có thể sử dụng While để thực hiện

Declare @i int=0;

While(@i <=100)

begin

insert into Employee(‘Employee’ + @i, RAND())

@i=@i+1

end

Các bạn còn cách nào thì có thể chia sẻ thêm nhé 😀

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s