SQL বাইরের যোগদান

Sql Ba Irera Yogadana



এটা বলার অপেক্ষা রাখে না যে যোগদান হল রিলেশনাল ডাটাবেসের সবচেয়ে শনাক্তযোগ্য বৈশিষ্ট্যগুলির মধ্যে একটি। যোগদান আমাদের একটি সুসংগত ডেটা অপারেশন তৈরি করতে একটি সম্পর্কিত অবস্থার উপর ভিত্তি করে এক বা একাধিক টেবিল থেকে ডেটা একত্রিত করার অনুমতি দেয়।

এসকিউএল-এ বিভিন্ন ধরনের যোগদান রয়েছে, প্রতিটির একটি অনন্য উপায় রয়েছে যে এটি কীভাবে অংশগ্রহণকারী টেবিল বা ফলাফল সেট থেকে ডেটা পরিচালনা করে। এসকিউএল-এ যোগদানের সবচেয়ে সাধারণ ধরনের একটি হল বাইরের যোগদান।







এসকিউএল-এ একটি OUTER JOIN জড়িত টেবিল থেকে সমস্ত মিলে যাওয়া সারি এবং সেইসাথে এক বা উভয় টেবিল থেকে অতুলনীয় সারিগুলি পুনরুদ্ধার করে। আপনি যখন শূন্য মান বা অনুপস্থিত সেট ধারণ করে এমন সারণী নিয়ে কাজ করছেন তখন এটি কাজে আসে।



আসুন আমরা আরও অন্বেষণ করি যে এই যোগদানগুলি কী করে, তারা কীভাবে কাজ করে এবং কীভাবে আমরা সেগুলিকে একটি SQL ডাটাবেসে ব্যবহার করতে পারি।



প্রয়োজনীয়তা:

এই টিউটোরিয়ালের জন্য, আমরা MySQL 8.0 এর সাথে কাজ করব এবং সাকিলা নমুনা ডাটাবেস ব্যবহার করব। যাইহোক, আপনি প্রযোজ্য বলে মনে করেন এমন অন্য কোনো ডেটাসেট ব্যবহার করতে দ্বিধা বোধ করুন।





বাইরের যোগদানের প্রকার

SQL-এ তিনটি প্রধান ধরনের OUTER JoINS আছে। এই ধরনের বাইরের যোগদানের মধ্যে রয়েছে:

  1. বাম বাইরের যোগদান

  2. বাম বাইরের যোগদানের ক্ষেত্রে, যোগদান বাম টেবিল থেকে সমস্ত সারি এবং ডান টেবিল থেকে শুধুমাত্র মিলিত সারিগুলি পুনরুদ্ধার করে। যদি ডান টেবিল থেকে কোন মিল সারি না থাকে, যোগদান ডান টেবিলের কলামের জন্য NULL মান প্রদান করে।



  3. ডান বাইরের যোগদান

  4. এটি একটি ডান বাইরের যোগদানের অনুরূপ। যাইহোক, এটি ডান টেবিল থেকে সমস্ত সারি পুনরুদ্ধার করে কিন্তু বাম টেবিল থেকে শুধুমাত্র মিলিত সারিগুলিকে পুনরুদ্ধার করে। যদি বাম টেবিল থেকে কোনো মিল সারি না থাকে, তাহলে যোগদানে বাম টেবিলের কলামের জন্য NULL মান অন্তর্ভুক্ত থাকে।

  5. সম্পূর্ণ বাইরের যোগদান

  6. সবশেষে, আমাদের সম্পূর্ণ বাইরের যোগদান আছে। এই ধরনের যোগ ডান এবং বাম উভয় বহিঃস্থ যোগকে একত্রিত করে। ফলস্বরূপ, যোগদানটি সমস্ত সারি পুনরুদ্ধার করে যখন বাম বা ডান টেবিলে একটি মিল থাকে। যদি কোন মিল না থাকে, যোগদানটি টেবিল থেকে কলামের জন্য শূন্য মান প্রদান করে যার কোন মিল নেই।

SQL OUTER Join-এর সিনট্যাক্স

নিম্নলিখিত একটি SQL OUTER JOIN এর সিনট্যাক্স প্রকাশ করে। তবে এটা মনে রাখা ভালো যে সিনট্যাক্স টার্গেট ডাটাবেস ইঞ্জিনের উপর নির্ভর করে সামান্য পরিবর্তিত হতে পারে।

নিম্নলিখিত একটি সাধারণ কাঠামো:

কলাম নির্বাচন করুন
টেবিল থেকে 1
[বাম | ডান | সম্পূর্ণ] বাইরের যোগদান টেবিল2
ON table1.column_name = table2.column_name;

এসকিউএল-এ একটি বাইরের যোগদানের বাক্য গঠনটি বেশ স্ব-ব্যাখ্যামূলক।

উদাহরণ:

এসকিউএল-এ আমরা কীভাবে বিভিন্ন ধরনের OUTER JoINS প্রয়োগ করতে পারি তার কিছু নমুনা ব্যবহার দেখি।

আমরা যেমন উল্লেখ করেছি, আমরা প্রদর্শনের জন্য সাকিলা নমুনা ডাটাবেস ব্যবহার করব। এই ক্ষেত্রে, আমরা 'গ্রাহক' এবং 'পেমেন্ট' টেবিল ব্যবহার করি।

উদাহরণ 1: বাম বাইরের যোগদান

আসুন আমরা একটি OUTER Join দিয়ে শুরু করি। ধরুন আমরা যদি উপলব্ধ থাকে তবে তাদের অর্থপ্রদানের তথ্য সহ সমস্ত গ্রাহকের তথ্য পুনরুদ্ধার করতে চাই।

এটি একটি বাম বাইরের যোগদানকে প্রযোজ্য করে তোলে কারণ আমরা সমস্ত গ্রাহকের তথ্য (বাম দিকে) এবং পেমেন্টের তথ্য যদি উপলব্ধ (ডানে) চাই।

গ্রাহক যদি কোনো অর্থপ্রদান না করে থাকেন, তাহলে যোগদান পেমেন্ট-সম্পর্কিত কলামের জন্য NULL মান দেখাবে।

একটি উদাহরণ নিম্নরূপ:

নির্বাচন করুন
c.customer_id,
c.first_name,
c.last_name,
p.অ্যামাউন্ট,
p.payment_date
থেকে
গ্রাহক গ
বাম বাইরে যোগদান পেমেন্ট পি
চালু
c.customer_id = p.customer_id;

প্রদত্ত ক্যোয়ারীতে, আমরা 'গ্রাহক' টেবিল থেকে 'কাস্টমার_আইডি', 'প্রথম_নাম', এবং 'শেষ_নাম' কলামগুলি অন্তর্ভুক্ত করি। আমরা 'পেমেন্ট' টেবিল থেকে পরিমাণ এবং 'পেমেন্ট_তারিখ' অন্তর্ভুক্ত করি।

তারপর আমরা 'customer_id' এর উপর ভিত্তি করে 'গ্রাহক' এবং 'পেমেন্ট' টেবিলের মধ্যে একটি বাম বাইরের যোগদান করি।

এগুলি হল সমস্ত গ্রাহক (পেমেন্ট করা হোক বা না হোক) তাদের পেমেন্টের বিবরণ সহ (যদি থাকে)।

একটি উদাহরণ আউটপুট নিম্নরূপ:

উদাহরণ 2: ডান বাইরে যোগ দিন

এখন, ডান বাইরের যোগদানে যাওয়া যাক। ধরুন আমরা এই ক্ষেত্রে সমস্ত অর্থপ্রদানের তথ্য এবং সংশ্লিষ্ট গ্রাহককে অন্তর্ভুক্ত করতে চাই, যদি থাকে।

এই ক্ষেত্রে, যদি একটি গ্রাহক দ্বারা একটি অর্থ প্রদান করা হয়, যোগদান সেই গ্রাহকের বিবরণ প্রদর্শন করবে। যদি কোনো সংশ্লিষ্ট গ্রাহকের সাথে কোনো অর্থপ্রদান না থাকে, তাহলে এটি গ্রাহক-সম্পর্কিত কলামের জন্য NULL মান দেখাবে।

নির্বাচন করুন
c.customer_id,
c.first_name,
c.last_name,
p.অ্যামাউন্ট,
p.payment_date
থেকে
গ্রাহক গ
ডান বাইরে যোগদান পেমেন্ট পি
চালু
c.customer_id = p.customer_id;

ফলস্বরূপ সেটটি নিম্নরূপ:

উদাহরণ 3: সম্পূর্ণ বাইরের যোগদান

একটি সম্পূর্ণ বাইরের যোগদান, অন্যদিকে, সমস্ত গ্রাহকের তথ্য এবং অর্থ প্রদান পুনরুদ্ধার করে। এতে সমস্ত গ্রাহক এবং সমস্ত অর্থপ্রদান অন্তর্ভুক্ত রয়েছে এবং শূন্য মানগুলি দেখায় যেখানে টেবিলের মধ্যে কোনও মিল নেই৷

নির্বাচন করুন
c.customer_id,
c.first_name,
c.last_name,
p.অ্যামাউন্ট,
p.payment_date
থেকে
গ্রাহক গ
সম্পূর্ণ বাইরে যোগদান পেমেন্ট পি
চালু
c.customer_id = p.customer_id;

এটা মনে রাখা ভালো যে MySQL নেটিভভাবে একটি সম্পূর্ণ বাইরের যোগদানকে সমর্থন করে না। আপনাকে বাম যোগদান, ইউনিয়ন এবং ডান যোগদানের সাথে কিছু জিউজিৎসু যাদু করতে হবে। বেশ বিরক্তিকর, আমরা যোগ করতে পারে.

উপসংহার

এই টিউটোরিয়ালে, আমরা OUTER JoINS সম্পর্কে সব শিখেছি। আমরা এসকিউএল-এ OUTER JoIN কী, OUTER JoINs-এর ধরন এবং এই ধরনের OUTER JoINs কীভাবে ব্যবহার করতে হয় তার উদাহরণগুলি শিখেছি।