Xử lý truy vấn dữ liệu trong TinyDB
Trong việc quản lý và xử lý dữ liệu trong các ứng dụng, việc thao tác với cơ sở dữ liệu là một phần không thể thiếu. TinyDB, một cơ sở dữ liệu NoSQL nhỏ gọn và dễ sử dụng, mang đến cho người dùng những phương thức hiệu quả để lưu trữ và truy xuất dữ liệu một cách linh hoạt. Một trong những tính năng quan trọng của TinyDB là khả năng lưu trữ nhiều mục dữ liệu cùng lúc bằng câu lệnh insert_multiple. Trong bài viết này, Mình sẽ cùng tìm hiểu cách sử dụng tính năng này, giúp bạn quản lý dữ liệu hiệu quả hơn trong các ứng dụng thực tế.
Lưu trữ nhiều dữ liệu cùng lúc trong TinyDB
đã thảo luận về cách sử dụng câu lệnh 'insert' để lưu dữ liệu vào cơ sở dữ liệu. Tương tự, bạn có thể sử dụng câu lệnh 'insert_multiple' để lưu nhiều mục dữ liệu cùng lúc. Dưới đây là cú pháp của câu lệnh 'insert_multiple' trong TinyDB:
db.insert_multiple([ { key1: value1, key2: value2, ..., keyN: valueN }, { key1: value1, key2: value2, ..., keyN: valueN } ])
Ở đây:
- key1, key2, ..., keyN là các trường trong cơ sở dữ liệu, và value1, value2, ..., valueN là các giá trị tương ứng mà bạn muốn lưu vào.
Ví dụ 1
Hãy xem cách chèn hai bản ghi sinh viên vào bảng 'student' bằng câu lệnh insert_multiple:
Bài viết này được đăng tại [free tuts .net]
from tinydb import TinyDB, Query db = TinyDB('student.json') db.insert_multiple([ { "roll_number":6, "st_name":"Siya", "mark":240, "subject":"NoSQL", "address":"pune" }, { "roll_number":7, "st_name":"Adam", "mark":210, "subject":"oracle", "address":"Keral" } ])
Sau khi thực hiện, nó sẽ trả về ID tài liệu của các bản ghi mới được lưu:
[6, 7]
Để kiểm tra xem các bản ghi mới đã được lưu vào cơ sở dữ liệu chưa, chúng ta có thể sử dụng phương thức all(), như sau:
db.all()
Nó sẽ hiển thị tất cả các bản ghi đã lưu trong bảng 'student':
[ { "roll_number":1, "st_name":"elen", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":2, "st_name":"Ram", "mark":[250, 280], "subject":["TinyDB", "MySQL"], "address":"delhi" }, { "roll_number":3, "st_name":"kevin", "mark":[180, 200], "subject":["oracle", "sql"], "address":"keral" }, { "roll_number":4, "st_name":"lakan", "mark":200, "subject":"MySQL", "address":"mumbai" }, { "roll_number":5, "st_name":"karan", "mark":275, "subject":"TinyDB", "address":"benglore" }, { "roll_number":6, "st_name":"Siya", "mark":240, "subject":"NoSQL", "address":"pune" }, { "roll_number":7, "st_name":"Adam", "mark":210, "subject":"oracle", "address":"Keral" } ]
Như bạn thấy, hai bản ghi sinh viên mới đã được lưu vào cơ sở dữ liệu.
Ví dụ 2
Trong ví dụ này, mình sẽ sử dụng insert_multiple với một vòng lặp for để chèn nhiều giá trị vào bảng cùng lúc. Sử dụng đoạn mã sau:
db.insert_multiple({'roll_number': 10, 'numbers': r} for r in range(3))
Câu lệnh này sẽ trả về ID tài liệu của các bản ghi mới được lưu:
[8, 9, 10]
Tiếp tục sử dụng phương thức all() để kiểm tra các bản ghi mới đã được lưu vào cơ sở dữ liệu hay chưa:
db.all()
Nó sẽ hiển thị tất cả các bản ghi đã lưu trong bảng 'student':
[ { "roll_number":1, "st_name":"elen", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":2, "st_name":"Ram", "mark":[250, 280], "subject":["TinyDB", "MySQL"], "address":"delhi" }, { "roll_number":3, "st_name":"kevin", "mark":[180, 200], "subject":["oracle", "sql"], "address":"keral" }, { "roll_number":4, "st_name":"lakan", "mark":200, "subject":"MySQL", "address":"mumbai" }, { "roll_number":5, "st_name":"karan", "mark":275, "subject":"TinyDB", "address":"benglore" }, { "roll_number":6, "st_name":"Siya", "mark":240, "subject":"NoSQL", "address":"pune" }, { "roll_number":7, "st_name":"Adam", "mark":210, "subject":"oracle", "address":"Keral" }, { "roll_number":10, "numbers":0 }, { "roll_number":10, "numbers":1 }, { "roll_number":10, "numbers":2 } ]
Chú ý ba dòng cuối cùng. Mình đã sử dụng phương thức insert_multiple kết hợp với vòng lặp for để chèn ba bản ghi mới vào bảng.
Kết bài
Câu lệnh insert_multiple trong TinyDB rất hữu ích khi bạn cần lưu nhiều bản ghi cùng một lúc. Với cú pháp dễ hiểu và tính linh hoạt, việc thao tác dữ liệu trở nên đơn giản và hiệu quả hơn, đặc biệt khi làm việc với khối lượng dữ liệu lớn.