சேவைகள் |
CATEGORIES | |||||
|
கணினி |
கவிதைகள் |
பெண்கள் உலகம் |
சிறுவர் பூங்கா |
உடல்நலம் |
தமிழ் சினிமா |
ஆன்மீகம் |
நகைச்சுவை(ங்க...)! | ||||||
|
Email Subscribe |
Serch |
|
Statistics |
Online Users |
|
Site Friend |
|
இணைப்பு கொடுக்க |
Code : |
Vote Plz.. |
|
Main » Articles » மென்பொருள் கற்க » எளிய தமிழில் SQL | [ Add new entry ] |
எளிய தமிழில் SQL - பாகம் 15
இன்றைய பாகம் 15ல் இரண்டு tableகளை இணைப்பது குறித்து இன்னும் விவரமாகப் பார்க்க இருக்கிறோம். பாகம்14ல் Primarykey மற்றும் Foreign key ஆகியவற்றைப் பயன்படுத்துவது என்பதுகுறித்துப் பார்த்தோம். அதன் தொடர்ச்சியாக இதைக் கொண்டாலும் இதில் சிலவிதிவிலக்குகள் புரிதலுக்காகச் செய்திருக்கிறேன். ஒன்றுக்கு மேற்பட்ட Tableகளை இணைத்து அனைத்து அறிக்கைகளையும் ஒரே திரையில் காண்பதற்கு JOIN பயன்படுத்தப்படுகிறது. JOINன் வகைகள் INNER JOIN OUTER JOIN SELF JOIN CROSS JOIN OUTER JOIN ஐ இன்னும் 3 வகை உட்பிரிவுகளாகப் பிரித்து, LEFT OUTER, RIGHT OUTER, FULL OUTER எனப் பிரிக்கலாம். இங்கேமாதிரிக்காக 2 tableகளை உருவாக்கி அவற்றில் சில மாதிரி records ஐஏற்றியிருக்கிறேன். அவற்றின் பெயர்கள் Author மற்றும் Publication ஆகியவை. Author அட்டவணையின் Structure மற்றும் மாதிரி தகவல்கள் ஆகியவை கீழே: Publication அட்டவணையின் Structure Structure மற்றும் மாதிரி தகவல்கள் ஆகியவை கீழே: எழுத்தாளர்அட்டவணையில் உள்ள முதல் 4 Authorகள் பதிப்பக அட்டவணையில் வேறுவேறு நூல்களைஎழுதி இருக்கின்றனர். ஆனால் மீதமுள்ள 6 எழுத்தாளர்கள் எழுதிய நூல்களின்விவரங்கள் பதிப்பக அட்டவணையில் இல்லை. அதேபோல பதிப்பக அட்டவணையில்உள்ள குறிப்பிட்ட Chicken Special முதல் Making of Nandha வரையிலானபுத்தகங்களின் எழுத்தாளர்கள் பற்றிய விவரங்கள் Author அட்டவணையில் இல்லை.இது ஒரு மாதிரிக்காக உருவாக்கப்பட்ட tableகள். இவற்றின் மூலம் நாம்tableகளை இணைக்கும் JOIN பற்றி எளிதாக அறிந்துகொள்ளலாம். முதலில் INNER JOIN பற்றிப் பார்ப்போம். அதன் Syntax கீழே: SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2 FROM table1 INNER JOIN table2 ON table1.CommonField = table2.CommonField இங்கே table1 = Author , table2 = Publication என அறிக. இதற்கான உதாரணத்தைக் கவனிக்கவும் SELECT Author.AuthorID, Author.AuthorName, Publication.BookName FROM Author INNER JOIN Publication ON Author.AuthorID = Publication.AuthorID இதன் விடை: இங்கே இரண்டு tableகளுக்கும் பொதுவாக அமைந்துள்ள rows மட்டுமே இடம்பெற்றுள்ளன. Authorஅட்டவணையிலும், Publication அட்டவணையிலும் வண்ணமிட்டுக் காட்டப்பட்டதகவல்களைக் காணவில்லை. பொதுவாக உள்ளவை மட்டுமே இடம்பெற்றுள்ளன. கீழேயுள்ளகணம் பற்றிய படத்தைக் கவனிக்கவும். LEFT OUTER JOIN பற்றிப் பார்ப்போம். அதன் Syntax கீழே: SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2 FROM table1 LEFT OUTER JOIN table2 ON table1.CommonField = table2.CommonField இங்கே table1 = Author , table2 = Publication என அறிக. இதற்கான உதாரணத்தைக் கவனிக்கவும் SELECT Author.AuthorID, Author.AuthorName, Publication.BookName FROM Author LEFT OUTER JOIN Publication ON Author.AuthorID = Publication.AuthorID இதன் விடை: இங்கேமுதலாவது table ஆகிய Author ல் இருக்கும் அனைத்து rowsஇடம் பெற்றுள்ளன.ஒரே எழுத்தாளர் ஒன்றுக்கு மேற்பட்ட புத்தகங்களை எழுதியுள்ளதால் அவர்கள்திரும்பத்திரும்ப இடம்பெற்றிருக்கிறார்கள். 5 முதல் 10 வரையிலானஎழுத்தாளர்கள் எழுதிய புத்தகங்கள் Publication அட்டவணையில் இல்லாததால்அவர்களுக்கு நேரே உள்ள BookName ல் NULL மூலம் நிரப்பப்பட்டுவிட்டது. இடதுபுற(Left side = Author) அட்டவணையில் எல்லா recordsம்தேர்வுசெய்யப்பட்டுவிடும். ஆனால் வலது புறத்தில் உறவுமுறை (Relation)இல்லாத rows எல்லாவற்றிலும் NULL நிரப்பப்பட்டுக் காண்பிக்கப்படும். மேலே காட்டப்பட்டிருக்கு கணம் பற்றிய படத்தைக் கவனிக்கவும். RIGHT OUTER JOIN பற்றிப் பார்ப்போம். அதன் Syntax கீழே: SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2,table2.Field3 FROM table1 RIGHT OUTER JOIN table2 ON table1.CommonField = table2.CommonField இங்கே table1 = Author , table2 = Publication என அறிக. இதற்கான உதாரணத்தைக் கவனிக்கவும் SELECT Author.AuthorID, Author.AuthorName, Publication.BookName,Publication.Publication FROM Author RIGHT OUTER JOIN Publication ON Author.AuthorID = Publication.AuthorID இதன்விடை: AuthorIDல் 5 முதல் 10 வரையிலான அனைத்து Authorகளைத் தவிரமீதியுள்ளோர் மட்டுமே இடதுபுறம் இடம்பெற்றுள்ளனர். Chicken Special முதல்Making of Nandha வரையிலான நூல்களை எழுதிய Author பற்றிய குறிப்புகள்Author அட்டவணையில் இல்லை - அதனால் அவற்றுக்கு நேராக NULLநிரப்பப்பட்டுவிட்டது. Right Outer Join ல் வலது புறம் (Right side) உள்ளஅட்டவணையின் அனைத்து records ம் திரையில் காண்பிக்கப்படும். ஒப்புமைஇல்லாத இடதுபுற rowsக்கு மட்டும் NULL நிரப்பப்பட்டுவிடும். கீழேயுள்ள கணம் பற்றிய படத்தைக் கவனிக்கவும்.இப்போது FULL OUTER பற்றிப் பார்ப்போம். அதன் Syntax கீழே: SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2,table2.Field3 FROM table1 FULL OUTER JOIN table2 ON table1.CommonField = table2.CommonField இங்கே table1 = Author , table2 = Publication என அறிக. இதற்கான உதாரணத்தைக் கவனிக்கவும் SELECT Author.AuthorID, Author.AuthorName, Publication.BookName,Publication.Publication FROM Author FULL OUTER JOIN Publication ON Author.AuthorID = Publication.AuthorID இதன் விடை: இரண்டுபுறமுள்ளtableகளிலும் உள்ள பொதுவான rows அதன் இடங்களில் சரியாக இடம்பெற்றுள்ளன.உறவுமுறையில்லாத recordsம் இடம்பெற்றுள்ளன. ஆனால் எங்கெங்கு தகவல்கள்இல்லையோ அங்கேயெல்லாம் NULL மூலம் நிரப்பப்பட்டுவிட்டன. Authorஅட்டவணையின் Elavarasan முதல் KaviNilavu வரையிலான எழுத்தாளர்களும்இடம்பெற்றிருக்கின்றனர். ஆனால் அவர்கள் எழுதிய புத்தகங்கள் Publicationஅட்டவணையில் இல்லாத காரணத்தால் வலதுபுறத்தில் NULL இடம்பெற்றுள்ளது.அதேபோல Chicken Special முதல் Making of Nandha வரையிலான நூல்களைஎழுதியவர்களின் விபரம் Author அட்டவணையில் இல்லாததால் இடப்பக்கமாக NULLநிரப்பப்பட்டுவிட்டது. CROSS JOIN பற்றிப் பார்ப்போம். Cross join என்பது குறுக்குப் பெருக்கல் ஆகும். இதன் மாதிரி வடிவம்: SELECT Author.AuthorName, Publication.BookName, Publication.Publication FROM Author CROSS JOIN Publication மொத்த rowsன் எண்ணிக்கை = இடப்புறம் உள்ள rowsகளின் எண்ணிக்க x வலப்புறம் உள்ள rows எண்ணிக்கை. SELECT COUNT(*) FROM Author --> 10 records உள்ளன SELECT COUNT(*) FROM Publication --> 16 rows உள்ளன. Count(*) இந்த Function மூலம் ஒரு tableல் எத்தனை rows உள்ளன என அறியலாம். Cross join இணைப்பிற்குப் பிறகு உருவாகும் rowsகளின் எண்ணிக்கை = 10 x 16 = 160. இடப்புறமுள்ள ஒவ்வொரு recordம் , வலப்புறமுள்ள அனைத்து recordsஉடன் ஒவ்வொருமுறையும் இணைத்துக் காட்சியளிக்கும். SELF JOIN என்பது ஒரே table ஆனது, அதற்குள்ளேயே இணைக்கப்படுவதால் அவ்வாறு அழைக்கப்படுகிறது. நன்றி தமிழ் நெஞ்சம் Source: http://tamilsql.blogspot.com/2009/02/sql-15.html | |
Views: 1256 | |
Total comments: 0 | |