TinyDB-তে টেবিল অ্যাক্সেস এবং কুয়েরি এক্সিকিউশন খুবই সহজ এবং সরল। এর জন্য table() মেথড এবং Query ক্লাস ব্যবহার করা হয়। প্রতিটি টেবিল JSON ফাইলের একটি অংশ হিসেবে কাজ করে এবং ডেটার উপর কার্যকর কুয়েরি চালানো যায়।
টেবিল অ্যাক্সেস (Table Access)
TinyDB-তে ডিফল্ট টেবিল ছাড়াও কাস্টম টেবিল তৈরি করা যায়। টেবিল অ্যাক্সেস করার জন্য .table() মেথড ব্যবহার করা হয়।
উদাহরণ: টেবিল তৈরি এবং অ্যাক্সেস
from tinydb import TinyDB
# ডাটাবেস তৈরি
db = TinyDB('db.json')
# ডিফল্ট টেবিল ব্যবহার
default_table = db.default_table_name # '_default'
# কাস্টম টেবিল তৈরি এবং অ্যাক্সেস
users_table = db.table('users')
products_table = db.table('products')
# ডেটা যোগ করা
users_table.insert({'name': 'Rahim', 'age': 30})
products_table.insert({'name': 'Laptop', 'price': 50000})
# টেবিলের ডেটা দেখতে
print(users_table.all()) # [{'name': 'Rahim', 'age': 30}]
print(products_table.all()) # [{'name': 'Laptop', 'price': 50000}]
কুয়েরি এক্সিকিউশন (Query Execution)
TinyDB-তে কুয়েরি চালানোর জন্য Query ক্লাস ব্যবহার করা হয়। এতে বিভিন্ন শর্ত যোগ করে ডেটা ফিল্টার করা যায়।
উদাহরণ: কুয়েরি তৈরি এবং এক্সিকিউট করা
from tinydb import TinyDB, Query
# ডাটাবেস তৈরি এবং টেবিল অ্যাক্সেস
db = TinyDB('db.json')
users_table = db.table('users')
# Query ক্লাস ব্যবহার করে শর্ত তৈরি
User = Query()
# ডেটা অনুসন্ধান (Search)
result = users_table.search(User.name == 'Rahim')
print(result) # [{'name': 'Rahim', 'age': 30}]
# ডেটা আপডেট (Update)
users_table.update({'age': 35}, User.name == 'Rahim')
# ডেটা মুছে ফেলা (Remove)
users_table.remove(User.age < 20)
# সব ডেটা দেখতে
print(users_table.all())
কুয়েরি এক্সিকিউশনের বিভিন্ন অপশন
১. Search (ডেটা অনুসন্ধান): কুয়েরি অনুযায়ী ডেটা অনুসন্ধান করতে .search() মেথড ব্যবহার করা হয়। এটি ডেটার তালিকা প্রদান করে।
users_table.search(User.age > 25)
২. Get (একটি নির্দিষ্ট রেকর্ড পেতে): ডেটার মধ্যে একটি মাত্র রেকর্ড পেতে .get() মেথড ব্যবহার করা হয়।
users_table.get(User.name == 'Rahim')
৩. Update (ডেটা আপডেট): এক বা একাধিক রেকর্ড আপডেট করতে .update() মেথড ব্যবহার করা হয়।
users_table.update({'city': 'Dhaka'}, User.name == 'Rahim')
৪. Remove (ডেটা মুছে ফেলা): শর্ত অনুযায়ী ডেটা মুছে ফেলার জন্য .remove() মেথড ব্যবহার করা হয়।
users_table.remove(User.age > 40)
৫. Count (ডেটা গণনা): ডেটার সংখ্যা গণনার জন্য .count() ব্যবহার করা হয়।
users_table.count(User.age > 25)
Table Management Tips
- ডিফল্ট টেবিল:
_defaultনামে একটি ডিফল্ট টেবিল সবসময় থাকে। - কাস্টম টেবিল ব্যবহার করুন: প্রজেক্টের ডেটা সেগ্রিগেশন সহজ করার জন্য কাস্টম টেবিল ব্যবহার করা উত্তম।
- Query ক্লাস ব্যবহার: কুয়েরি সহজ এবং দ্রুত করার জন্য Query ক্লাস ব্যবহার করুন।
সারাংশ
TinyDB-তে টেবিল অ্যাক্সেস এবং কুয়েরি এক্সিকিউশন সহজ এবং ব্যবহারবান্ধব। .table() মেথড দিয়ে কাস্টম টেবিল তৈরি এবং Query ক্লাস দিয়ে শর্ত অনুযায়ী ডেটা পরিচালনা করা যায়। এটি ছোট ও মাঝারি স্কেলের ডাটাবেস ব্যবস্থাপনার জন্য অত্যন্ত কার্যকর।
Read more