SQL UNION অপারেটর
SQL UNION
অপারেটরটি দুই বা ততোধিক SELECT
স্টেটমেন্টের ফলাফল একত্রে প্রকাশ করতে পারে।
SQL UNION অপারেটর
SQL UNION
অপারেটরটি কোন ডুপ্লিকেট সারি ফেরত দেওয়া ছাড়াই দুই বা ততোধিক SELECT
স্টেটমেন্টের ফলাফল একত্রিত করে।
UNION
অপারেটর ব্যবহারের পূর্বশর্তঃ
- প্রতিটি
SELECT
স্টেটমেন্টে কলামের সংখ্যা অবশ্যই সমান থাকতে হবে। - কলাম-সমূহের ডেটা টাইপ একই হতে হবে।
SELECT
স্টেটমেন্টের সকল কলাম-সমূহ একই ক্রমে(order) থাকতে হবে।
SQL UNION সিনট্যাক্স
SELECT name_of_column's FROM first_table
UNION
SELECT name_of_column's FROM second_table;
বিঃদ্রঃ UNION
অপারেটরটি ডিফল্টভাবে একাধিক ভ্যালু শুধুমাত্র একবার সিলেক্ট করে। ডুপ্লিকেট(Duplicate) ভ্যালু পাওয়ার জন্য UNION
এর সাথে ALL
কিওয়ার্ড ব্যবহার করতে হবে।
SQL UNION ALL সিনট্যাক্স
SELECT name_of_column's FROM first_table
UNION ALL
SELECT name_of_column's FROM second_table;
UNION
এ ব্যবহৃত প্রথম স্টেটমেন্টের কলামের নাম ফলাফল টেবিলের কলামের নাম এর সমান হয়। সুতরাং প্রথম স্টেটমেন্টের কলামের নাম-ই ফলাফল টেবিলের কলামের নাম হয়।
নমুনা ডেটাবেজ
UNION
অপারেটরের ব্যবহার দেখানোর জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।
নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | শিক্ষার্থীর নাম | প্রতিষ্ঠানের নাম | ঠিকানা |
---|---|---|---|---|
১ | ১০১ | তামজীদ হাসান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
২ | ১০২ | মিনহাজুর রহমান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৩ | ১০৩ | মোঃ সবুজ হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৪ | ১০৪ | ইয়াসিন হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৫ | ১০৫ | ফরহাদ উদ্দিন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
নিচের অংশটি "Teacher_details" টেবিল থেকে নেওয়া হয়েছেঃ
রোল নাম্বার | শিক্ষার্থীর নাম | ঠিকানা |
---|---|---|
১০৪ | ইয়াসিন হোসেন | |
১০৫ | ফরহাদ উদ্দিন | |
১০৯ | ওয়াহিদুল ইসলাম |
SQL UNION উদাহরণ
নিম্নের SQL UNION
স্টেটমেন্টটি "Student_details" এবং "Teacher_details" টেবিল থেকে সকল "ঠিকানা(Address)" কলামকে সিলেক্ট করবে এবং শুধুমাত্র স্বতন্ত্র(Distinct) ভ্যালুগুলো নিয়ে আসবেঃ
উদাহরণ
SELECT Address FROM Student_details
UNION
SELECT Address FROM Teacher_details
ORDER BY Address;
বিঃদ্রঃ UNION
অপারেটরটি দ্বারা "ঠিকানা(Address)" কলামের সকল ডেটা পাওয়া যাবে না। যদি এক বা একাধিক "শিক্ষার্থী" অথবা "শিক্ষক" এর শহর একই হয় তাহলে শহরটি একবার-ই দেখাবে। অপরপক্ষে UNION ALL
ব্যবহার করলে সব গুলো শহরই একত্রে দেখাবে অর্থাৎ ডুপ্লিকেট ভ্যালু-সমূহও দেখাবে।
SQL UNION ALL উদাহরণ
নিম্নের SQL UNION ALL
স্টেটমেন্টটি "Student_details" এবং "Teacher_details" টেবিল থেকে সকল স্বতন্ত্র "ঠিকানা"-সহ ডুপ্লিকেট ঠিকানাও নিয়ে আসবেঃ
উদাহরণ
SELECT Address FROM Student_details
UNION ALL
SELECT Address FROM Teacher_details
ORDER BY Address;
উপরের উদাহরণটির ফলাফল নিম্নের ন্যায় দেখাবেঃ
আইডি | ঠিকানা |
---|---|
১ | ঢাকা |
২ | রাজশাহী |
৩ | চাঁদপুর |
৪ | বরিশাল |
৫ | সিলেট |
SQL UNION ALL এর সাথে WHERE Clause এর ব্যবহার
নিম্নের SQL UNION ALL
স্টেটমেন্টটি "Student_details" এবং "Teacher_details" টেবিল থেকে "ঢাকা" শহর বিশিষ্ট সকলের তথ্য(ডুপ্লিকেট ভ্যালুও) নিয়ে আসবেঃ
উদাহরণ
SELECT Student_name, Address FROM Student_details WHERE Address='ঢাকা'
UNION ALL
SELECT Teacher_name, Address FROM Teacher_details WHERE Address='ঢাকা'
ORDER BY Address;
উপরের উদাহরণটির ফলাফল নিম্নের ন্যায় দেখাবেঃ
আইডি | নাম | ঠিকানা |
---|---|---|
১ | ওয়াহিদুল ইসলাম | ঢাকা |
২ | মারুফ হোসেন | ঢাকা |
৩ | ফারুক আলম | ঢাকা |
৪ | মোঃ সাইফুল ইসলাম | ঢাকা |
৫ | নাদিমা আক্তার | ঢাকা |