Subquery এবং Nested Query

MariaDB এডভান্সড কুয়েরি - মারিয়া ডিবি (MariaDB) - Database Tutorials

327

মারিয়া ডিবি (MariaDB) তে Subquery এবং Nested Query হল দুটি গুরুত্বপূর্ণ ধারণা, যেগুলি ডেটাবেসের জটিল এবং অত্যাধুনিক প্রশ্নগুলি কার্যকরভাবে পরিচালনা করতে সাহায্য করে।


Subquery কী?

Subquery বা সাবকোয়েরি হলো একটি SQL প্রশ্ন (query), যা আরেকটি প্রধান (outer) প্রশ্নের মধ্যে থাকে। সহজ ভাষায়, এটি মূল প্রশ্নের অংশ হিসেবে আরেকটি প্রশ্নের ফলাফল ব্যবহার করে। সাবকোয়েরি সাধারণত SELECT, INSERT, UPDATE, বা DELETE কমান্ডে ব্যবহার করা হয়।

Subquery এর ধরন

  1. ইনলাইন সাবকোয়েরি (Inline Subquery): যেখানে সাবকোয়েরি প্রধান প্রশ্নের মধ্যে সরাসরি ব্যবহৃত হয়।
  2. স্কেলার সাবকোয়েরি (Scalar Subquery): যেখানে সাবকোয়েরি শুধুমাত্র একটি একক মান প্রদান করে।
  3. ইন সাবকোয়েরি (IN Subquery): যেখানে সাবকোয়েরি একটি তালিকা প্রদান করে এবং মূল প্রশ্নের সাথে তুলনা করা হয়।
  4. এগেইন সাবকোয়েরি (Existential Subquery): যেখানে সাবকোয়েরি একটি ফলাফল প্রদান করে, যা নির্ধারণ করে যে কোনো রেকর্ড বিদ্যমান কিনা।

উদাহরণ:

SELECT Name
FROM Employees
WHERE DepartmentID IN (SELECT DepartmentID FROM Departments WHERE DepartmentName = 'Sales');

এখানে, সাবকোয়েরি (SELECT DepartmentID FROM Departments WHERE DepartmentName = 'Sales') প্রথমে কার্যকর হবে এবং তার ফলাফল মূল প্রশ্নে (Employees টেবিল থেকে নাম বের করা) ব্যবহার হবে।


Nested Query কী?

Nested Query বা নেস্টেড কোয়েরি হলো এমন একটি SQL প্রশ্ন, যেখানে একটি কোয়েরি অন্য একটি কোয়েরির মধ্যে লেখা থাকে। এটি মূলত Subquery এর সমার্থক, তবে অনেক সময় এটি আরও জটিল প্রশ্ন গঠনে ব্যবহৃত হয়।

নেস্টেড কোয়েরি সাধারণত দুই বা তার বেশি স্তরের (layered) কোয়েরি তৈরি করে। একে আরো জটিল প্রশ্নের ক্ষেত্রে ব্যবহার করা হয় যেখানে একাধিক ডেটা সোর্স থেকে তথ্য সংগ্রহ করা হয়।

উদাহরণ:

SELECT Name
FROM Employees
WHERE Salary > (SELECT AVG(Salary) FROM Employees);

এখানে, প্রথম কোয়েরি Employees টেবিল থেকে সেলারি গুণে AVG(Salary) (একটি সাবকোয়েরি) এর মাধ্যমে প্রাপ্ত গড় সেলারির তুলনা করছে।


Subquery এবং Nested Query এর পার্থক্য

মোটামুটিভাবে, Subquery এবং Nested Query একে অপরের সমার্থক হলেও, কিছু নির্দিষ্ট কনটেক্সটে তাদের ব্যবহার বা জটিলতা আলাদা হতে পারে:

  • Subquery সাধারণত একক বা ছোট স্তরের কোয়েরি হিসেবে ব্যবহৃত হয়।
  • Nested Query সাধারণত একাধিক স্তরের (nested layers) কোয়েরি তৈরি করতে ব্যবহৃত হয়, যা বেশি জটিল প্রশ্নের জন্য উপযুক্ত।

Subquery এবং Nested Query এর ব্যবহার

Complex Filtering

Subquery এবং Nested Query মূলত complex filtering এর জন্য ব্যবহৃত হয়, যেখানে একাধিক টেবিলের তথ্য তুলনা বা একসাথে মিলিয়ে দেখার প্রয়োজন হয়।

Performance Consideration

কখনো কখনো Subquery এর ব্যবহার পারফরম্যান্সের ক্ষেত্রে সমস্যার সৃষ্টি করতে পারে, বিশেষ করে যখন সাবকোয়েরি খুব বড় বা জটিল হয়। সেক্ষেত্রে JOIN বা অন্য অপটিমাইজেশন পদ্ধতি ব্যবহার করা হতে পারে।


মারিয়া ডিবি তে Subquery এবং Nested Query এর সঠিক ব্যবহার আপনাকে আরো জটিল ডেটাবেস প্রশ্নগুলি সহজে সমাধান করতে সাহায্য করবে, এবং এগুলি পারফরম্যান্সের দিক থেকেও কার্যকর হতে পারে যদি সঠিকভাবে ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...