এসকিউএল-এ তিনটি টেবিলে যোগ দিন

Esaki U Ela E Tinati Tebile Yoga Dina



রিলেশনাল ডাটাবেসে, একাধিক টেবিল থেকে ডেটা পুনরুদ্ধার করার কাজটি অত্যন্ত সাধারণ। লক্ষ্য ফলাফলের উপর নির্ভর করে, এটি একটি একক ইউনিটে একাধিক টেবিল যোগদান এবং ফলাফল ডেটা আনার অন্তর্ভুক্ত।

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

এই টিউটোরিয়ালে, আমরা আপনাকে এসকিউএল-এ তিনটি টেবিলে যোগদান করার জন্য ব্যবহার করতে পারেন এমন বিভিন্ন যোগদান এবং কৌশলের মাধ্যমে নিয়ে যেতে হবে।







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

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



এসকিউএল-এ যোগদানের ধরন

যোগদানের আবেদনে যাওয়ার আগে, এসকিউএল ডাটাবেসে উপলব্ধ বিভিন্ন ধরনের যোগদান নিয়ে আলোচনা করে শুরু করা যাক।



ভেতরের যোগ দিতে

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





সিনট্যাক্স নিম্নরূপ:

কলাম নির্বাচন করুন

টেবিল থেকে 1

অভ্যন্তরীণ যোগদান টেবিল2 চালু table1.column_name = table2.column_name;

বাম যোগদান

একটি বাম যোগদানের ক্ষেত্রে, এটি বাম টেবিল থেকে সমস্ত সারি এবং ডান টেবিল থেকে মিলে যাওয়া সারিগুলি প্রদান করে৷ যদি সঠিক টেবিল থেকে কোন মিলিত মান না থাকে, তাহলে যোগদান তাদের জায়গায় NULL মান যোগ করে।



সিনট্যাক্স নিম্নরূপ:

কলাম নির্বাচন করুন

টেবিল থেকে 1

বাম যোগদান টেবিল2 চালু table1.column_name = table2.column_name;

ডান যোগদান

আপনি অনুমান করতে পারেন, ডান যোগদানটি বাম যোগদানের বিপরীত। এই ধরনের যোগ ডান টেবিল থেকে সমস্ত সারি এবং বাম টেবিল থেকে শুধুমাত্র মিলিত সারি প্রদান করে। যদি বাম টেবিলে কোনো মিল সারি না থাকে, তাহলে যোগদান এতে NULL মান যোগ করে।

একটি ডান যোগদানের সিনট্যাক্স নিম্নরূপ:

কলাম নির্বাচন করুন

টেবিল থেকে 1

রাইট জয়েন টেবিল 2 চালু table1.column_name = table2.column_name;

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

আপনি SQL ডাটাবেসে যে পরবর্তী ধরনের যোগদানের সম্মুখীন হবেন তা হল একটি সম্পূর্ণ বাইরের যোগদান। ডান বা বাম টেবিলের মধ্যে একটি মিল থাকলে এই ধরনের যোগদান সমস্ত সারি প্রদান করে। যদি দুটির মধ্যে কোনো মিল না থাকে, তাহলে এটি টেবিল থেকে মিল ছাড়াই কলামের জন্য NULL প্রদান করে।

নিম্নলিখিত একটি সম্পূর্ণ বাইরের যোগদানের সিনট্যাক্স প্রদর্শন করে:

কলাম নির্বাচন করুন

টেবিল থেকে 1

সম্পূর্ণ বাইরের যোগদান টেবিল2 চালু table1.column_name = table2.column_name;

এটা মনে রাখা ভাল যে সমস্ত ডাটাবেস ইঞ্জিন সম্পূর্ণ বাইরের যোগদান সমর্থন করে না। এই ধরনের অর্জন করতে, আপনাকে অন্য ধরনের JOINS বা সাবকোয়েরির সাথে কাজ করতে হতে পারে।

উদাহরণ:

এসকিউএল-এ তিনটি টেবিলে যোগদানের জন্য আমরা কীভাবে এই ধরনের যোগদান ব্যবহার করতে পারি তার কিছু উদাহরণ অন্বেষণ করা যাক।

উদাহরণ 1: অভ্যন্তরীণ যোগদান ব্যবহার করা

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

নিম্নলিখিত উদাহরণে দেখানো হিসাবে আমরা সংশ্লিষ্ট টেবিলে একাধিক INNER JoINS ব্যবহার করতে পারি:

নির্বাচন করুন

চলচ্চিত্রের শিরোনাম,

inventory.inventory_id,

rental.rental_date

থেকে

ফিল্ম

অভ্যন্তরীণ যোগদান জায় চালু

film.film_id = inventory.film_id

অভ্যন্তরীণ যোগদান ভাড়া চালু

inventory.inventory_id = rental.inventory_id;

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

এটি নিশ্চিত করে যে আমরা একটি মৌলিক অভ্যন্তরীণ যোগদানের সাথে তিনটি টেবিলে যোগদান করব। ফলস্বরূপ সেটটি নিম্নরূপ:

উদাহরণ 2: ভিতরের যোগদান এবং বাম যোগদান ব্যবহার করে

আসুন আমরা বলি যে আমরা এখন সিনেমার তালিকা, ভাড়ার তালিকার তালিকা (যদি থাকে) এবং সংশ্লিষ্ট ভাড়ার বিবরণ চাই।

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

নিম্নলিখিত উদাহরণ বিবেচনা করুন:

নির্বাচন করুন

চলচ্চিত্রের শিরোনাম,

inventory.inventory_id,

rental.rental_date

থেকে

ফিল্ম

অভ্যন্তরীণ যোগদান জায় চালু

film.film_id = inventory.film_id

বামে যোগদান ভাড়া চালু

inventory.inventory_id = rental.inventory_id;

এই উদাহরণে, আমরা উপলব্ধ ইনভেন্টরি সহ শিরোনাম পেতে নিশ্চিত করতে ফিল্ম এবং ইনভেন্টরি টেবিলে যোগদানের জন্য একটি INNER JOIN ব্যবহার করি। তারপরে আমরা ভাড়া টেবিলে যোগদান করতে বাম যোগদান ব্যবহার করি যদি উপলব্ধ থাকে ভাড়ার বিবরণ আনতে এবং ভাড়ার ইতিহাস নেই এমন কোনো শিরোনামের জন্য NULL ব্যবহার করি।

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

উপসংহার

এই টিউটোরিয়ালে, আমরা SQL-এ বিভিন্ন ধরনের JOINS সম্পর্কে শিখেছি, তারা কীভাবে কাজ করে এবং কীভাবে আমরা তিনটি টেবিল একত্রিত করতে ব্যবহার করতে পারি।