SQL Outer Join

Sql Outer Join



இணைப்பானது தொடர்புடைய தரவுத்தளங்களின் மிகவும் அடையாளம் காணக்கூடிய அம்சங்களில் ஒன்றாகும் என்று சொல்லாமல் போகிறது. ஒரு ஒத்திசைவான தரவுச் செயல்பாட்டை உருவாக்க, தொடர்புடைய நிபந்தனையின் அடிப்படையில் ஒன்று அல்லது அதற்கு மேற்பட்ட அட்டவணைகளில் இருந்து தரவை ஒன்றிணைக்க இணைப்புகள் எங்களை அனுமதிக்கின்றன.

SQL இல் பல்வேறு வகையான இணைப்புகள் உள்ளன, ஒவ்வொன்றும் பங்கேற்கும் அட்டவணைகள் அல்லது அதன் விளைவாக வரும் தரவை எவ்வாறு கையாள்கிறது என்பதற்கான தனித்துவமான வழியைக் கொண்டுள்ளது. SQL இல் மிகவும் பொதுவான வகைகளில் ஒன்று OUTER JOIN ஆகும்.







SQL இல் உள்ள ஒரு அவுட்டர் ஜான், சம்பந்தப்பட்ட அட்டவணைகளிலிருந்து பொருந்தக்கூடிய அனைத்து வரிசைகளையும் ஒன்று அல்லது இரண்டு அட்டவணைகளிலிருந்தும் பொருந்தாத வரிசைகளையும் மீட்டெடுக்கிறது. நீங்கள் NULL மதிப்புகள் அல்லது விடுபட்ட தொகுப்புகளைக் கொண்ட அட்டவணைகளைக் கையாளும் போது இது கைக்கு வரும்.



இந்த இணைப்புகள் என்ன செய்கின்றன, அவை எவ்வாறு செயல்படுகின்றன மற்றும் அவற்றை SQL தரவுத்தளத்தில் எவ்வாறு பயன்படுத்தலாம் என்பதை மேலும் ஆராய்வோம்.



தேவைகள்:

இந்த டுடோரியலுக்கு, நாங்கள் MySQL 8.0 உடன் பணிபுரிவோம் மற்றும் சகிலா மாதிரி தரவுத்தளத்தைப் பயன்படுத்துவோம். இருப்பினும், நீங்கள் பொருந்தக்கூடிய வேறு எந்த தரவுத்தொகுப்பையும் பயன்படுத்த தயங்க வேண்டாம்.





வெளிப்புற இணைப்புகளின் வகைகள்

SQL இல் மூன்று முக்கிய வகையான OUTER JOINS உள்ளன. இந்த வகையான அவுட்டர் ஜாயின்களில் பின்வருவன அடங்கும்:

  1. அவுட் OUTER JOINS

  2. இடது புற இணைப்புகளின் விஷயத்தில், இணைப்பானது இடது அட்டவணையில் உள்ள அனைத்து வரிசைகளையும் வலது அட்டவணையில் இருந்து பொருந்தும் வரிசைகளை மட்டும் மீட்டெடுக்கும். வலது அட்டவணையில் பொருந்தக்கூடிய வரிசைகள் இல்லை என்றால், இணைப்பானது வலது அட்டவணையில் உள்ள நெடுவரிசைகளுக்கான NULL மதிப்புகளை வழங்கும்.



  3. வலது புறம் இணைகிறது

  4. இது ஒரு வலது புற இணைப்பிற்கு ஒத்ததாகும். இருப்பினும், இது வலது அட்டவணையில் இருந்து அனைத்து வரிசைகளையும் மீட்டெடுக்கிறது, ஆனால் இடது அட்டவணையில் இருந்து பொருந்தும் வரிசைகளை மட்டுமே. இடது அட்டவணையில் பொருந்தக்கூடிய வரிசைகள் இல்லை என்றால், இணைப்பானது இடது அட்டவணையில் உள்ள நெடுவரிசைகளுக்கான NULL மதிப்புகளை உள்ளடக்கியது.

  5. முழு வெளி இணைப்புகள்

  6. கடைசியாக, எங்களிடம் முழு வெளிப்புற இணைப்புகள் உள்ளன. இந்த வகை இணைப்பானது வலது மற்றும் இடது வெளிப்புற இணைப்புகளை ஒருங்கிணைக்கிறது. இதன் விளைவாக, இடது அல்லது வலது அட்டவணையில் பொருத்தம் இருக்கும் போது, ​​இணைப்பு அனைத்து வரிசைகளையும் மீட்டெடுக்கிறது. பொருத்தம் இல்லை என்றால், இணைப்பானது அட்டவணையில் இருந்து நெடுவரிசைகளுக்கான NULL மதிப்புகளை பொருத்தம் இல்லாமல் வழங்கும்.

SQL OUTER JOIN இன் தொடரியல்

பின்வருபவை ஒரு SQL OUTER JOIN இன் தொடரியலை வெளிப்படுத்துகிறது. இலக்கு தரவுத்தள இயந்திரத்தைப் பொறுத்து தொடரியல் சிறிது மாறுபடலாம் என்பதை நினைவில் கொள்வது நல்லது.

பின்வருபவை ஒரு பொதுவான அமைப்பு:

நெடுவரிசைகளைத் தேர்ந்தெடுக்கவும்
அட்டவணை 1 இலிருந்து
[இடது | வலது | முழு] வெளியே சேர் அட்டவணை2
ON table1.column_name = table2.column_name;

SQL இல் OUTER JOIN இன் தொடரியல் மிகவும் சுய விளக்கமளிக்கும்.

எடுத்துக்காட்டுகள்:

SQL இல் பல்வேறு வகையான OUTER JOINS ஐ எவ்வாறு பயன்படுத்துவது என்பது குறித்த சில மாதிரி பயன்பாட்டைப் பார்ப்போம்.

நாங்கள் குறிப்பிட்டுள்ளபடி, சகிலா மாதிரி தரவுத்தளத்தை விளக்கத்திற்காகப் பயன்படுத்துவோம். இந்த வழக்கில், நாங்கள் 'வாடிக்கையாளர்' மற்றும் 'கட்டணம்' அட்டவணைகளைப் பயன்படுத்துகிறோம்.

எடுத்துக்காட்டு 1: இடது புறம் சேர்

OUTER JOIN உடன் ஆரம்பிக்கலாம். கிடைக்கும் பட்சத்தில், அனைத்து வாடிக்கையாளர் தகவல்களையும் அவர்களின் கட்டணத் தகவலுடன் மீட்டெடுக்க விரும்புகிறோம் என்று வைத்துக்கொள்வோம்.

அனைத்து வாடிக்கையாளர் தகவல்களும் (இடதுபுறம்) மற்றும் பணம் செலுத்தும் தகவல் இருந்தால் (வலதுபுறம்) இருக்க வேண்டும் என்பதால், இது இடது புறம் சேர்வது பொருந்தும்.

வாடிக்கையாளர் பணம் எதுவும் செலுத்தவில்லை எனில், பணம் செலுத்துதல் தொடர்பான நெடுவரிசைகளுக்கான NULL மதிப்புகளை இணைப்பானது காண்பிக்கும்.

ஒரு உதாரணம் பின்வருமாறு:

தேர்ந்தெடுக்கவும்
c.customer_id,
c.முதல்_பெயர்,
c.கடைசி_பெயர்,
p. அளவு,
ப.கட்டணம்_தேதி
இருந்து
வாடிக்கையாளர் சி
லெஃப்ட் அவுட்டர் ஜாயின் பேமெண்ட் ப
ஆன்
c.customer_id = p.customer_id;

கொடுக்கப்பட்ட வினவலில், 'வாடிக்கையாளர்' அட்டவணையில் இருந்து 'customer_id', 'first_name' மற்றும் 'last_name' நெடுவரிசைகளைச் சேர்த்துள்ளோம். 'கட்டணம்' அட்டவணையில் இருந்து தொகை மற்றும் 'பேமெண்ட்_தேதி' ஆகியவற்றையும் சேர்த்துக் கொள்கிறோம்.

'கஸ்டமர்_ஐடி' அடிப்படையில் 'வாடிக்கையாளர்' மற்றும் 'பணம் செலுத்துதல்' அட்டவணைகளுக்கு இடையே இடது புற இணைப்பைச் செய்கிறோம்.

இவர்கள் அனைத்து வாடிக்கையாளர்கள் (பணம் செலுத்தியிருந்தாலும் இல்லாவிட்டாலும்) அவர்களின் கட்டண விவரங்களுடன் (ஏதேனும் இருந்தால்).

ஒரு எடுத்துக்காட்டு வெளியீடு பின்வருமாறு:

உதாரணம் 2: வலது புறம் சேர்

இப்போது, ​​வலது புற இணைப்பிற்குச் செல்வோம். இந்த வழக்கில் அனைத்து கட்டணத் தகவல்களையும் தொடர்புடைய வாடிக்கையாளரையும் சேர்க்க விரும்புகிறோம், ஏதேனும் இருந்தால்.

இந்த வழக்கில், ஒரு வாடிக்கையாளரால் பணம் செலுத்தப்பட்டால், அந்த வாடிக்கையாளரின் விவரங்களை இணைப்பது காண்பிக்கும். தொடர்புடைய வாடிக்கையாளர் இல்லாமல் பணம் செலுத்தினால், வாடிக்கையாளர் தொடர்பான நெடுவரிசைகளுக்கான NULL மதிப்புகளைக் காண்பிக்கும்.

தேர்ந்தெடுக்கவும்
c.customer_id,
c.முதல்_பெயர்,
c.கடைசி_பெயர்,
p. அளவு,
ப.கட்டணம்_தேதி
இருந்து
வாடிக்கையாளர் சி
வலதுபுறம் சேர கட்டணம் ப
ஆன்
c.customer_id = p.customer_id;

இதன் விளைவாக தொகுப்பு பின்வருமாறு:

எடுத்துக்காட்டு 3: முழு வெளியில் சேருதல்

மறுபுறம், ஒரு முழு வெளிச் சேரல், அனைத்து வாடிக்கையாளர் தகவல் மற்றும் கட்டணத்தை மீட்டெடுக்கிறது. இது அனைத்து வாடிக்கையாளர்களையும் அனைத்து கட்டணங்களையும் உள்ளடக்கியது மற்றும் அட்டவணைகளுக்கு இடையில் பொருந்தாத NULL மதிப்புகளைக் காட்டுகிறது.

தேர்ந்தெடுக்கவும்
c.customer_id,
c.முதல்_பெயர்,
c.கடைசி_பெயர்,
p. அளவு,
ப.கட்டணம்_தேதி
இருந்து
வாடிக்கையாளர் சி
முழு வெளியில் சேர கட்டணம் ப
ஆன்
c.customer_id = p.customer_id;

MySQL பூர்வீகமாக முழு வெளிச் சேர்வை ஆதரிக்காது என்பதை நினைவில் கொள்வது நல்லது. LEFT JOIN, UNION மற்றும் RIGHT JOIN மூலம் சில ஜியுஜிட்சு மேஜிக் செய்ய வேண்டும். மிகவும் எரிச்சலூட்டும், நாம் சேர்க்கலாம்.

முடிவுரை

இந்த டுடோரியலில், OUTER JOINS பற்றி அனைத்தையும் கற்றுக்கொண்டோம். SQL இல் OUTER JOIN என்றால் என்ன, OUTER JOINS வகைகள் மற்றும் இந்த வகையான OUTER JOINS ஐ எவ்வாறு பயன்படுத்துவது என்பதற்கான எடுத்துக்காட்டுகளை நாங்கள் கற்றுக்கொண்டோம்.