Saturday, January 31, 2009

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

ஒரு சிறிய Table ஒன்றை உருவாக்கிக்கொள்வோம். அதைக் கொண்டு SELECT ன் தன்மைகளை ஆராயலாம்.

Table ஒன்றை உருவாக்குவதற்காக, GUI (Graphical User Interface) வழியாக என்ன செய்வதென்று ஏற்கனவே பாகம்-5ல் பார்த்திருக்கிறோம்.

அதையே CUI எனப்படும் Character User Interface வாயிலாக T-SQL Editor ல் தட்டித்தட்டியே ஒரு Tableன் Structureஐ எப்படி உருவாக்குவது என்பதை இங்கே காணலாம்.

T-SQL Editorல் எவ்வாறு நிரல் எழுதுவது? T-SQL Editorக்கு எந்த செயல்வழி மூலம் செல்வது? ஆகியவற்றைத்தெரிந்து கொள்ள - இங்கே சொடுக்கவும்.

ஒரு வழியாக T-SQL Editorக்கு வந்துவிட்டோம்.

Table ஒன்றை புதிதாக உருவாக்க உதவும் ஒரு எளிய pattern கீழே :

CREATE TABLE tableName
(

ColumnName1 datatype,

ColumnName2 datatype,

ColumnName3 datatype, ....
)
இந்த pattern ஐ Syntax என்பார்கள். கணக்குப் பாடத்தில் ஒரு கணக்கைச் செய்வதற்கு முன் மாதிரி கணக்கைக் கொடுத்து - அதைப்போல மற்றொன்றைச் செய்யச் சொல்வார்கள். அந்த மாதிரி கணக்கு போலத்தான் இந்த Syntax.

இந்த Syntax ல் tableName என்கிற இடத்தில் ஒரு அட்டவணையின் பெயர் (MyList), ColumnName1 என்கிற இடத்தில் Person#, LastName, FirstName, City போன்றவையும் ஒவ்வொரு DataTypeக்கு நேராக அதன் வகையையும் குறிப்பிட்டுவிட்டால் கீழ்க்கண்டமாதிரி Tableன் வடிவம் இருக்கும்.

CREATE TABLE MyList
(

Person# int,
[Name] varchar(50),

City varchar(50)

)


Name என்பது SQL ல் உள்ளமைந்த ஒரு தனிப்பட்ட keyword. ஆகவே அதைப் பிரித்துக் காண்பிப்பதற்காக [Name] என ஒரு அடைப்புக்குள் (Square Bracket) குறிப்பிடுகிறோம். இந்த Pattern - Syntax ஐ நிரப்பிய பிறகு F5 keyஐ விசைப்பலகையில் அழுத்தி Table ஐ உருவாக்கலாம். ஏதேனும் பிழைச்செய்தி வந்தால் அதைச் சரிசெய்தபிறகு Table உருவாகிவிடும்.

Table உருவாகிவிட்டதா என்பதை எப்படி அறிவது?

ஒரு சிறிய SELECT வடிவம் ஒன்று.

SELECT * FROM tableName ---> ஒரு Tableல் இருக்கும் அனைத்து rowsஐயும் திரையில் காண்பிப்பதற்காக.

SELECT * FROM MyList --> MyList என்பது நாம் சற்று முன்னர் உருவாக்கிய Tableன் பெயரே. இதை இயக்குவதற்கு F5 அழுத்தினால் கிடைக்கும் விடை கீழே :

இங்கே * என்பது அனைத்து rows ஐயும் குறிக்கிறது.

நாம் இப்போது உருவாக்கிய Persons என்கிற Tableல் எந்தவிதமான தகவலும் ஏற்றப்படவில்லை. வெறும் Structure மட்டுமே உருவாக்கப்பட்டுள்ளது.

இந்த MyList என்று சற்றுமுன்னர் உருவாக்கிய Tableல் ஒவ்வொரு rowவாக புதுப்புது தகவல்களை ஏற்றுவதற்கு என்ன செய்யவேண்டும்?

புதிய தகவல்களை ஏற்றுவதற்கு உரிய Syntax (Pattern)

INSERT INTO table_name
(
column1,
column2, ...
)
VALUES
(
'value1',
'value2', ...
)


நாம் நமது MyList அட்டவணைக்குத் தகுந்தாற்போல் மாற்றினால்

INSERT INTO MyList (Person#, [Name] , City) VALUES (1, 'Jimsha', 'Chennai')
INSERT INTO MyList (Person#, [Name] , City) VALUES (2, 'Valpaiyan', 'Erode')
INSERT INTO MyList (Person#, [Name] , City) VALUES (3, 'Karthik', 'Erode')
INSERT INTO MyList (Person#, [Name] , City) VALUES (4, 'Vizhiyan', 'Chennai')
INSERT INTO MyList (Person#, [Name] , City) VALUES (5, 'PKP', 'USA')

என 5 rowக்களுக்கான தகவல்களை 5 வரிகளில் எழுதவேண்டும்.

இப்போது நாம் கொடுத்த தகவல்களை திரையில் காண்பதற்கு :
SELECT * FROM MyList
எனத்தட்டெழுதி F5 அழுத்தவும்.
விடை கீழே :


CREATE புதிய Tableன் Structureஐ உருவாக்க
SELECT ஏற்றப்பட்ட தகவல்களைப் பார்வையிட
INSERT புதிய தகவல்களை ஒன்றொன்றாகப் பதிந்திட

SELECT ல் Wild Card Character என்று குறிப்பிட்டிருந்தேன். அது என்ன Wild Card Character?



உதாரணமாக SELECT * FROM MyList எனக் கொடுத்தால் ஏற்றப்பட்ட 5 rowsஉம் உடனே கண்முன் வந்து நிற்கும்.

இதில் குறிப்பிட்ட rowsஐ மட்டும் பார்ப்பதற்கு என்ன செய்வது? வடிகட்டுதல் நுட்பத்திற்காக SELECT உடன் WHERE எனப்படும் கட்டுப்பாட்டை உடன் இணைக்கிறோம்..

இப்போது SELECT ன் Syntax இவ்வாறு இருக்கும்.
SELECT * FROM tableName WHERE Condition

Condition என்கிற இடத்தில் Relational மற்றும் Logical Operators ஐப் பயன்படுத்தி வடிகட்டுதல் வேட்டையைத் தொடரலாம்.

சில உதாரணங்கள்:
SELECT * from MyList WHERE Person# = 5

5வது நபரின் தகவல்களை மட்டும் திரையில் காண்பதற்கு
விடை :

SELECT * FROM MyList WHERE Person# >=2 AND Person# <= 4.
2 முதல் 4 வரை எண்களைக் கொண்ட நபர்களின் தகவல்களைக் காண SELECT * FROM MyList WHERE City = 'Erode'
ஈரோடு நகரில் வசிக்கும் நபர்களை மட்டும் பார்க்க

SELECT * from MyList WHERE City <> 'Erode'
ஈரோடு நகரை விடுத்து பிற நகரங்களில் வசிப்போர் யார் யார்?
இது வரை நாம் Wild Card ஐப் பயன்படுத்தவில்லை. இப்போது பயன்படுத்திப் பார்ப்போம். Wild Card என்றால் நிரப்பிகள் எனப்படும்.
Wild Card பயன்படுத்தும் Syntax வடிவம்

SELECT * FROM
tableName
WHERE
filedName
LIKE
'wild pattern'


LIKE 'C%'
எனக்கொடுத்தால் C என்கிற எழுத்தில் ஆரம்பிக்கக் கூடிய எல்லாமே
நகரத்தின் ஆரம்ப எழுத்து C.
SELECT * FROM MyList WHERE City LIKE 'C%'
LIKE '%i%'
எனக் கொடுத்தால் இரண்டாவது எழுத்து i
% என்பது எல்லாமே , _ என்பது ஒரு எழுத்தை மட்டும் குறிக்கிறது.

SELECT * FROM MyList WHERE [Name] LIKE '%i%'
பெயரின் ஏதோ ஒரு எழுத்து i ஆக இருப்பவர்கள் யார் யார்?

1 comment:

வடுவூர் குமார் said...

சூப்பர்.
மென்பொருளை தட்டித்தடவி உபயோகித்த பிறகு இதைப் படிப்பது உத்தமம்.எளிதாக புரிகிறது.
GUI இருக்கும் போது CLI ஐ ஏன் உபயோகிக்கவேண்டும்? CLI யில் ஏதேனும் பிரத்யோக வசதி இருக்கா?இல்லை தெரிந்துகொள்ள வேண்டும் என்று சொல்கிறீர்களா?

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

பாகம் 15ல் திரு G. ராஜாராமன், சவுதி அரேபியா அவர்கள் கீழ்க்கண்ட கேள்வியை எழுப்பி இருந்தார். அவருக்கு விடையளிக்கும் விதமாக இந்தப்பதிவு அமைகிற...