JOIN অপারেটরের উপস্থিতির জন্য পূর্বশর্ত
টেবিলে ডেটার পরিমাণ বাড়ার সাথে সাথে ডুপ্লিকেট মানগুলি প্রায়শই তাদের মধ্যে উপস্থিত হয়। উদাহরণস্বরূপ, পণ্যের টেবিলে ব্র্যান্ডের নাম রয়েছে। যা মাঝে মাঝে পুনরাবৃত্তি হয়। তাদের জন্য একটি পৃথক ব্র্যান্ড টেবিল রাখা দরকারী হবে, যার মধ্যে থাকবে, উদাহরণস্বরূপ, এই ধরনের ডেটা:
- আইডি - ব্র্যান্ড আইডি;
- নাম - ব্র্যান্ড নাম;
- company_owner - ব্র্যান্ডের কোম্পানির মালিকের নাম;
- company_contacts - ব্র্যান্ড মালিকের কোম্পানির পরিচিতি।
তারপরে আমরা ঠিকানাগুলির একটি টেবিল তৈরি করতে চাই যাতে আমরা সমস্ত ঠিকানা রাখতে পারি:
- আইডি - আইডি-ঠিকানা;
- দেশ
- অঞ্চল;
- শহর
- রাস্তা
- গৃহ;
- জিপ
তদুপরি, এই টেবিলে কেবল ব্র্যান্ড-মালিকানাধীন সংস্থাগুলির ঠিকানাই নয়, গ্রাহক এবং কর্মচারীদের ঠিকানাও সংরক্ষণ করা সম্ভব হবে। এবং এই পদ্ধতিটি কেবলমাত্র ডেটার পরিমাণ বৃদ্ধির একটি ফলাফল (সারণীতে সারির সংখ্যা)। এটি টেবিলে ডেটা ম্যানিপুলেট করা এবং তাদের সততা বজায় রাখা সহজ করে তোলে।
যখন আপনার 5 জন কর্মচারী থাকে, তখন আপনি তাদের পেশাকে অকুপেশন কলামে লিখতে পারেন । আপনার কোম্পানিতে যদি 5 হাজার কর্মচারী থাকে, তাহলে আপনার x পেশা এবং তাদের দায়িত্বের তালিকা সহ একটি টেবিল প্রয়োজন।
জাভা ভাষায়, উপায় দ্বারা, অনুরূপ কিছু আছে. আপনার যদি একটি পদ্ধতিতে প্রচুর কোড থাকে তবে এটিকে কয়েকটি পদ্ধতিতে ভাঙ্গার ইচ্ছা রয়েছে। যদি একটি ক্লাসে অনেকগুলি পদ্ধতি থাকে, তবে আমি এটিকে কয়েকটি শ্রেণিতে ভাগ করতে চাই।
তাই বড় ডাটাবেসে হাজার হাজার টেবিল থাকে। এবং প্রায় সব ক্যোয়ারী একসাথে বেশ কয়েকটি টেবিলে নির্বাহ করা হয়। এবং তিনটি টেবিলের সারিগুলির কার্টেসিয়ান গুণফল যার প্রতিটিতে এক হাজার রেকর্ড রয়েছে ইতিমধ্যেই এক বিলিয়ন সারি।
কিন্তু শুধুমাত্র WHERE ব্যবহার করে এক বিলিয়ন সারি ফিল্টার করতে ঘন্টা লাগতে পারে। অতএব, এসকিউএল ভাষার নির্মাতারা তাদের সমাধান দিয়েছেন - যোগদান অপারেটর।
JOIN অপারেটরের পরিচিতি
JOIN অপারেটরটি SQL সার্ভারকে স্পষ্টভাবে বলতে ব্যবহৃত হয় যে আমাদের সবার জন্য টেবিলের সমস্ত সারিগুলির কার্টেসিয়ান পণ্যের প্রয়োজন নেই, তবে বিভিন্ন টেবিলের সারিগুলির একটি স্মার্ট গ্লুইং যা একটি ID ব্যবহার করে একে অপরকে উল্লেখ করে (বা অন্য উপায়ে) . JOIN অপারেটর ব্যবহার করে টেবিল যোগদান প্রক্রিয়াকরণের জন্য সার্ভারের একটি পৃথক অ্যালগরিদম রয়েছে, যা এই ধরনের ক্রিয়াকলাপগুলিকে আরও দ্রুত সম্পাদন করতে দেয়৷ JOIN অপারেটরের সাধারণ ফর্ম নিম্নরূপ:
table 1 JOIN table 2 ON condition
এটি এখানে বলে যে আপনাকে টেবিলের টেবিল 1 এবং টেবিল 2 একটি টেবিলে একত্রিত করতে হবে এবং শর্তটি যোগদানের মানদণ্ড হিসাবে ব্যবহার করতে হবে ।
আমাদের পুরানো উদাহরণ নেওয়া যাক:
SELECT * FROM employee, task WHERE emploee.id = task.emploee_id
এবং JOIN অপারেটর ব্যবহার করে এটি পুনরায় লিখুন:
SELECT * FROM employee JOIN task ON emploee.id = task.emploee_id
উভয় প্রশ্নই আমাদের ক্ষেত্রে একই ফলাফল দেবে, কিন্তু এটি শুধুমাত্র কারণ অনুসন্ধানগুলি খুবই সহজ। ভবিষ্যতে, WHERE আপনাকে ঠিক সারি ফিল্টার তৈরি করতে দেয় এবং ON এর পরে নির্দিষ্ট করা আপনাকে টেবিল লিঙ্ক করার জন্য জটিল স্ক্রিপ্ট লিখতে দেয়। JOIN বিবৃতি ব্যবহার করার সময় আপনি উপনাম (টেবিল উপনাম) ব্যবহার করতে পারেন। উদাহরণ:
SELECT * FROM employee e JOIN task t ON e.id = t.emploee_id