Set Operators হল SQL কমান্ডগুলোর একটি গ্রুপ যা একাধিক কুয়েরির ফলাফল একত্রিত করতে ব্যবহৃত হয়। এই অপারেটরগুলির মাধ্যমে, আপনি দুটি বা তার বেশি সিলেক্ট কুয়েরির রেজাল্ট সেটকে একত্রিত, পর্যালোচনা বা তুলনা করতে পারেন। টেরাডেটাতে, UNION, INTERSECT, এবং EXCEPT হল তিনটি প্রধান Set Operators, যা ডেটার একাধিক সিলেক্ট স্টেটমেন্টের মধ্যে সমন্বয় করতে সহায়তা করে।
এগুলি সাধারণত ডেটা সেটের মধ্যে সাধারণ বা অমিল ডেটা বের করতে ব্যবহৃত হয় এবং সিস্টেমের পারফরম্যান্সের সাথে সামঞ্জস্য রেখে কাজ করে।
1. UNION
UNION অপারেটর দুটি বা তার বেশি সিলেক্ট স্টেটমেন্টের রেজাল্ট সেটকে একত্রিত করতে ব্যবহৃত হয় এবং সাধারণত ডুপ্লিকেট রেকর্ড সরিয়ে ফেলে। এটি দুটি সিলেক্ট কুয়েরির মধ্যে একই কলামের ডেটা একত্রিত করে, তবে ডুপ্লিকেট রেকর্ড বাদ দেওয়া হয়।
সিনট্যাক্স:
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
বৈশিষ্ট্য:
- ডুপ্লিকেট রেকর্ড বাদ দেওয়া: UNION কেবল একাধিক সিলেক্ট স্টেটমেন্টের মধ্যে পৃথক রেকর্ড রিটার্ন করে।
- কলামের সংখ্যা এবং ধরন: দুটি সিলেক্ট কুয়েরির মধ্যে কলামের সংখ্যা এবং ডেটা টাইপ একে অপরের সাথে মেলাতে হবে।
- পারফরম্যান্স: UNION তুলনামূলকভাবে ধীর হতে পারে কারণ এটি ডুপ্লিকেট রেকর্ডগুলো অপসারণ করে।
উদাহরণ:
SELECT product_id, product_name FROM electronics
UNION
SELECT product_id, product_name FROM home_appliances;
এই কুয়েরিটি electronics এবং home_appliances টেবিলের মধ্যে ইউনিক প্রোডাক্ট আইডি এবং প্রোডাক্ট নামের তালিকা দেয়।
2. INTERSECT
INTERSECT অপারেটর দুটি বা তার বেশি সিলেক্ট স্টেটমেন্টের মধ্যে কমন রেকর্ড রিটার্ন করে, অর্থাৎ দুটি কুয়েরির মধ্যে যেসব রেকর্ড শুধুমাত্র সঠিক তা ফেরত আসে। এটি দুটি ডেটাসেটের মধ্যে সাধারণ রেকর্ডগুলোর সেট সরবরাহ করে।
সিনট্যাক্স:
SELECT column1, column2, ...
FROM table1
INTERSECT
SELECT column1, column2, ...
FROM table2;
বৈশিষ্ট্য:
- কমন রেকর্ড রিটার্ন: এটি দুটি কুয়েরির মধ্যে যা সাধারণ রেকর্ড থাকে তা রিটার্ন করবে।
- ডুপ্লিকেট রেকর্ড: INTERSECT কেবলমাত্র কমন রেকর্ড রিটার্ন করে, এবং ডুপ্লিকেট রেকর্ডগুলো বাদ দেওয়া হয়।
উদাহরণ:
SELECT product_id FROM electronics
INTERSECT
SELECT product_id FROM home_appliances;
এই কুয়েরি electronics এবং home_appliances টেবিলের মধ্যে কমন প্রোডাক্ট আইডি গুলোর তালিকা দিবে।
3. EXCEPT
EXCEPT অপারেটর দুটি সিলেক্ট স্টেটমেন্টের মধ্যে একটি ডেটা সেট থেকে অন্য ডেটা সেটের অমিল রেকর্ড রিটার্ন করে। এটি প্রথম কুয়েরির রেজাল্ট থেকে দ্বিতীয় কুয়েরির রেজাল্ট বাদ দেয়। অর্থাৎ, এটি প্রথম কুয়েরির মধ্যে এমন সমস্ত রেকর্ড ফিরিয়ে দেবে যা দ্বিতীয় কুয়েরিতে নেই।
সিনট্যাক্স:
SELECT column1, column2, ...
FROM table1
EXCEPT
SELECT column1, column2, ...
FROM table2;
বৈশিষ্ট্য:
- অমিল রেকর্ড রিটার্ন: EXCEPT কেবল প্রথম কুয়েরির রেজাল্টে থাকা রেকর্ড রিটার্ন করে যা দ্বিতীয় কুয়েরির রেজাল্টে নেই।
- ডুপ্লিকেট রেকর্ড বাদ দেওয়া: EXCEPT ডুপ্লিকেট রেকর্ডগুলো বাদ দিয়ে একমাত্র ইউনিক রেকর্ড রিটার্ন করবে।
উদাহরণ:
SELECT product_id FROM electronics
EXCEPT
SELECT product_id FROM home_appliances;
এই কুয়েরিটি electronics টেবিলের সমস্ত প্রোডাক্ট আইডি রিটার্ন করবে, যেগুলো home_appliances টেবিলে নেই।
পারফরম্যান্স বিষয়ক কিছু টিপস
ডুপ্লিকেট ডেটা: যদি আপনি নিশ্চিত থাকেন যে আপনার ডেটা ডুপ্লিকেট নেই, তবে UNION ALL ব্যবহার করতে পারেন, যা ডুপ্লিকেট রেকর্ড ছাড়া ডেটা দ্রুত ফেরত দেয়।
সিনট্যাক্স:
SELECT column1, column2 FROM table1 UNION ALL SELECT column1, column2 FROM table2;এটি UNION এর চেয়ে দ্রুত কারণ এটি ডুপ্লিকেট সরিয়ে দেয় না।
- বড় ডেটাসেটের ক্ষেত্রে: যদি বড় ডেটাসেটের উপর কাজ করছেন, তবে INTERSECT এবং EXCEPT ব্যবহারের আগে ডেটার যথাযথ ইনডেক্সিং করা প্রয়োজন, যাতে পারফরম্যান্সের উন্নতি হয়।
সারাংশ
Set Operators (UNION, INTERSECT, EXCEPT) SQL-এ ব্যবহৃত হয় ডেটার একাধিক রেজাল্ট সেটের মধ্যে সম্পর্ক স্থাপন করতে।
- UNION দুইটি বা তার বেশি কুয়েরির ফলাফল একত্রিত করে, তবে ডুপ্লিকেট রেকর্ড বাদ দেয়।
- INTERSECT দুটি কুয়েরির মধ্যে সাধারণ রেকর্ড রিটার্ন করে।
- EXCEPT একটি কুয়েরির রেজাল্ট থেকে অন্য কুয়েরির রেজাল্ট বাদ দেয় এবং অমিল রেকর্ড রিটার্ন করে।
এই অপারেটরগুলো ডেটা বিশ্লেষণ এবং পর্যালোচনায় গুরুত্বপূর্ণ ভূমিকা রাখে এবং একে অপরের মধ্যে সম্পর্ক স্থাপন করতে সহায়তা করে।
Read more