JOIN ऑपरेटरच्या दिसण्यासाठी आवश्यक अटी

सारण्यांमधील डेटाचे प्रमाण जसजसे वाढत जाते, तसतसे डुप्लिकेट मूल्ये त्यांच्यामध्ये दिसतात. उदाहरणार्थ, उत्पादन सारणीमध्ये ब्रँड नावे आहेत. ज्याची कधी कधी पुनरावृत्ती होते. त्यांच्यासाठी स्वतंत्र ब्रँड सारणी असणे उपयुक्त ठरेल, ज्यामध्ये, उदाहरणार्थ, असा डेटा असेल:

  • आयडी - ब्रँड आयडी;
  • नाव - ब्रँड नाव;
  • company_owner - ब्रँडच्या कंपनी मालकाचे नाव;
  • company_contacts - ब्रँड मालकाच्या कंपनीचे संपर्क.

मग आम्ही पत्त्यांचे एक सारणी तयार करू इच्छितो ज्यामध्ये आम्ही सर्व पत्ते ठेवू शकतो:

  • आयडी - आयडी-पत्ते;
  • देश;
  • प्रदेश;
  • शहर;
  • रस्ता;
  • घर;
  • झिप

शिवाय, या टेबलमध्ये केवळ ब्रँड-मालक कंपन्यांचेच नाही तर ग्राहक आणि कर्मचाऱ्यांचे पत्ते देखील संग्रहित करणे शक्य होईल. आणि हा दृष्टीकोन फक्त डेटाच्या प्रमाणात (टेबलमधील पंक्तींची संख्या) वाढीचा परिणाम आहे. हे टेबलमधील डेटा हाताळणे आणि त्यांची अखंडता राखणे सोपे करते.

जेव्हा तुमच्याकडे 5 कर्मचारी असतात, तेव्हा तुम्ही त्यांचा व्यवसाय फक्त ऑक्युपेशन कॉलममध्ये टाकू शकता . जर तुमच्या कंपनीत ५ हजार कर्मचारी असतील तर तुम्हाला एक्स प्रोफेशन्स आणि त्यांच्या जबाबदाऱ्यांची यादी असलेले टेबल हवे आहे.

जावा भाषेत, तसे, काहीतरी समान आहे. जर तुमच्याकडे एका पद्धतीमध्ये बरेच कोड असतील तर ते अनेक पद्धतींमध्ये मोडण्याची इच्छा आहे. जर वर्गात अनेक पद्धती असतील तर मला त्या अनेक वर्गांमध्ये मोडायच्या आहेत.

म्हणूनच मोठ्या डेटाबेसमध्ये हजारो टेबल्स असतात. आणि जवळजवळ सर्व क्वेरी एकाच वेळी अनेक टेबलवर कार्यान्वित केल्या जातात. आणि प्रत्येकी एक हजार नोंदी असलेल्या तीन टेबलांच्या पंक्तींचे कार्टेशियन उत्पादन आधीच एक अब्ज पंक्ती आहे.

पण फक्त WHERE वापरून अब्जावधी पंक्ती फिल्टर करण्यासाठी तास लागू शकतात. म्हणून, एसक्यूएल भाषेच्या निर्मात्यांनी त्यांचे समाधान ऑफर केले - जॉइन ऑपरेटर.

जॉइन ऑपरेटरचा परिचय

जॉइन ऑपरेटरचा वापर SQL सर्व्हरला स्पष्टपणे सांगण्यासाठी केला जातो की आम्हाला सर्वांसाठी सारण्यांच्या सर्व पंक्तींचे कार्टेशियन उत्पादन आवश्यक नाही, परंतु आयडी (किंवा दुसर्‍या मार्गाने) वापरून एकमेकांना संदर्भित करणार्‍या वेगवेगळ्या सारण्यांच्या पंक्तींचे स्मार्ट ग्लूइंग आवश्यक आहे. . 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 नंतर निर्दिष्ट केलेले तुम्हाला टेबल लिंक करण्यासाठी जटिल स्क्रिप्ट लिहू देते. जॉइन स्टेटमेंट वापरताना तुम्ही उपनाम (टेबल उपनाव) देखील वापरू शकता. उदाहरण:

SELECT * FROM employee e JOIN task t ON e.id = t.emploee_id