Truy xuất dữ liệu trong TinyDB
Trong quá trình xây dựng và quản lý cơ sở dữ liệu, việc truy xuất dữ liệu là một trong những thao tác quan trọng và cần thiết nhất. TinyDB, một cơ sở dữ liệu NoSQL nhỏ gọn và linh hoạt, cung cấp nhiều phương thức tiện lợi để giúp người dùng lấy dữ liệu nhanh chóng và hiệu quả. Với TinyDB, bạn có thể dễ dàng tìm kiếm, truy xuất hoặc lọc thông tin từ các tập tin JSON mà không cần cấu hình phức tạp. Bài viết này sẽ giới thiệu một số phương thức cơ bản để truy xuất dữ liệu trong TinyDB, giúp bạn nắm vững cách làm việc với hệ thống cơ sở dữ liệu nhỏ gọn này.
TinyDB cung cấp nhiều cách để truy xuất dữ liệu từ cơ sở dữ liệu. Tuy nhiên, để có thể sử dụng các phương pháp đó, trước tiên bạn cần tạo một thể hiện của lớp Query
như sau:
from tinydb import Query Student = Query()
Trong đó, Student
là tên bảng cơ sở dữ liệu mà bạn sẽ truy xuất thông tin.
Dưới đây là các cách khác nhau để lấy dữ liệu từ cơ sở dữ liệu TinyDB.
Bài viết này được đăng tại [free tuts .net]
Truy xuất dữ liệu bằng phương thức search()
trong TinyDB
Phương thức search()
sẽ trả về danh sách các mục khớp với điều kiện truy vấn mà bạn cung cấp. Nếu không có mục nào phù hợp, nó sẽ trả về danh sách trống.
Trong các ví dụ sau, chúng ta sẽ sử dụng dữ liệu của bảng student
như sau:
[ { "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" } ]
Ví dụ sử dụng phương thức search()
để tìm sinh viên có môn học là TinyDB
:
from tinydb import TinyDB, Query db = TinyDB("leekha.json") student = Query() db.search(student.subject == 'TinyDB' )
Kết quả sẽ là:
[ { "roll_number": 1, "st_name": "elen", "mark": 250, "subject": "TinyDB", "address": "delhi" }, { "roll_number": 5, "st_name": "karan", "mark": 275, "subject": "TinyDB", "address": "benglore" } ]
Truy xuất dữ liệu bằng phương thức get()
trong TinyDB
Phương thức get()
chỉ trả về một mục khớp với điều kiện truy vấn. Nếu không tìm thấy, nó sẽ trả về None
.
Ví dụ:
from tinydb import TinyDB, Query student = Query() db.get(student.subject == 'TinyDB' )
Kết quả sẽ là:
{'roll_number': 1, 'st_name': 'elen', 'mark': 250, 'subject': 'TinyDB', 'address': 'delhi'}
Truy xuất dữ liệu bằng phương thức all()
trong TinyDB
Phương thức all()
sẽ trả về tất cả các mục trong cơ sở dữ liệu.
Ví dụ:
db.all()
Kết quả sẽ là toàn bộ dữ liệu của 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" } ]
Truy xuất dữ liệu bằng vòng lặp for
trong TinyDB
Vòng lặp for
cũng có thể được sử dụng để duyệt qua tất cả các mục trong cơ sở dữ liệu.
Ví dụ:
for info in db: print(info)
Cách này sẽ trả về tất cả các mục từ cơ sở dữ liệu, tương tự như phương thức all()
.
Kết bài
Qua bài viết này, chúng ta đã tìm hiểu cách truy xuất dữ liệu trong TinyDB bằng các phương thức như search()
, get()
, all()
, và sử dụng vòng lặp for
. TinyDB cung cấp các công cụ đơn giản nhưng mạnh mẽ để làm việc với cơ sở dữ liệu dưới dạng file JSON, đặc biệt phù hợp cho các dự án nhỏ hoặc cá nhân. Với khả năng truy vấn linh hoạt, TinyDB không chỉ giúp việc quản lý dữ liệu trở nên dễ dàng mà còn mang lại sự tiện lợi cho người dùng trong quá trình phát triển ứng dụng.