சேவைகள் |
CATEGORIES | |||||
|
கணினி |
கவிதைகள் |
பெண்கள் உலகம் |
சிறுவர் பூங்கா |
உடல்நலம் |
தமிழ் சினிமா |
ஆன்மீகம் |
நகைச்சுவை(ங்க...)! | ||||||
|
Email Subscribe |
Serch |
|
Statistics |
Online Users |
|
Site Friend |
|
இணைப்பு கொடுக்க |
Code : |
Vote Plz.. |
|
Main » Articles » மென்பொருள் கற்க » எளிய தமிழில் SQL | [ Add new entry ] |
எளிய தமிழில் SQL - பாகம் 13
Primary key மற்றும் Foreign key ஆகியவற்றைப் பற்றியும், SQL வாயிலாகஇரண்டு Tableகளை இணைப்பது எப்படி என்றும் இன்றைக்குப் பார்ப்போம். Primarykey என்பது ஒரு Tableல் இருக்கும் அனைத்து Row களையும் தனித்தனியாகக்கண்டறிய உதவுகிறது. உதாரணமாக ஒரு எளிய Table. அதில் 2 Columns மட்டும்.அவை DirectorID int, DirectorName varchar(50) (மேலும் இது Primarykeyஆகவும், Autoincrement ஆகவும் கொடுக்கப்படுகிறது. Auto incrementஎன்பது int எனப்படும் எண்களுக்கு மட்டுமே சாத்தியப்படும்) , இந்தTableக்கு DirectorInfo எனப் பெயரிடுவோம். இந்த DirectorID எனப்படும் Column ஐ Primary key ஆக மாற்ற என்ன செய்யவேண்டும். DirectorIDஎனப்படும் Column ஐத் தேர்வு செய்து Right Click செய்து, தோன்றக்கூடியசிறு menuவில் Set Primary Key என்பதைச் சொடுக்கவும். இதைச் செய்தபிறகு DirectorID க்கு இடது புறம் ஒரு சிறிய சாவியின் படம் தெரிய ஆரம்பிக்கும். மேலும் Identity Column ( Auto increment) ஆக மாற்றுவதற்கு என்ன செய்வது? DirectorIDஎனப்படும் Column ஐத் தேர்வு செய்து F4 என்னும் Function keyஐ அழுத்தினால்Properties Windows ஐக் காணலாம். அதில் Table Designer என்னும் தலைப்பின்கீழே, Identity Column என்பதற்கு நேராக உள்ள Drop Downlist ல் DirectorIDஎன்பதைத் தேர்வு செய்யவும். அல்லதுகீழ்க்கண்ட செயல்முறையைத் தொடரலாம். Identity Column ஆக மாற்ற கீழ்க்கண்டபடத்தில் உள்ளபடி செய்யலாம். அந்த Column ஐத் தேர்வுசெய்தபிறகு, கீழே உள்ளColumn Properties Tab ல் , Identity Specification ஐ Yes எனக்கொடுக்கவும். அதன்Increment , seed மதிப்புகளைக் கொடுக்கலாம். அல்லது 1 எனவே விட்டுவிடலாம்.ஒவ்வொரு rowன் மதிப்பும் ஐந்து, ஐந்தாக அதிகரிக்கவேண்டும் எனில் IdentityIncrement ன் மதிப்பை 5 எனக் கொடுக்கவும். சரி ஒருவழியாக DirectorsInfo வின் Structure ஐ உருவாக்கிவிட்டோம். இப்போது இதை Close செய்துவிடவும். இப்போது மேலும் ஒரு எளிய Table ஒன்றை உருவாக்கி, அதற்கு FilmInfo எனப் பெயரிடுவோம். இந்த FilmInfo என்கிற புதிய Tableல் DirectorID என்னும் Column உள்ளது. இது int எனப்படும் எண் வகையைச் சேர்ந்த Data Type. ஒவ்வொரு படத்தையும் வேறு வேறு இயக்குநர்கள் இயக்கியிருக்கலாம். ஒன்றுக்கு மேற்பட்ட திரைப்படங்களை ஒரே இயக்குநரே இயக்கியிருக்கலாம். 1000திரைப்படங்களின் தகவல்களைச் சேகரித்தோம் எனில், அதில் ஒரே இயக்குநரானவர்10 அல்லது 25 அல்லது 100 படங்களைக்கூட எடுத்திருப்பார். 100 முறை அவரதுபெயரை எழுதினால் நினைவகம் (memory) தேவையில்லாமல் ஆக்கிரமிக்கப்படும்.அதனால் அவரது பெயரை ஒரே ஒருமுறை மட்டும் Master Table ல் (இங்கேDirectorsInfo - என்பதே Master table) கொடுத்து அவருக்காக ஒரு எண்ணைஒதுக்கி விடுகிறோம். பலவித திரைப்படங்களின் தகவல்களை இரண்டாவதுTable (FilmInfo என்பது இங்கே Detail Table)ல் பதிவுசெய்யப் போகிறோம்.இங்கே ஒவ்வொரு Directorன் பெயரை முழுவதும் எழுதி நினைவகத்தைஆக்கிரமிக்காமல் அவருக்குரிய எண்ணை மட்டும் கொடுப்போம். MasterTable ல் ஒவ்வொரு Director க்கும் எண்களும், பெயர்களும் கொடுத்துவிட்டு,Detail Tableல் Directorக்கு உரிய எண்ணை மட்டும் கொடுப்பது வழக்கம். நினைவக இழப்பைக் குறைப்பதற்காகவும், ஒரே தகவலை திரும்பத்திரும்ப எழுதுவதைத் தவிர்க்கவும் - இந்த ஏற்பாடு. ஒரு Director ஆனவர் பல படங்களை எடுத்துள்ளார் - எனில் இதை ONE TO MANY RELATIONSHIP என்போம். இந்தஇரண்டாவது Tableன் Structureஐ ஏற்றிமுடித்ததும் கீழ்க்கண்ட செயல்முறையைச்செய்து இரண்டு Tableகளுக்கும் ஒரு உறவுமுறையை உண்டாக்கவும். உறவுமுறை(Table Relationship). Test எனப்படும் Databaseல் Database Diagramsஎன்பதைத் தேர்வுசெய்து, Right Click செய்து, அதில் New Database Diagramஐத் தேர்ந்தெடுக்கவும். உடன்தெரியும் உரையாடல் பெட்டியில் (dialog box) , DirectorsInfo மற்றும்,FilmInfo ஆகிய இரண்டு Tableகளையும் தேர்வு செய்து , Add ஐ அழுத்தியபிறகு,Close அழுத்தவும்.இப்போது திரை கீழ்க்கண்டவாறு காட்சியளிக்கும். DirectorsInfoல் இருக்கும் DirectorID ஐ அப்படியே இழுத்துக்கொண்டு வந்து, FilmInfo வில்இருக்கும் DirectorIDல் விடவும். அதாவது Master Tableன் DirectorID ஐ Dragசெய்து, Detail Table ல் இருக்கும் DirectorIDல் Drop செய்யவும். எளிதான Drag and Drop தான். இப்போது திரையில் மேற்கண்ட படம் தெரியும். Primary key Table (Director Info). ForeignKey Table (FilmInfo). இரண்டுமே DirectorID என்னும் Column ஆகவும், ஒரேDataTypeஆகவும் இருக்கிறது. பிறகு இரண்டு முறை OK கொடுக்கவும். இப்போது திரையில் கீழ்க்கண்ட படத்தைக் காணலாம். இந்த Database Diagram ஐ Close செய்துவிட்டு, Tableக்குரிய தகவல்களை ஒவ்வொரு Row ஆக ஏற்றவும். DirectorsInfoவில் முதலில் உங்களுக்குத் தெரிந்த Directorsன் பெயர்களை மட்டும்கொடுத்தால் போதும். DirectorID என்பது அதுவாகவே உருவாகிக்கொள்ளும்.அடுத்தடுத்த Directorகளுக்குரிய எண்கள் தானாகவே அமைந்துகொள்ளும். இதற்குகாரணம் அந்த குறிப்பிட்ட Column ஆனது IDENTITY Column எனஅமைக்கப்பட்டுள்ளதே. பிறகு ஒவ்வொரு படங்களுக்கும் உரிய தகவல்களைRow by Row வாக FilmInfo என்னும் Tableல் ஏற்றவும். இங்கேDirectorIDஎன்னும் Columnல் ஏற்கனவே Master Tableல் என்ன எண்கள்அளிக்கப்பட்டிருக்கிறதோ அவற்றை மாத்திரமே கொடுக்கவேண்டும். Master Tableல்இல்லாத DirectorID ஐக் கொடுத்தால் பிழைச்செய்தி காண்பிக்கும். உதாரணத்திற்காக DirectorInfoவில் சில records உங்கள் பார்வைக்கு. FilmInfo எனப்படும் Detail Tableல் நான் ஏற்றிய சில Records கீழே. இதில்Master Table ல் என்ன DirectorID கொடுத்தோமோ அதை Detail Tableல் referசெய்கிறோம். ஒவ்வொரு படத்துக்கும் அதை இயக்கிய இயக்குநரின் பெயரைக்கொடுக்காமல், அவருக்குரிய ID எனப்படும் எண்ணை மட்டும் கொடுக்கிறோம். இரண்டு Tableஐயும் இணைத்து JOIN செய்வதற்கு உரிய செயல்முறை கீழே: T-SQL Editorல் Right Click செய்து, Design Query in Editor என்பதைத் தேர்வு செய்யவும். பிறகு வரும் Dialog boxல் இரண்டு Tablesஐயும் தேர்வு செய்து Add கொடுத்தபின் Close செய்யவும். ஏற்கனவே Primary key, மற்றும் Foreign key ஆகியவை முறைப்படி இணைக்கப்பட்டிருந்தால் கீழ்க்கண்ட படம் திரையில் காட்சியளிக்கும். இரண்டுTableகளிலிருந்து எந்தெந்த Columnsஐ நாம் தேர்ந்தெடுக்கிறோம் என்பதைஒவ்வொரு Columnக்கும் எதிரேயுள்ள Checkbox ல் Tick செய்துவிடுங்கள். இப்படி Columnகளைத் தேர்வுசெய்தவுடன் உங்களுக்குக் கீழ்க்கண்ட Query கிடைக்கும் SELECT DirectorsInfo.DirectorName, FilmInfo.FilmName, FilmInfo.Actor, FilmInfo.Actress FROM DirectorsInfo INNER JOIN FilmInfo ON DirectorsInfo.DirectorID = FilmInfo.DirectorID பின் OK அழுத்தினால் மேலேயுள்ள Query ஆனது T-SQL Editorக்கு வந்துவிடும். F5 அழுத்தின் இயக்கவும். இதன் மூலம் இரண்டு Tableன் தகவல்களும் ஒரே திரையில் காண்பிக்கப்படும். நன்றி தமிழ் நெஞ்சம் Source: http://tamilsql.blogspot.com/2009/02/sql-13.html | |
Views: 1381 | |
Total comments: 0 | |