ওরিয়েন্টডিবি (OrientDB) একটি মাল্টি-মডেল ডেটাবেস সিস্টেম যা ডকুমেন্ট এবং গ্রাফ ডেটাবেস মডেল সমর্থন করে। ডেটা ম্যানিপুলেশন এবং অনুসন্ধান করার জন্য, ওরিয়েন্টডিবি SQL-ভিত্তিক কুয়েরি ভাষা ব্যবহার করে, যা ডেভেলপারদের পরিচিত কুয়েরি ভাষায় ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সাহায্য করে। এর মধ্যে WHERE, ORDER BY, এবং GROUP BY কুয়েরি ক্লজগুলো বিশেষভাবে গুরুত্বপূর্ণ, যেগুলি ডেটার মধ্যে নির্দিষ্ট শর্ত দিয়ে অনুসন্ধান, সাজানো, এবং গ্রুপিং করতে ব্যবহৃত হয়।
WHERE ক্লজ ব্যবহার
WHERE ক্লজ ব্যবহার করে আপনি নির্দিষ্ট শর্ত বা কন্ডিশন মেনে ডেটা ফিল্টার করতে পারেন। এটি একটি শর্ত নির্ধারণ করে, যার মাধ্যমে কেবলমাত্র সেই ডেটা রিটার্ন হয় যা শর্তের সাথে মেলে।
WHERE ক্লজ এর সিনট্যাক্স:
SELECT * FROM ClassName WHERE condition;
এখানে, ClassName হচ্ছে ডেটাবেসের ক্লাস বা টেবিলের নাম এবং condition হচ্ছে আপনার ফিল্টার শর্ত।
উদাহরণ:
SELECT * FROM Person WHERE age > 30;
এখানে, Person ক্লাস থেকে কেবল সেই রেকর্ডগুলো ফিরিয়ে আসবে, যেখানে age ৩০ এর বেশি।
আরও উদাহরণ:
SELECT * FROM Product WHERE price < 100 AND stock > 0;
এখানে, Product ক্লাস থেকে সেগুলি নির্বাচন করা হবে যেগুলোর price 100 এর কম এবং stock 0 এর বেশি।
ORDER BY ক্লজ ব্যবহার
ORDER BY ক্লজ ব্যবহার করে আপনি ডেটাকে নির্দিষ্ট একটি কলামের মানের ওপর ভিত্তি করে সাজাতে পারেন। এটি ডেটা ASC (Ascending) বা DESC (Descending) অর্ডারে সাজানোর জন্য ব্যবহৃত হয়।
ORDER BY ক্লজ এর সিনট্যাক্স:
SELECT * FROM ClassName ORDER BY columnName [ASC | DESC];
এখানে, columnName হচ্ছে সেই কলামের নাম যার ভিত্তিতে ডেটা সাজানো হবে এবং আপনি চাইলে ASC (অ্যসেন্ডিং) বা DESC (ডেসেন্ডিং) অর্ডার নির্বাচন করতে পারেন। ডিফল্টভাবে, এটি ASC অর্ডারে সাজায়।
উদাহরণ:
SELECT * FROM Person ORDER BY age DESC;
এখানে, Person ক্লাসের ডেটা age কলামের মান অনুসারে ডেসেন্ডিং অর্ডারে সাজানো হবে।
আরও উদাহরণ:
SELECT name, price FROM Product ORDER BY price ASC;
এখানে, Product ক্লাসের name এবং price কলাম থেকে ডেটা price অনুসারে অ্যাসেন্ডিং অর্ডারে সাজানো হবে।
GROUP BY ক্লজ ব্যবহার
GROUP BY ক্লজ ব্যবহার করে আপনি একই ধরনের ডেটাকে একত্রিত করতে পারেন। এটি বিশেষভাবে ব্যবহার করা হয় যখন আপনাকে কোনো গ্রুপের ওপর কাজ করতে হয়, যেমন গোষ্ঠীভুক্ত ডেটা থেকে অগ্রীগেট ফাংশন যেমন COUNT, SUM, AVG ইত্যাদি ব্যবহার করা।
GROUP BY ক্লজ এর সিনট্যাক্স:
SELECT columnName, aggregateFunction(columnName) FROM ClassName GROUP BY columnName;
এখানে, columnName হলো সেই কলাম যার ভিত্তিতে গ্রুপিং হবে, এবং aggregateFunction হলো সেই ফাংশন যা গ্রুপ করা ডেটার ওপর প্রযোজ্য হবে (যেমন COUNT, SUM, AVG)।
উদাহরণ:
SELECT age, COUNT(*) FROM Person GROUP BY age;
এখানে, Person ক্লাস থেকে age অনুযায়ী ডেটা গ্রুপ করা হবে এবং প্রতিটি বয়সের জন্য কতজন ব্যক্তি আছেন তা গোনা হবে।
আরও উদাহরণ:
SELECT department, AVG(salary) FROM Employee GROUP BY department;
এখানে, Employee ক্লাসের salary কলামের গড় মান (Average) প্রতি department অনুযায়ী গণনা করা হবে।
WHERE, ORDER BY, এবং GROUP BY একসাথে ব্যবহার
এই তিনটি ক্লজ একসাথে ব্যবহার করে আপনি আরও জটিল কুয়েরি তৈরি করতে পারেন, যেমন প্রথমে ডেটা ফিল্টার করা, তারপর সাজানো এবং শেষে গ্রুপ করা।
উদাহরণ:
SELECT department, AVG(salary) FROM Employee WHERE age > 30 GROUP BY department ORDER BY AVG(salary) DESC;
এখানে:
WHERE age > 30প্রথমে ৩০ বছরের বেশি বয়সের কর্মীদের নির্বাচন করবে।GROUP BY departmentতাদের বিভাগ অনুসারে গ্রুপ করবে।ORDER BY AVG(salary) DESCগড় বেতন (salary) অনুযায়ী ডেসেন্ডিং অর্ডারে সাজাবে।
সারাংশ
ওরিয়েন্টডিবি (OrientDB) SQL ভিত্তিক কুয়েরি ভাষা ব্যবহার করে ডেটাবেসে ডেটা ম্যানিপুলেশন করতে সক্ষম। WHERE, ORDER BY, এবং GROUP BY কুয়েরি ক্লজগুলো ডেটা ফিল্টারিং, সাজানো এবং গ্রুপিং করার জন্য ব্যবহার করা হয়। WHERE কুয়েরি দিয়ে শর্ত অনুসারে ডেটা ফিল্টার করা যায়, ORDER BY কুয়েরি দিয়ে ডেটা সাজানো যায় এবং GROUP BY কুয়েরি দিয়ে ডেটাকে গ্রুপ করে বিভিন্ন অগ্রীগেট ফাংশন প্রয়োগ করা সম্ভব। এই ক্লজগুলো একত্রে ব্যবহার করে আরও শক্তিশালী কুয়েরি তৈরি করা সম্ভব, যা ডেটাবেস ম্যানিপুলেশন এবং বিশ্লেষণে সহায়তা করে।
Read more