ইনার জয়েন বনাম বাইরের যোগ
অভ্যন্তরীণ যোগদান এবং বাইরের যোগদান হল দুটি এসকিউএল যোগদানের পদ্ধতি যা ডেটাবেসের জন্য অনুসন্ধান প্রক্রিয়াকরণে ব্যবহৃত হয়। তারা জয়েন ক্লজের পরিবারের অন্তর্ভুক্ত (অন্য দুটি হল বাম এবং ডান যোগদান)। যাইহোক, একটি স্বয়ং যোগদান রয়েছে যা বিশেষ পরিস্থিতিতে ব্যবহার করা যেতে পারে। যোগদানের উদ্দেশ্য হল দুটি টেবিলে সাধারণ মান ব্যবহার করে ক্ষেত্রগুলিকে একত্রিত করা। এই যোগদানগুলি একটি ডাটাবেসের একাধিক টেবিল থেকে রেকর্ড একত্রিত করে। এটি ফলস্বরূপ সেট তৈরি করে, যা অন্য টেবিল হিসাবে সংরক্ষণ করা যেতে পারে৷
ইনার জয়েন কি?
সবচেয়ে বেশি ব্যবহৃত SQL জয়েন অপারেশন হল ইনার জয়েন।এটি অ্যাপ্লিকেশনগুলিতে ব্যবহৃত যোগদানের ডিফল্ট প্রকার হিসাবে বিবেচনা করা যেতে পারে। অভ্যন্তরীণ যোগ দুটি টেবিলকে একত্রিত করতে যোগ-প্রেডিকেট ব্যবহার করে। দুটি সারণি A এবং B হল ধরে নিই, তাহলে জয়েন-প্রেডিকেট A এবং B এর সারিগুলিকে তুলনা করবে যেগুলি সমস্ত জোড়া খুঁজে বের করতে যা প্রিডিকেটকে সন্তুষ্ট করে। A এবং B টেবিলের সমস্ত সন্তুষ্ট সারির কলামের মানগুলিকে একত্রিত করে ফলাফল তৈরি করা হয়। এটিকে প্রথমে সমস্ত রেকর্ডের ক্রস জয়েন (কার্টেসিয়ান পণ্য) নেওয়া এবং তারপর শুধুমাত্র সেই রেকর্ডগুলি ফেরত দেওয়া হিসাবে দেখা যেতে পারে যা যোগদানের পূর্বাভাসকে সন্তুষ্ট করে। যাইহোক, বাস্তবে, কার্টেসিয়ান পণ্য গণনা করা হয় না কারণ এটি অত্যন্ত অদক্ষ। পরিবর্তে হ্যাশ যোগদান বা সর্ট-মার্জ যোগ ব্যবহার করা হয়।
Outer Join কি?
অন্যদিত, অভ্যন্তরীণ যোগদান, বাইরের যোগদান সমস্ত রেকর্ড রাখে এমনকি যদি এটি একটি মিলে যাওয়া রেকর্ড খুঁজে না পায়। তার মানে আউটার জয়েন এর ফলাফলে উপস্থিত হওয়ার জন্য একটি ম্যাচিং রেকর্ড খুঁজে পেতে একটি রেকর্ডের প্রয়োজন। পরিবর্তে, এটি সমস্ত রেকর্ড ফিরিয়ে দেবে, কিন্তু অতুলনীয় রেকর্ডের শূন্য মান থাকবে। বাইরের সংযোগগুলি তিনটি উপ বিভাগে বিভক্ত।এগুলি হল বাম বাইরের যোগ, ডান বাইরের যোগ এবং সম্পূর্ণ বাইরের যোগ। এই পার্থক্যটি কোন টেবিলের (বাম টেবিল, ডান টেবিল বা উভয় টেবিল) সারি ধরে রাখা হয় যখন অতুলনীয় রেকর্ড পাওয়া যায় তার উপর ভিত্তি করে। বাম বাইরের যোগদান (এছাড়াও সহজভাবে বাম যোগ বলে পরিচিত) বাম টেবিলের সমস্ত রেকর্ড ধরে রাখে। তার মানে, এমনকি যদি সংখ্যার সাথে মিলে যাওয়া রেকর্ডগুলি শূন্য হয়, তবুও ফলাফল টেবিলে এটির রেকর্ড থাকবে, তবে B-এর সমস্ত কলামের জন্য শূন্য মান থাকবে। অন্য কথায়, বাম টেবিলের সমস্ত মান ডান থেকে মিলে যাওয়া মানগুলির সাথে ফেরত দেওয়া হবে। টেবিল (বা শূন্য মান যখন অতুলনীয়)। যদি বাম টেবিলের একাধিক সারির মান ডান টেবিলের একটি একক সারির সাথে মিলে যায়, তাহলে ডান টেবিলের সারিটি প্রয়োজন অনুসারে পুনরাবৃত্তি করা হবে। ডান বাইরের যোগ বাম বাইরের যোগদানের সাথে প্রায় একই রকম, কিন্তু টেবিলের চিকিত্সা সম্মানিত। তার মানে ফলাফলে ডান টেবিলের সব সারি থাকবে অন্তত একবার মিলে যাওয়া বাম টেবিলের মান (এবং অতুলনীয় ডান মানের জন্য নাল মান)। সম্পূর্ণ বাইরের যোগ বাম এবং ডান উভয় বাইরের যোগদানের চেয়ে আরও ব্যাপক।এর ফলে বাম এবং ডান উভয় বহিঃপ্রকাশের প্রভাব একত্রিত হয়।
ইনার জয়েন্ট এবং বাইরের যোগের মধ্যে পার্থক্য কী?
Inner Join ফলাফলে অতুলনীয় সারি রাখে না, তবে বাইরের যোগ অন্তত একটি টেবিলের সমস্ত রেকর্ড রাখবে (কোন বাইরের যোগদান ব্যবহার করা হয়েছে তার উপর নির্ভর করে)। সুতরাং, ফলাফল টেবিলে অতুলনীয় সারিগুলিতে কোনও তথ্য উপস্থিত না থাকার আচরণটি অবাঞ্ছিত, আপনাকে সর্বদা বাইরের যোগগুলির একটি ব্যবহার করতে হবে (অভ্যন্তরীণ যোগদানের জায়গায়)। কোন মিল না পাওয়া গেলে অভ্যন্তরীণ যোগদান ফলাফল নাও দিতে পারে। কিন্তু বাইরের যোগ সর্বদা একটি ফলস্বরূপ টেবিল তৈরি করবে, এমনকি কোনো মিল সারি না থাকলেও। অভ্যন্তরীণ যোগদান সর্বদা মান সহ টেবিল প্রদান করবে (যদি ফেরত দেওয়া হয়)। কিন্তু বাইরের যোগদানের ফলে শূন্য মান সহ টেবিল হতে পারে।