আজকে আমাদের আলোচনার বিষয় – SQL এর সেট অপারেশন (ইউনিয়ন, ইন্টারসেক্ট এবং এক্সসেপ্ট)-এর ব্যবহারের বর্ণনা যা অধ্যায়-৫ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।
Table of Contents
SQL এর সেট অপারেশন (ইউনিয়ন, ইন্টারসেক্ট এবং এক্সসেপ্ট)-এর ব্যবহারের বর্ণনা
SQL-এর সেট অপারেশন (ইউনিয়ন, ইন্টারসেক্ট এবং এক্সসেপ্ট)-এর ব্যবহারের বর্ণনা
সেট অপারেশনঃ
যখন দুই বা ততোধিক Select স্টেটমেন্ট হতে একত্রিতভাবে রেজাল্ট উপস্থাপন করার প্রয়োজন হয়, সেক্ষেত্রে SQL সেট অপারেশন ব্যবহারের মাধ্যমে তা কার্যকর করে। SQL দিয়ে ডাটাবেসের উপর যে সেট অপারেশন চালানো সম্ভব, তা হচ্ছে-
- UNION ALL যাকে ‘U’ দ্বারা চিহ্নিত করা হয়।
- UNION যাকে ‘U’ দ্বারা চিহ্নিত করা হয়।
- INTERSECT যাকে ‘গ’ দ্বারা চিহ্নিত করা হয়।
- EXCEPT/MINUS যাকে দ্বারা চিহ্নিত করা হয়।
UNION ALL |
একটি রেজাল্ট সেটের ভেতর দু’টি SELECT স্টেটমেন্টের সমন্বিত উপস্থাপনই এর কাজ।
|
UNION |
একটি রেজাল্ট সেটের ভেতর দু’টি SELECT স্টেটমেন্টের সমন্বিত উপস্থাপন এবং তারপর রেজাল্ট সেট থেকে যে কোন ডুপ্লিকেট রেকর্ডকে সরিয়ে ফেলবে।
|
INTERSECT | উভয় কুয়েরি থেকে প্রাপ্ত কেবলমাত্র ডুপ্লিকেট রেকর্ডসমূহ বিবেচনা করবে। |
MINUS |
প্রথম কুয়েরি থেকে ২য় কুয়েরির ফলাফলকে বাদ দিয়ে বাকি অবশিষ্ট রেকর্ডগুলো বিবেচনা করবে।
|
নিম্নোক্ত চিত্র থেকে UNION ALL, UNION, INTERSECT এবং MINUS ক্লোজ সর্ম্পকে ধারণা নেয়া যাক-
UNION ALL ক্লোজ
উদাহরণঃ নিম্নে আমরা emp টেবিলের 10 নং ডিপার্টমেন্ট এবং 30 নং ডিপার্টমেন্টে যে সকল Job আছে, তা ব্যবহার করি। এখন দু’টি ডিপার্টমেন্ট নং এর ডাটাগুলো দেখিঃ
SQL> Select job From emp
2 Where deptno=18;
JOB |
MANAGER |
PRESIDENT |
CLERK |
এবং
SQL> Select job From emp
2 Where deptno = 30;
JOB |
SALESMAN |
SALESMAN |
SALESMAN |
MANACER |
SALESMAN |
CLERK |
6 rows selected.
উপরোক্ত ডিপার্টমেন্ট নং দু’টির Job-সমূহ থেকে ডুপ্লিকেটসহ সকল Job নির্বাচন করার জন্য Union all ক্লজের ব্যবহারের কমান্ড প্রয়োগ করে ফলাফল লক্ষ করি:
SQL> Select job From emp
2 Where deptno = 10;
3 UNION ALL
4 Select job from emp
5 where deptno = 30
JOB |
MANAGER |
PRESIDENT |
CLERK |
SALESMAN |
SALESMAN |
SALESMAN |
MANAGER |
SALESMAN |
CLERK |
9 rows selected.
UNION ক্লোজ
ডিপার্টমেন্ট নং দু’টির Job-সমূহ থেকে ডুপ্লিকেট ব্যতীত সকল Job নির্বাচন করার জন্য Union ক্লজের ব্যবহারের কমান্ড প্রয়োগ করে ফলাফল লক্ষ করি:
SQL> Select job From emp
2 Where deptno = 10;
3 UNION
4 Select job from emp
5 where deptno = 30;
JOB |
CLERK |
MANAGER |
PRESIDENT |
SALESMAN |
INTERSECT ক্লজ
ডিপার্টমেন্ট নং দু’টির Job-সমূহ থেকে শুধুমাত্র ডুপ্লিকেট অর্থাৎ শুধুমাত্র কমন ডকুমেন্টগুলো Job নির্বাচন করার Intersect ক্লোজের ব্যবহারের কমান্ড প্রয়োগ করে ফলাফল লক্ষ করিঃ
SQL> Select job From emp
2 Where deptno = 10;
3 INTERSECT
4 Select job from emp
5 where deptno = 30;
JOB |
CLERK |
MANAGER |
EXCEPT/MINUS ক্লজ
ডিপার্টমেন্ট নং দু’টির Job-সমূহ থেকে প্রথম সেট থেকে ২য় সেটের ফলাফলকে বাদ দিয়ে বাকি অবশিষ্ট Job-গুলো নির্বাচন করার জন্য except/ Minus ক্লোজের ব্যবহারের কমান্ড প্রয়োগ করে ফলাফল লক্ষ করিঃ
SQL> Select job From emp
2 Where deptno = 10;
3 MINUS
4 Select job from emp
5 where deptno = 30;
JOB |
PRESIDENT |
আবার ২য় সেট থেকে প্রথম সেট এর ফলাফলকে বাদ দিয়ে বাকি অবশিষ্ট Job-গুলো নির্বাচন করার জন্যও except / Minus ক্লজের ব্যবহারের কমান্ড প্রয়োগ করে ফলাফল লক্ষ করিঃ
SQL> Select job From emp
2 Where deptno = 30;
3 MINUS
4 Select-job from emp
5 where deptno = 10;
JOB |
SALESMAN |
আরও দেখুনঃ