TINYDB USEFUL RESOURCES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Truy vấn dữ liệu TinyDB

TinyDB cung cấp một bộ công cụ truy vấn mạnh mẽ, với hai cách tiếp cận chính để xây dựng truy vấn: cách thứ nhất giống cú pháp của các công cụ ORM, và cách thứ hai là sử dụng câu lệnh "where" truyền thống.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong bài này, mình sẽ tìm hiểu hai cách xây dựng truy vấn trong cơ sở dữ liệu TinyDB.

Cách thứ nhất: Sử dụng Query trong TinyDB.

Cách đầu tiên giống với cú pháp của các công cụ ORM, trong đó đầu tiên chúng ta cần import lớp Query. Sau khi import, chúng ta có thể sử dụng đối tượng truy vấn này để thao tác với cơ sở dữ liệu TinyDB. Cú pháp như sau:

from tinydb import Query
student = Query()

Ở đây, student là tên của cơ sở dữ liệu chúng ta. Để hiểu rõ hơn, hãy sử dụng ví dụ với cơ sở dữ liệu sinh viên như sau:

Bài viết này được đăng tại [free tuts .net]

[
   {
      "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ụ

Dưới đây là một truy vấn để lấy dữ liệu từ cơ sở dữ liệu sinh viên với điều kiện roll_number nhỏ hơn 3:

>>> db.search(Query().roll_number < 3)

Hoặc:

>>> student = Query()
>>> db.search(student.roll_number < 3)

Truy vấn trên sẽ trả về kết quả:

[
   {
      "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"
   }
]

Đôi khi, tên trường không phải là một định danh hợp lệ trong Python. Trong trường hợp này, chúng ta sẽ không thể truy cập trường đó một cách thông thường. Để giải quyết, ta có thể sử dụng cú pháp từ điển như sau:

student = Query()

# Cú pháp không hợp lệ trong Python
db.search(student.security-code == 'ABCD')

# Sử dụng cú pháp từ điển
db.search(student['security-code'] == 'ABCD')

Cách thứ hai: Sử dụng câu lệnh "where" trong TinyDB.

Cách thứ hai là sử dụng câu lệnh "where" truyền thống để xây dựng truy vấn. Cú pháp như sau:

from tinydb import where
db.search(where('field') == 'value')

Ví dụ

Truy vấn TinyDB sử dụng câu lệnh "where" để tìm các bản ghi có môn học là MySQL:

db.search(where('subject') == 'MySQL')

Truy vấn trên sẽ trả về kết quả sau:

[
   {
      "roll_number": 4,
      "st_name": "lakan",
      "mark": 200,
      "subject": "MySQL",
      "address": "mumbai"
   }
]

Kết bài

TinyDB cung cấp hai cách mạnh mẽ và linh hoạt để thực hiện truy vấn dữ liệu, giúp chúng ta dễ dàng chọn cách tiếp cận phù hợp với từng trường hợp cụ thể. Dù sử dụng cú pháp tương tự ORM hay phương pháp truyền thống với câu lệnh "where", TinyDB vẫn đảm bảo tính đơn giản và hiệu quả trong quản lý dữ liệu.

Cùng chuyên mục:

Câu lệnh

Câu lệnh "where" trong TinyDB

Tìm kiếm dữ liệu trong  TinyDB

Tìm kiếm dữ liệu trong TinyDB

Xóa dữ liệu trong TinyDB

Xóa dữ liệu trong TinyDB

Cập nhật dữ liệu trong TinyDB

Cập nhật dữ liệu trong TinyDB

Truy xuất dữ liệu trong TinyDB

Truy xuất dữ liệu trong TinyDB

Chèn dữ liệu vào TinyDB

Chèn dữ liệu vào TinyDB

Hướng dẫn cài đặt và sử dụng TinyDB

Hướng dẫn cài đặt và sử dụng TinyDB

TinyDB là gì? Tìm hiểu về TinyDB

TinyDB là gì? Tìm hiểu về TinyDB

Top