This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Thursday, August 8, 2013

எளிய தமிழில் SQL - பாகம் 3

Identity Column என்றால் என்ன?

ஒருகுறிப்பிட்ட
Column ன் மதிப்பானது, அதற்குரிய மதிப்பை நாம் கொடுக்காமலேயே,அதுவாகவே
தானியங்கித்தனமாக உயர்ந்துகொண்டு வருவதை Auto Increment எனலாம்.இப்படி ஒரு
Column ன் மதிப்பை தானாக உயர்த்துவதால், இந்த Column க்குIdentity Column
என்போம்.


இந்த
Column ன் Data Type ஆனது numericஆக இருத்தல் வேண்டும். இதன் உயர்வு
விகிதம் (Identity Increment), எந்தஎண்ணிக்கையில் இருந்து
ஆரம்பிக்கவேண்டும் (Identity Seed) போன்றவற்றை நாமேதீர்மாணிக்கலாம்.


ஒவ்வொரு
Rowக்கும், இந்த குறிப்பிட்ட IdentityColumn ன் மதிப்பு அதுவாகவே
உயர்ந்துகொண்டிருக்கும். அடுத்தடுத்தRowக்களின் தகவல்களை உள்ளீடு
செய்யும்போது, இந்த Identity Columnன்மதிப்பை நாம் உள்ளீடு செய்யத்
தேவையில்லை.


Primary key என்பது என்னவென்று இதற்கு முந்தைய பதிவில் பார்த்தோம்.

Foreign Key என்றால் என்ன?

Tableஎன்றால்
என்னவென்று நமக்குத் தெரியும். அதில் பல தகவல்களை ஒவ்வொரு Rowவாகஉள்ளீடு
செய்து வைத்திருப்போம். ஒன்றுக்கு மேற்பட்ட Tableகளில் இருக்கும்தகவல்களை
ஒரே திரையில் காண்பதற்கு உதவுவதே Foreign key ஆகும்.


ஒரு குறிப்பிட்ட Table ல் ஒவ்வொரு Rowவையும் பிரித்துத் தனிமைப்படுத்துவதற்கு,
அடையாளம் காண்பதற்கு Primary key உதவுகிறது.

இந்தக் கட்டுமானத்தை Master - Detail என்று கூறுவோம்.
MasterTableல்
ஒரு குறிப்பிட்ட Column ஆனது Primary key ஆக இருக்கும். (இதுமுதலாவது
Table). Primary key ன் மதிப்பு ஒவ்வொரு Rowக்கும் மாறிக்கொண்டேஇருக்கும்.
உதாரணமாக Person#. ஒவ்வொரு நபருக்கும் ஒரு தனிப்பட்ட எண்ணைக்கொண்டு
வித்தியாசப்படுத்துவதற்கு Primary key உதவும்.


Master
Tableல் ஒரு முறை மட்டும் வந்த Person# ஆனது, Detail Table ல் பலமுறை
திரும்பத்திரும்ப வரும். இந்த இரண்டு எண்ணும் ஒரே எண்ணாக இருக்கும்.
இரண்டின் Data Type ம் ஒன்றாகவே இருக்கும். இரண்டும் ஒன்றுக்கொன்று
தொடர்புடையதாக இருக்கும்.

இந்த Primary - Foreign key மூலம் இரண்டு Tableகளின் மதிப்புகளை
ஒரே திரையில் காணலாம்.
இதை join என்போம்.

இந்த இரண்டு keyகளின் Columnல் ஏற்றப்பட்ட மதிப்புகளை
 அடையாளப்படுத்தியே Master-Detail Table மையப்படுத்தப்படுகிறது.

Unique என்றால் என்ன?
ஒரு குறிப்பிட்ட Columnல் உள்ள மதிப்பு ஒவ்வொரு Rowக்கும் வித்தியாசமானதாக
இருப்பதை Unique எனலாம்.

Person#எனப்படுவதை
Unique Column எனலாம். ஒவ்வொரு நபரின் பெயரும் வித்தியாசமானதாகஇருக்கத்
தேவையில்லை (காரணம் : பெயர்ப் பற்றாக்குறை). ஆனால் ஒவ்வொருநபருக்கும் நாம்
அளிக்கும் குறிப்பிட்ட எண் (Person#) ஆனது Unique ஆகும்.

ஆகவேPrimary
key ஆனது Unique தான். ஆனால் Primary keyஆனது NULL ஆக இருக்கவேமுடியாது.
Unique Column ஆனது ஒரே ஒருமுறை மட்டும், NULL மதிப்பைஏற்றுக்கொள்ளும்.
இதுவே இவை இரண்டுக்கும் உள்ள ஒரே வித்தியாசம்.

NULL என்பது எந்த மதிப்பும் இல்லாதது. அதன் மதிப்பு பூஜ்யமோ / எதோ
ஒரு எழுத்தோ / எழுத்துத் தொகுப்போ இல்லை. அது மதிப்பே இல்லாதது.

Primary key ஆனது NULL ஐ ஏற்றுக்கொள்ளாது. ஆனால் Unique Column ஆனது
 ஒரே ஒருமுறை மட்டும் NULLஐ ஏற்றுக்கொள்ளூம்.

DataType களின் வகைகள் யாவை?
SQL Server 2005ல் நாம் பயன்படுத்தும் Data Typesகளின் வகைகள் கீழே:

user-defined data types (highest)
sql_variant
xml
datetime
smalldatetime
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
timestamp
uniqueidentifier
nvarchar
nchar
varchar
char
varbinary
binary (lowest)

DataTypes
என்பது, ஒவ்வொரு Columnலும் நாம் உள்ளீடு செய்யப்போகும் தகவலின்
வகையைக் குறிக்கிறது.எண், எழுத்து, தேதி - போன்ற Data Type ஐ நாம்
அதிகம்பயன்படுத்துவோம்.

Character க்கும் Variable Characterக்கும் என்ன வித்தியாசம்?

NAMECHARACTER(50)
---> இது ஒரு Column எனக் கொண்டால், இதில் Field nameஆனது NAME ஆகும்.
இதில் நாம் உள்ளீடு செய்யவிருக்கிற தகவலின் வகைcharacter எனப்படும்
DataType ஐச் சார்ந்தது. அதில் நாம் அதிகபட்சமாக 50தனித்தனி எழுத்துகளை
(இடைவெளி Space) ஐயும் சேர்த்து உள்ளிடலாம்.

உதாரணமாக
NAME=
"Raja" எனக் கொடுத்தால், இதில் 4 எழுத்துக்களை உள்ளிட்டு
இருக்கிறோம்.ஆனால் அதிகபட்சமாக நாம் 50 எழுத்துக்களை உள்ளிட
அனுமதிக்கிறது.அடைப்புக்குறிக்குள் இருக்கும் (50) என்பது இதைக்
குறிக்கிறது.

நாம்கொடுத்துள்ள
Rajaவில் 4 எழுத்துக்கள் மட்டுமே உள்ளன. ஆனால் மீதியுள்ள
 46எழுத்துக்களின்
மதிப்பை நாம் உள்ளீடு செய்யாமல் விட்டுவிட்டோம். ஆனால்ஒட்டுமொத்த 50
எழுத்துக்களுமே வன்வட்டு (hard disk) ல்பதிவாகும்.மீதியுள்ள 46
எழுத்துக்களுக்கு Space மூலம் நிரப்பப்பட்டு அதன்ஒட்டுமொத்த 50
மதிப்புகளும் வீணாக்கப்பட்டுவிடும்.

ஆனால்
variablecharacter என்பதில், Babu என உள்ளிட்டால் 4 எழுத்துக்கள் மட்டுமே
கணக்கில்எடுத்துக்கொள்ளப்படும். மீதியுள்ள 46 எழுத்துக்களில் இருக்கும்
Spaceகணக்கில் எடுத்துக்கொள்ளப்படாமல் அவற்றின் Space
எல்லாம்நிராகரிக்கப்பட்டு 4 எழுத்துக்கள் மாத்திரமே hard disk ல்
எழுதப்படும்.இதனால் நம் நினைவகம் வீணாவது தவிர்க்கப்படும்.

UniCode எழுத்துக்களைப் பதிவு செய்வதற்கு எந்த Data Types ஐப்
 பயன்படுத்துவது?

பெரும்பாலும் ஆங்கிலத்தில் உள்ள தகவல்களை character, varchar
முதலிய Data Type மூலம் உள்ளீடு செய்யலாம்.

ஆனால் ஆங்கிலம் அல்லாத பிற மொழிகளான தமிழ், மலையாள
 மொழிகளை உள்ளீடு செய்ய நாம் nvarchar, nchar போன்ற Data Type ஐப்
 பயன்படுத்தலாம்.

எளிய தமிழில் SQL - பாகம் 4


ஒரு Tableன் Structure எப்படி இருக்கும்?

Column Name, Data Type(Width), Allow Nulls இவைகள் அனைத்தும் அடங்கியது
ஒரு Table Structure.


AllowNull
என்பது tick செய்யப்பட்டிருந்தால், அதன் மதிப்பை உள்ளீடுசெய்யும்போது
வெறுமனே விட்டுவிடலாம் என்று அர்த்தம். தற்சமயம் அதன்மதிப்பு நமக்குத்
தெரிந்திருக்கவில்லை. பிறகு சில காலம் கழித்துக் கூடஅதன் மதிப்பை நாம்
உள்ளிட்டுக் கொள்ளலாம்.

Allow Null என்பது tickசெய்யப்படாமல்
இருந்தால், அந்தக் குறிப்பிட்ட columnன் தகவலைக் கண்டிப்பாகநாம் கொடுத்தே
தீரவேண்டும். அதன் மதிப்பை உள்ளிடாமல் விட்டுவிட்டால்பிழைச்செய்தி வரும்.
ஆனால் Identity Columnக்கு மட்டும் ஒரு விதிவிலக்குஉண்டு.

முதல் Column ஆகிய AddressID ன் ஆரம்பத்தில் ஒரு சிறிய சாவியின் படம்
 போடப்பட்டுள்ளது. அது இந்த Tableன் primary key ஆகும்.



Primarykey
ஆனது ஒரு குறிப்பிட்ட Row வை தனித்து அடையாளம் கண்டுகொள்ள உதவும்.மேலும்
AddressID ஆனது Identity Column ஆகவும் குறிப்பிடப்பட்டுள்ளதால்,இதன்
மதிப்பை நாம் நேரடியாக உள்ளிட வேண்டிய அவசியமில்லை.
Databaseல்தானியங்கியாக அடுத்தடுத்த எண்களை இந்த AddressIDல் Input
செய்துவிடும்.

மேலேஉள்ள Table Structureல் AddressLine2 க்கு
மட்டும் Allow Nulls ஆனது tickசெய்யப்பட்டு இருக்கிறது. ஆகவே
AddressLine2க்கு உரிய தகவல் நம்மிடம்தற்சமயம் இல்லையென்றால் அதை நாம்
உள்ளீடு செய்யாமல் அப்படியே விட்டுவிட்டுஅடுத்த Columnக்கு உரிய தகவலை
உள்ளீடு செய்யலாம். பிறகு எப்போதுவேண்டுமானாலும் AddressLine2க்கு உரிய
Dataவைக் கொடுக்கலாம். பிழைச்செய்திஎதுவும் வராது.

rowguid என்பதற்கு நேராக uniqueidentifier என Data Type இருக்கிறது.

அது என்ன Unique Identifier?

8DD27D89-6AE7-4316-B3B8-0CCEF0924F60 இது போன்ற ஒரு hexadecimal மதிப்பு.
இதுஒவ்வொரு
முறையும் வேறு வேறு மதிப்புகளைக் கொடுக்கும். கணினிக்குக்
கணினிவித்தியாசமான மதிப்பையும், ஒரே கணினியில் ஒவ்வொரு முறையும்
இயக்கும்போதுவேறு வேறு மதிப்புகளைக் கொடுக்கும்.

நாம் இந்த Unique
IdentifierData Type ஐக் கொண்ட Column க்கு எந்த தகவலையும் உள்ளீடு
செய்யவேண்டாம்.இது தானியங்கியாக கணினியே உருவாக்கும் ஒரு மதிப்பாகும்.

ஒவ்வொரு row வையும் பிரித்துக் காட்ட UniqueIdentifierஐப் பயன்படுத்தலாம்.

உதாரணம் :

declare @a uniqueidentifier
set @a = newid()
print @a

இதன் விடை.

F94771ED-8405-4C30-893E-0325FA0A394C

மேலே கொடுத்துள்ள ஒரு சிறிய நிரல் ஆனது T-SQL programming ல் எழுதப்பட்டது.

T-SQL என்றால் Transact SQL என்ற விரிவைக் கொண்டது. இது ஒரு கணினி மொழி.

மேலே @a என்பது ஒரு variable. இதன் மதிப்பு ஒவ்வொரு முறையும் மாறிக்கொண்டே இருக்கும்.

set@a
= newid() ---> என்றால் ஒரு கணினியால் அந்த நேரத்தில்உருவாக்கப்பட்ட
ஒரு புதிய hexadecimal based மதிப்பை அந்த variable @a ல்பதிகிறோம்.

print
@a --> திரையில் @a என்பதன் மதிப்பைக் காண்பி.உடனே திரையில் தெரியும்
மதிப்பானது F94771ED-8405-4C30-893E-0325FA0A394Cஇப்படி இருக்கலாம்.
எனக்கு இந்த மதிப்பு வந்தது. உங்களுக்கு வேறு மதிப்புவரும்.
ஒவ்வொருவருக்கும் வேறுவேறு மதிப்புகளை இந்த நிரல் உருவாக்கித்தரும்.

AddressLine1, AddressLine2, City, PostalCode ஆகிய Columnகளின்
 DataType ஆனது nVarchar வகையைச் சேர்ந்தது.

அதாவது இந்த Columnகளில் நாம் unicode வகையைச் சேர்ந்த எண்கள்,
எழுத்துக்கள், பிற அடையாளங்கள் ஆகியவற்றை உள்ளிடலாம்.

AddressLine1க்காக
நாம் அதிகபட்சமாக 60 எழுத்துக்களை ஒதுக்கியுள்ளோம். ஆனால் நாம்
20எழுத்துக்களை மட்டுமே உள்ளிட்டால், மீதியுள்ள 40 காலியிடங்கள்
trimசெய்யப்பட்டு 20 எழுத்துக்கள் மாத்திரமே table ல் பதிவாகும்.
இதுவேvarcharன் சிறப்பு.

இதுவே char என இருந்தால் ஒட்டுமொத்தமாக நாம் எவ்வளவு
 எழுத்துக்களை ஏற்கனவே ஒதுக்கியுள்ளோமோ அத்தனை இடங்களுமே வீணடிக்கப்பட்டுவிடும்.

AddressID,StateProvinceID
இவையிரண்டின் DataType ஆனது int வகையைச் சேர்ந்தது.அதனால் இந்த
இரண்டுக்கும் நாம் எண்களை உள்ளீடு செய்யலாம். ஆனால் AddressIDஆனது
Identity Column வகையைச் சேர்ந்ததால் (அது auto incrementவகைப்பட்டது)
அதற்குத் தகவலை உள்ளிட வேண்டாம். StateProviceIDக்கு மட்டும்அதற்குரிய
எண்ணைப் பதிவிட்டால் போதும்.

Modified Date என்பதில்அதற்குரிய
DataType ஆனது DateTime ஆகக் குறிப்பிடப்பட்டுள்ளது.அதனால் அந்தModified
Date க்கு உரிய columnன் மதிப்பில் ஒரு குறிப்பிட்ட தேதியைஉள்ளிடவேண்டும்.

ஒரு சிறிய T-SQL நிரல்.

declare @a datetime
set @a = getdate()
print @a

@a என்பது datetime எனப்படும் DataTypeஐச் சேர்ந்தது.
getdate() எனப்படும் ஒரு function நடப்புத் தேதியையும், நேரத்தையும் தரவல்லது.

print @a என்றவுடன் கிடைத்த விடை.
Jan 26 2009 11:00AM

இங்கேஒரு
சில இடங்களில் புதியவர்களுக்காக சில குறிப்பிட்ட பதங்களை
ஒவ்வொருமுறையும்
விளக்கியிருப்பேன். Primary key, Identity Column போன்றவற்றைமீண்டும்
சுருக்கமாகக் கூறியிருப்பேன். ஒரு புரிதலுக்காகத்தான் அவ்வாறுமீண்டும்
கூறியிருக்கிறேனே தவிர வேறெதுவும் இல்லை. இதற்கு முன்னர்வெளியிட்ட 3
பதிவுகளில் அவற்றை விளக்கியிருந்தாலும், அதே பதங்களை
 இங்கே4வது பதிவுகளில்
பயன்படுத்தும்போது புரியாமல் போகிவிடக்கூடாது
மீண்டும்குறுவிளக்கமாகக்
குறிப்பிட்டிருக்கிறேன்.

எளிய தமிழில் SQL - பாகம் 2


RDBMS என்பது என்ன?
RDBMS என்பதன் விரிவு : Relational Database Management System.

SQL ஐப் பயன்படுத்தும் நவீன மென்பொருட்கள் சில :
MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.

Table என்பது என்ன?
Database ல் தகவல்களை எங்கே பதிவு செய்திருக்கிறோமோ அந்த அமைப்பு Table எனப்படும்.

ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்களின் தொகுப்பு Table.

Table ஆனது எந்தவிதமான கட்டமைப்பில் அமைந்திருக்கும்?.

ஒரு Table ல் பல Column / Field இருக்கும். பல Column களின் தொகுப்பே Table.

ஒவ்வொருColumn
மும் ஒரு குறிப்பிட்ட வகையான தகவலைக் கையகப்படுத்தி இருக்கும்.ஆகவே
ஒவ்வொரு Columnம் அதற்குரிய Data Type ஐக் கொண்டேஅனுசரிக்கப்படுகிறது.

ஒரு Databaseல் நிறைய Tableகள் இருக்கும். பல்வேறு Tableகளின் தொகுப்பை Database எனலாம்.


மேலே ஒரு Tableன் மாதிரி
வடிவத்தைக் கொடுத்துள்ளேன். (படத்தின் மேல் சொடுக்கினால் பெரிதாகப் பார்க்கலாம்).

இதில் Person#,LastName,FirstName,Address,City ஆகியவற்றை Column/Field எனலாம்.

Person# என்பது எண்களால் குறிப்பிடப்படுகிறது. இதன் Data Type ஆனது numeric.
LastName,FirstName,City ஆகியவை எழுத்தால் குறிப்பிடப்படுவதால்
இவற்றின் Data Type ஆனது character, variable character ஆகும்.

Addressஎன்கிற
Columnல் எண்ணாலும், எழுத்தாலும் குறிப்பிடப்பட்டாலும் இதுcharacter
அல்லது variable character என்கிற வகைக்குள்ளேயே வைத்து விடலாம்.

PinCodeஎன்று
ஒரு column இருந்தால் அதையும் Character வகைக்குள்ளே
வைத்துவிடலாம்.PinCode பயன்படுத்தி நாம் எந்தவிதமான
கூட்டல்,கழித்தல்,வகுத்தல்,பெருக்கல்முதலிய கணக்கீடுகளைச்
செய்யப்போவதில்லை. அதனால் அதை numeric வகைக்குள்வைப்பதற்குப் பதிலாக
character வகைக்குள்ளேயே வைத்துவிடலாம்.

ஒரு Table ல் Row அல்லது Tuple என்றால் என்ன?
மேலே உள்ள Table ல் மொத்தம் 3 row க்கள் இருக்கின்றன.

முதலில் இருப்பது தலைப்பாக இருப்பதால் அதை விடுத்து, அதன்
கீழ் உள்ள 3 row மட்டுமே கருத்தில் எடுத்துக்கொள்ளப்படுகின்றன.

Row என்பது Columnகளின் தொகுப்பு. ஒன்றுக்கொன்று தொடர்புடைய
தகவல்களை ஒரு Row ல் எழுதி வைப்பது வழக்கம்.

உதாரணமாக : 3,Karthik,The Hero,Space, Erode : இவை அனைத்தும்
 ஒரு குறிப்பிட்ட நபரின் தகவல்களே. ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்கள்.

3 என்பது நபரின் எண்
Karthik : First Name
The Hero : Last Name
Space : Address
Erode : City

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

Karthikஎன்பவரின்
Address தற்சமயம் நமக்குத்தெரிந்திருக்கவில்லை. அதனால் அதைஅப்படியே
நிரப்பாமல் விட்டுவிட்டு, அடுத்த Field ஆகிய City ல் Erode
எனஎழுதிவிட்டோம்.

இவ்வாறு ஒரு குறிப்பிட்ட Columnல்
நிரப்பப்படவேண்டிய தகவலானது தற்சமயம் நிரப்பப்பட அவசியம்
இல்லை என்பதை
Allow Nullஎன்பதே தீர்மாணிக்கும்.

A = 0, ----> இது எண் வகையைச் சேர்ந்தது (numeric)
B = "Karthik" ----> இது எழுத்து வகையைச் சேர்ந்தது (character)
C = NULL ----> தகவல் தற்சமயம் கைவசம் இல்லை (NULL)

NULL என்பதன் அர்த்தம்யாதெனில்,
தற்போது அந்தக் குறிப்பிட்ட தகவலின் மதிப்பு எதுவும் இல்லை. அது
பூஜ்யமும்
இல்லை. அதில் எந்த மதிப்பும் இல்லை. அது NULL - அவ்வளவுதான்.

Allow NULL - இதன் மதிப்பை ஆமாம் (true), இல்லை (false) என்கிற கட்டுக்குள்
 கொண்டு வரலாம். true / false.

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

ஒன்றுக்கு மேற்பட்டவர்களுக்கு ஒரே பெயர்கள் இருக்கலாம் (பெயர்ப் பற்றாக்குறை!).

எனக்குKarthik
என்கிற பெயர்கள் உடைய 6 நண்பர்கள் இருக்கிறார்கள்.
அவர்களைவித்தியாசப்படுத்த ஒவ்வொருவருக்கும்
ஒரு எண்கள் தரப்படுகின்றன.
அதுவேPerson#.

இதற்கு Primary Key என்று பெயர்.

அது என்ன Primary Key?

ஒன்றுக்குமேற்பட்டவர்களின்
பெயர்கள் ஒரே மாதிரியாக இருக்கும்போது, ஒவ்வொருவரையும்
தனித்தனியாக
அடையாளம் காண்பிப்பதற்கு உதவும் மாற்று உறுப்புதான் PrimaryKey ஆகும்.

ஒரு Tableல் பல Rowக்கள் இருக்கலாம். ஒரு Rowல் பல Column இருக்கலாம்.

ஒவ்வொரு Rowவையும் மற்ற Row க்களில் இருந்து பிரித்து தனித்து
அடையாளம் காண்பதற்கு Primary key பயன்படுத்துகிறோம்.

சற்றுமுன்னர்
NULL பற்றிப் பார்த்தோம். ஒரு குறிப்பிட்ட தகவலின் மதிப்பு,தற்சமயம்
கையில் இல்லாமல் இருந்தால் அதை NULL என்று தீர்மானித்து
அப்படியேவிட்டுவிடலாம்.

Primary key ஆனது NULL ஆக இருக்க வாய்ப்பு உள்ளதா?
கண்டிப்பாக இல்லை. Primary key ஆனது எந்த ஒரு சமயத்திலும் NULL
ஆக இருக்கவே இருக்காது.

எளிய தமிழில் SQL - பாகம் 1


SQL என்பதன் விரிவு என்ன?
Structured Query Language

SQLன் பயன்கள் யாவை?

Databaseன் தகவல்களைத் தேடி எடுப்பது,
புதிய தகவலை ஏற்றுவதற்கு,
பழைய விவரங்களை மாற்றுவதற்கு,
அழிப்பதற்கு மற்றும் இன்னும் நிறைய விசயங்களுக்கு SQL பயன்படுகிறது.
Database களில் இருக்கும் தகவல்களை எடுக்க / கொடுக்க SQL உதவுகிறது.

Query என்றால் கேள்வி, விசாரணை, தேடுதல் என அர்த்தம் கொள்ளலாம்.


சரி எடுத்த எடுப்பில் Database என ஆரம்பித்துவிட்டேன்.
அது என்ன Database?

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

ஒரு வசனம் பேசுவார் - Information, Information is Wealth என்பார்.அது
யாரோ எழுதிக்கொடுத்த வசனம் அல்ல. எழுத்தாளர் சுஜாதா
பாய்ஸ்படத்துக்காக
எழுதிக்கொடுத்த வசனம்தான். இது ஒரு நகைச்சுவை உதாரணம்.

கீழே ஒரு எளிய Table வடிவம் ஒன்றைத் தருகிறேன்.

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

மாத இறுதியில் ஒரு குறிப்பிட்ட மாணவர் எத்தனை நாட்கள் வந்திருந்தார்?
 அல்லது எத்தனை நாட்கள் வரவில்லை எனக் கணக்கிட்டுக்கொள்ளலாம்.

இதில் மாணவர் பெயர், தேதி முதலியவற்றை Field அல்லது Column எனலாம்.
மாணவரின் பெயர் எழுத்து வடிவில் இருக்கும்.
அதனை String / Character / Variable character என்போம்.

தேதி என்பது month-date-year அல்லது date/month/year போன்ற ஒரு வடிவில்
அமைந்திருக்கும். இது இரண்டாவது Field ஆகும்.

மாணவர் பெயர் ---> character(50)
தேதி ---> datetime

ஒரு மாணவருக்காக எவ்வளவு எழுத்துகளை அதிகபட்சமாக ஒதுக்குகிறோம்
 என்பதே அடைப்புக்குறிக்குள் தரப்படுகிறது.

உதாரணமாக மாணவரின் பெயர் ‘Babu’ எனக் கொண்டால் அவருடைய
 பெயரின் எழுத்துக்களின் எண்ணிக்கை 4.
’valpaiyan @ Arun The Hero’ எனக் கொண்டால் அவருடைய பெயரின்
ஒட்டுமொத்த எழுத்துக்களின் எண்ணிக்கை 25.

இப்படிஒவ்வொருவரின்
பெயரில் உள்ள எழுத்துக்களின் எண்ணிக்கை வித்தியாசப்படுகிறது.ஆகவே
 நாமாகவே
ஒரு உச்சமதிப்பு ஒன்றை கொடுத்துவிடவேண்டும். இங்கேcharacter(50) எனக்
கொடுத்தால் Name என்கிற Field / Column ல் அதிகபட்சமாக50 எழுத்துக்களைப்
பதிவுசெய்ய இயலும் எனக் கொள்க.


மாணவர் பெயர் ---> character(50)
தேதி ---> datetime இவை இரண்டும் இரண்டு Column எனக் கொண்டால்,
 இவற்றினை ஒட்டுமொத்தமாக ஒரு Table எனலாம்.

ஒரு Table என்பது பல Field களின் தொகுப்பு.

ஒரு Field என்பது குறிப்பிட்ட ஒரே மாதிரியான தகவலின் தொகுப்பு.

ஒவ்வொருFieldலும்
நாம் பதிவு செய்யப்போகிற தகவலின் அடிப்படையில், எந்த
மாதிரியானதகவலைப்
பதிவு செய்யப் போகிறோம் என்பதை அதன் Data Type மூலம்நிர்ணயிக்கலாம்.

மாணவரின்
பெயரை character(50) என்றோம். இங்கே 50என்பது எத்தனை எழுத்துக்கள்
என்பதைக் குறிக்கிறது. character என்பது ஒருData Type ஆகும்.

தேதி --> datetime இங்கு datetime என்பது மற்றொரு வகை Data Type ஆகும்.

எழுத்துக்களைப்பதியும்போது
character, எண்களைப்பதியும்போது numbers(int,bigint,decimal,float).
தேதியைக் குறிக்கும்போது datetime என ஒவ்வொருவகையான
 தகவலுக்கும் ஒவ்வொரு
DataType உள்ளது.

ஆகவே Data Type என்பது தகவலின் வகையைக் குறிப்பதாகும்.

SQL வாயிலாக ஒரு Table ஐ உருவாக்க / மாற்ற / அழிக்க / தகவலைத்
தேட இயலும்.

Tableஎன்பதில்
பல Columns இருக்கும். ஒவ்வொரு Columnன் தகவலின் வகையை
 DataTypeமூலம்
நிர்ணயிக்கலாம். எவ்வளவு எழுத்துகள் என்பதை அடைப்புக்குறிக்குள்
சொல்கிறோம்.

உங்கள் கணினியில் SQL கட்டளைகளை இயக்கிப் பார்ப்பதற்காக
Microsoft SQL Server 2005 Express Edition மென்பொருளை இலவசமாகத்
தரவிறக்கி உங்கள் கணினியில் நிறுவிக்கொள்ளவும்.

பின் குறிப்பு : வாரத்திற்கு 2 முறையாவது இந்த எளிய தமிழில் SQL என்கிற
தொடர் பதிவுகளை அளிக்கலாம் என முன்வந்துள்ளேன். உங்கள் ஆதரவு
தேவை.

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

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

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

http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&DisplayLang=en