এসকিউএল সাবকুয়েরি আউটার কোয়েরির সাথে যোগ দিন

Esaki U Ela Sabakuyeri A Utara Koyerira Sathe Yoga Dina



রিলেশনাল ডাটাবেসের সাথে কাজ করার ক্ষেত্রে, আপনার ইচ্ছামত কাজগুলি সম্পাদন করার জন্য প্রশ্নগুলিকে কীভাবে ম্যানিপুলেট এবং একত্রিত করতে হয় তা আপনাকে আয়ত্ত করতে হবে। এই কারণেই প্রতিটি রিলেশনাল ডাটাবেস ইঞ্জিন তার ব্যবহারকারীদের জন্য ব্যতিক্রমী বৈশিষ্ট্য, দক্ষতা এবং সহজে ব্যবহার করার চেষ্টা করে SQL ভাষার তার স্বাদ প্রয়োগ করে।

এসকিউএল-এর সবচেয়ে শক্তিশালী বৈশিষ্ট্যগুলির মধ্যে একটি হল সাবকুয়েরি। সাবকোয়ারি হল একটি বৃহত্তর এবং আরও জটিল প্রশ্নের মধ্যে নেস্টেড প্রশ্নের একটি সেট। সাবকোয়ারিগুলি আপনাকে ডেটা পুনরুদ্ধার করতে বা একটি একক সত্তা হিসাবে আরও জটিল ক্রিয়াকলাপ সম্পাদন করতে দেয়।







আমরা ডেটা ফিল্টারিং, বাছাই, একাধিক টেবিলে একত্রিতকরণ এবং আরও অনেক কিছু করার জন্য সাবকোয়ারিগুলি ব্যবহার করতে পারি।



যাইহোক, অন্য একটি বৈশিষ্ট্য যা এসকিউএল সাবকোয়েরির অধীনে লুকানো থাকে সেটিকে সাবকুয়েরি যোগ বলে। এগুলি সাবকোয়েরির মতো; পরিবর্তে, তারা যোগদান যা আপনাকে টেবিলের সাথে যোগদান করার জন্য একটি বাইরের প্রশ্নের মধ্যে সাবকোয়ারি ব্যবহার করার অনুমতি দেয়।



যদি আপনার মাথা ঘুরতে থাকে, তাহলে চিন্তা করবেন না কারণ সাবকোয়েরি যোগদান মাস্টারের জন্য চ্যালেঞ্জিং হতে পারে, বিশেষ করে শুরুতে। যাইহোক, এই টিউটোরিয়ালটি সাবকোয়েরি ভাঙ্গার চেষ্টা করে খুব বেশি সুযোগ না রেখে প্রাথমিক ধাপে যোগদান করে।





মনে রাখবেন যে আমরা ধরে নিচ্ছি যে আপনি SQL, SQL Joins, SQL Subqueries, বা এই জাতীয় বিষয়ে নতুন নন। যাইহোক, আপনি যদি হন তবে আরও আবিষ্কারের জন্য বিষয়গুলির উপর আমাদের টিউটোরিয়ালগুলি দেখুন।

এসকিউএল আউটার জয়েনগুলি আয়ত্ত করুন

আপনি যদি বুঝতে চান কিভাবে সাবকোয়েরি যোগদানের সাথে কাজ করতে হয়, তাহলে বাইরের যোগদানের সাথে কিভাবে কাজ করতে হয় তা শেখা একটি মূল বিষয়।



যদি আপনি অপরিচিত হন, একটি SQL বহিঃস্থ যোগদান আপনাকে একটি টেবিল থেকে সমস্ত সারি এবং দ্বিতীয় টেবিল থেকে মিলিত সারিগুলি আনতে দেয়৷ এটি তার চেয়ে একটু বেশি জটিল, বাম বাইরের যোগদান, ডান বাইরের যোগদান, সম্পূর্ণ বাইরের যোগদান ইত্যাদি সহ।

একটি SQL বাম বাইরের যোগদানে, ক্যোয়ারীটি বাম টেবিল থেকে সমস্ত সারি এবং ডান টেবিল থেকে মিলে যাওয়া সারিগুলি প্রদান করে৷ সঠিক সারণিতে কোন মিল সারি না থাকলে কোয়েরির ফলে কলামে NULL মান অন্তর্ভুক্ত থাকে।

একটি ডান বাইরের যোগদানের ক্ষেত্রে, ক্যোয়ারীটি ডান টেবিল থেকে সমস্ত সারি ফেরত দেয় কিন্তু বাম টেবিল থেকে শুধুমাত্র মিলে যাওয়া সারিগুলিকে ফেরত দেয়৷ একইভাবে, ক্যোয়ারীতে NULL মান অন্তর্ভুক্ত থাকে যদি বাম টেবিল থেকে কোন মিল সারি না থাকে।

অবশেষে, আমরা সম্পূর্ণ বাইরের যোগদান আছে. এই যোগদানটি ডান এবং বাম টেবিল থেকে সমস্ত সারি এবং যেকোন অ-মেলা রেকর্ডের জন্য NULL মান প্রদান করে।

এসকিউএল সাবকুয়েরি যোগ দেয়

এখন আমরা এসকিউএল সাবকোয়ারি সম্পর্কে বুঝতে পেরেছি, আসুন সাবকোয়েরি যোগদান সম্পর্কে কথা বলি। সাবকোয়েরি যোগদান আমাদেরকে টেবিলে যোগদানের জন্য বাইরের কোয়েরির মধ্যে সাবকোয়েরি ব্যবহার করার অনুমতি দেয়।

আপনি যদি জিজ্ঞাসা করেন, এটা কি? হ্যাঁ, যে সব সাবকোয়ারি যোগদান করে.

এটি আরও ভালভাবে প্রদর্শন করতে, নিম্নলিখিত সিনট্যাক্স উদাহরণটি নিন যা নিম্নলিখিতটিতে প্রদর্শিত হয়েছে:

নির্বাচন করুন *
টেবিল থেকে 1
বাম বাইরে যোগদান (
কলাম 1, কলাম 2 নির্বাচন করুন
টেবিল 2 থেকে
) AS subquery
ON table1.column3 = subquery.column1;


পূর্ববর্তী সিনট্যাক্সে, আমরা একটি সাবকোয়েরির সাথে যোগ দিতে একটি বাম বাইরের যোগ ব্যবহার করে প্রথম টেবিল থেকে সমস্ত কলাম নির্বাচন করি। সাবকোয়েরির ভূমিকা হল সারণি 2 থেকে সংজ্ঞায়িত কলামগুলি আনা। তারপর আমরা টেবিল 1 থেকে কলাম 2 এবং সাবকোয়েরি থেকে কলাম 1 এর শর্তে এটিকে সারণী 1 এর সাথে যুক্ত করি।

ব্যবহারিক উদাহরণ:

তাত্ত্বিকভাবে, এটি কম স্বজ্ঞাত বলে মনে হয় তবে আসুন সাকিলা ডাটাবেস গ্রহণ করে একটি বাস্তব-বিশ্বের দৃশ্য গ্রহণ করি।

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

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

f.title, l.name AS ভাষা নির্বাচন করুন
ফিল্ম থেকে চ
বাম বাইরে যোগদান (
ভাষা_আইডি, নাম নির্বাচন করুন
ভাষা থেকে
) AS l
ON f.language_id = l.language_id;


পূর্ববর্তী উদাহরণের ক্যোয়ারীতে, আমরা ফিল্ম টেবিল থেকে শিরোনাম কলাম এবং ভাষার টেবিল থেকে নাম কলাম নির্বাচন করি।

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

ফলাফলে সমস্ত ফিল্ম অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করার জন্য, আমাদের বাম বাইরের যোগদান ব্যবহার করতে হবে যা বাম টেবিলের সমস্ত ফলাফল নিয়ে গঠিত যা এই ক্ষেত্রে ফিল্ম টেবিল।

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


আমরা ডান বাইরের যোগদানের সাথেও একই কাজ করতে পারি। সিনট্যাক্স নিম্নরূপ:

নির্বাচন করুন *
টেবিল থেকে 1
ডান বাইরে যোগদান (
কলাম 1, কলাম 2 নির্বাচন করুন
টেবিল 2 থেকে
) AS subquery
ON table1.column3 = subquery.column1;


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

জানতে দরকারী জিনিস

এটা বোঝা ভাল যে যদিও সাবকোয়েরি যোগদানগুলি অবিশ্বাস্যভাবে দরকারী এবং আপনার কর্মপ্রবাহকে অপ্টিমাইজ করতে পারে, তবে সাবধানতার সাথে ব্যবহার করুন৷

উদাহরণস্বরূপ, একটি বড় ডেটা সেটের সাথে সাবকোয়েরি যোগদান ব্যবহার করা এড়িয়ে চলুন। এটি কারণ তারা ব্যাপক রেকর্ড ফেরত দিতে পারে যা ডাটাবেসের কর্মক্ষমতা প্রভাবিত করতে পারে।

কোনো সাবকোয়েরি যোগদান করার আগে ক্যোয়ারী বিশ্লেষণ টুল ব্যবহার করার কথা বিবেচনা করুন।

উপসংহার

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