வினவல் அமைப்பு மொழி - DQL கட்டளை - SELECT கட்டளை | 12th Computer Science : Chapter 12 : Database concepts and MySql : Structured Query Language(SQL)
SQL-ல் செயலாற்றும் போது, வினவல்களை உருவாக்குவதும், தரவை மீட்டெடுப்பதும் மிக முக்கியமான பணிகளில் ஒன்றாகும். ஒரு வினவல் என்பது தரவுத்தள அட்டவணையிலிருந்து நாம் விரும்பும் தீர்வை பெற கொடுக்கப்படும் கட்டளையாகும். SQL SELECT கட்டளை, தரவுத்தள அட்டவணையில் உள்ள
தரவினை வினவலாகவோ அல்லது மீட்டெடுக்கவோ பயன்படும் கட்டளையாகும். இது ஒன்று அல்லது அதற்கு மேற்பட்ட அட்டவணைகளிலிருந்து பதிவுகளின் துணைக் கூறுகளை மீட்டெடுக்கப் பயன்படுகிறது. SELECT கட்டளையை பல வடிவங்களில் பயன்படுத்தலாம்.
SELECT கட்டளையின் தொடரியல்:
SELECT <column-list>FROM<table-name>;
• table-name என்பது தகவல் பெறப்பட்ட அட்டவணையின் பெயர்.
• Column-list என்பது தரவு பெறப்பட்ட ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளை உள்ளடக்கியது.
உதாரணமாக மாணவர் அட்டவணையில் இருந்து சேர்க்கை எண் மற்றும் மாணவர்களின் பெயரை மட்டுமே பார்க்க, கட்டளை பின்வருமாறு கொடுக்கப்பட்டுள்ளது:
மாணவர் அட்டவணை பின்வரும் தரவைக் கொண்டிருந்தால்:
SELECT Admno, Name FROM Student;
மேற்கண்ட SELECT கட்டளை பின்வரும் தகவலை வெளிக்காட்டும்:
அட்டவணையின் அனைத்து புலங்களையும், வரிசைகளையும் பார்க்க, SELECT கட்டளை இவ்வாறு அமையும்.
SELECT * FROM STUDENT;
1. சிறப்புச் சொல் DISTINCT
DISTINCT சிறப்புச் சொல்லுடன் SELECT கட்டளையைப் பயன்படுத்தி ஒரு அட்டவணையில் இரட்டிப்பு வரிசைகளை உருவாகாமல் தடுக்கலாம். இது தரவு இரட்டித்தலைத் தவிர்க்கின்றது. உதாரணத்திற்கு,
SELECT * DISTINCT place FROM student; என்ற கட்டளை பின்வரும் தரவை வெளிக்காட்டும்:
SELECT * FROM Student;
மேற்கண்ட வெளியீட்டில், place என்னும் புலத்தில் இரட்டிப்பு வரிசைகள் இல்லாத்தைக் காணலாம். DISTINCT என்ற சிறப்புச் சொல்லை பயன்படுத்தும் போது NULL மதிப்புகள் அதிக எண்ணிக்கையில் இருப்பினும், ஒரே ஒரு NULL மதிப்பு மட்டுமே திருப்பி அனுப்பப்படும்.
2. சிறப்புச் சொல் ALL
ALL என்ற சிறப்புச் சொல் இரட்டிப்பு வரிசைகளையும் இருத்தி வைக்கிறது. அது இரட்டிப்பு பதிவுகளை கருத்தில் கொள்ளாது, அட்டவணையின் ஒவ்வொரு வரிசையையும் வெளிக்காட்டும்.
SELECT ALL Place FROM Student;
மேற்கண்ட கட்டளை அட்டவணையில் உள்ள ஒவ்வொரு வரிசையிலும் உள்ள place என்ற புலத்தின் அனைத்து மதிப்புகளையும் இரட்டிப்புப் பதிவுகளையும் உள்ளடக்கி) வெளிக்காட்டும்.
SELECT கட்டளையிலுள்ள WHERE clause, விரும்பிய தீர்வை பெறுவதற்கான விதிமுறைகளை குறிப்பிடுகிறது. WHERE clause யுடனான SELECT கட்டளையின் பொது வடிவம்:
SELECT <column-name>[,<column-name>,....) FROM <table-name> WHERE condition>;
உதாரணத்திற்கு, மாணவர்களின் சேர்க்கை எண்ணையும், சென்னையை சேர்ந்த மாணவர்களின் பெயர்களை மட்டும் வெளிக்காட்ட, SELECT கட்டளை கீழ்க்காணும் முறையில் பயன்படுத்தப்படுகிறது:
SELECT Admno, Name, Place FROM Student WHERE Place =”Chennai”;
SELECT Admno, Name, Age FROM Student WHERE Age >= 18;
ஒப்பீட்டு இயக்கிகள் =, <, <=, >, >=, <> போன்றவை இரண்டு மதிப்புகளை ஒப்பீட SELECT கட்டளையுடன் WHERE clause பயன்படுத்தலாம். WHERE clauseல் தேடல் நிபந்தனைகளை OR, AND மற்றும் NOT போன்ற தருக்க செயற்குறிகள் ஒன்றிணைக்க பயன்படுகின்றன. உதாரணத்திற்கு,
SELECT Admno, Name, Age, Place FROM Student WHERE (Age>=18 AND Place = "Delhi");
The SELECT கட்டளையை கீழ்க்காணும் முறைகளிலும் பயன்படுத்தலாம்:
SELECT Admno, Name, Age, Place FROM Student WHERE (Age>=18 OR Place="Delhi");
SELECT Admno, Name, Place FROM Student WHERE (NOT Place ="Delhi");
3. BETWEEN மற்றும் NOT சிறப்புச் சொற்கள்
BETWEEN என்ற சிறப்புச் சொல் மதிப்புகளின் பரப்பை வரையறுக்கின்றது, இந்த பரப்பினுள் உள்ள மதிப்புகள் கொண்ட வரிசைகளை உள்ளடக்கும். மதிப்புகளின் பரப்பான அதிகபட்ச மதிப்பு மற்றும் குறைந்தபட்ச மதிப்பிற்கு இடையே உள்ள நிபந்தனையை உள்ளடக்கும்.
SELECT Admno, Name, Gender, Age, Place FROM Student WHERE Age BETWEEN 18 AND 19;
BETWEEN இயக்கியின் எதிர் இயக்கியாக NOT BETWEEN செயல்படும், நிபந்தனையை நிறைவு செய்யாத பதிவுகளை இது வெளிக்காட்டும்.
SELECT Admno, Name, Age FROM Student WHERE Age NOT BETWEEN 18 AND 19;
4. IN சிறப்புச் சொல்
IN சிறப்புச் சொல் பதிவின் மதிப்புகளுடன் பொருந்தக்கூடிய வகையில் மதிப்புகளின் பட்டியலைக் குறிப்பிடப் பயன்படுகிறது. வேறு சொற்களில் கூறுவதெனில், இது ஒன்றுக்கு மேற்பட்ட மதிப்புகளுடன் ஒரு நெடுவரிசையை ஒப்பிடப் பயன்படுகிறது. இது OR நிபந்தனைக்கு நிகரானது. உதாரணத்திற்கு:
SELECT Admno, Name, Place FROM Student WHERE Place IN ("Chennai”, “Delhi”);
NOT IN சிறப்புச் சொல் பட்டியலுடன் பொருந்தாத மதிப்புகளைக் கொண்ட பதிவுகளை மட்டுமே வெளிக்காட்டும். உதாரணத்திற்கு,
SELECT Admno, Name, Place FROM Student WHERE Place NOT IN (“Chennai”, “Delhi”);
என்ற கட்டளை "Chennai” மற்றும் “Delhi” ஆகிய இடங்களை தவிர மற்ற மாணவர்களின் பட்டியலை வெளியிடும்.
NULL மதிப்பு:
ஒரு அட்டவணையில் NULL மதிப்பையுடைய புலத்தை WHERE clause IS NULL என்பதைப் பயன்படுத்தி தேடலாம். உதாரணத்திற்கு , age என்ற புலத்தில் மதிப்புகள் கொடுக்கப்படாத அனைத்து மாணவர்களின் பட்டியலை வெளியிட, பயன்படுத்த வேண்டிய கட்டளை :
SELECT * FROM Student WHERE Age IS NULL;
குறிப்பு
IS NOT NULL என்பதை பயன்படுத்தி அட்டவணையில் உள்ள NULL அல்லாத மதிப்புகளை பட்டியலிடலாம்.
5. ORDER BY clause
SQL-ன் ORDER BY clause பயன்படுத்தி தரவுகளை ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளின் அடிப்படையில் ஏறுவரிசையிலோ அல்லது இறங்கு வரிசையிலோ வரிசைப்படுத்தலாம்.
1. கொடாநிலையாக, ORDER BY தரவை ஏறுவரிசையில் வரிசைப்படுத்தும்.
2. தரவினை DESC என்ற சிறப்புச் சொல்லைப் பயன்படுத்தி இறங்கு வரிசையிலும்,
ASC என்ற சிறப்புச் சொல்லைப் பயன்படுத்தி ஏறுவரிசையிலும் வரிசைப்படுத்தலாம்.
ORDER BY ஐ இவ்வாறு பயன்படுத்தலாம் :
SELECT<column-name>[,<column-name>,....) FROM <table-name>ORDER BY <columnl>,<column2>,... ASC DESC;
உதாரணத்திற்கு:
மாணவர்களின் பெயரை அகர வரிசைப்படுத்திய பட்டியலை வெளியிட பயன்படும் கட்டளையமைப்பு
SELECT * FROM Student ORDER BY Name;
வரிசைப்படுத்தப்பட்ட மாணவர் அட்டவணை பின்வருமாறு:
குறிப்பு
ORDER BY clause பயன்படுத்தினால் அட்டவணைக்கு எந்த பாதிப்பையும் ஏற்படுத்தாது.
6. WHERE clause
WHERE clause பதிவுகளை வடிகட்டுதலுக்கு பயன்படுகிறது. இது கொடுக்கப்பட்ட நிபந்தனையை நிறைவு செய்யும் பதிவுகளை மட்டும் பிரித்தெடுக்க உதவுகிறது. உதாரணத்திற்கு, மாணவர் அட்டவணையில் 18 மற்றும் அதற்கு மேற்பட்ட வயதுடைய மாணவர்களின் பட்டியலை, அகர வரிசைப்படுத்தி ஏறுவரிசையில் வெளியிடும் கட்டளை பின்வருமாறு : SELECT * FROM Student WHERE Age>=18 ORDER BY Name;
18 மற்றும் அதற்கு மேற்பட்ட வயதுடைய மாணவர்களின் பட்டியலை, அகர வரிசைப்படி இறங்கு வரிசையில், வெளியிடும் கட்டளை பின்வருமாறு :
SELECT * FROM Student WHERE Age>=18 ORDER BY Name DESC;
குறிப்பு
பற்பல புலங்களின் மீதும் வரிசையாக்கம் செய்ய்யலாம்,
7. GROUP BY clause
SELECT கூற்றுடன் GROUP BY clause பயன்படுத்தி வரிசைகள் அல்லது நெடுவரிசைகளில் ஒரே மாதிரியான மதிப்புகளில் கொண்ட மாணவர்களை ஒரு தொகுதியாக பிரிக்கலாம் அல்லது ஒரு அட்டவணையை குழுக்களாக பிரிக்கலாம். உதாரணத்திற்கு ஒரு வகுப்பில் உள்ள ஆண் மாணவர்கள் அல்லது பெண் மாணவிகளின் எண்ணிக்கையைத் தெரிந்துக் கொள்ள, GROUP BY ஐ பயன்படுத்தலாம்.
GROUP BY clause ன் தொடரியல்
SELECT <column-names> FROM <table-name> GROUP BY <column-name>HAVING [condition);
மேற்கண்ட கட்டளையை மாணவர் அட்டவணையில் பயன்படுத்த :
SELECT Gender FROM Student GROUP BY Gender;
மேற்கூறிய கட்டளையின் வெளியீடு பின்வருமாறு:
இரண்டு முடிவுகள் மட்டுமே திரும்ப பெறப்பட்டுள்ளது என்பதை கருத்தில் கொள்ளவும். இதன் காரணம் என்னவெனில், நாம் ஆண் மற்றும் 'பெண்' என்ற இரு பாலினங்களையே பெற்றுள்ளோம். GROUP BY clause அனைத்து 'M' மாணவர்களையும் தொகுத்து, ஒரு வரிசையை மட்டும் வெளியிட்டுள்ளது. இது போன்றே F’ மாணவர்களுக்கும் வெளியீடு அமையும்.
உதாரணத்திற்கு, மாணவர் அட்டவணையில் ஆண், பெண் மாணவர்களின் எண்ணிக்கையை கண்டறிய கீழ்காணும் கட்டளை தரப்பட்டுள்ளது:
SELECT Gender, count(*) FROM Student GROUP BY Gender;
குறிப்பு
NULL மதிப்புகளையும் சேர்த்துக்கொள்ள COUNT உடன் * என்ற குறியீடு பயன்படுத்தப்பட்டுள்ளது.
மேற்கண்ட SELECT கூற்ற ஆண் மற்றும் பெண் மாணாக்கர்களின் எண்ணிக்கையை வெளியீடும்.
8. HAVING clause
SELECTகட்டளையுடன் HAVING மற்றும் GROUPBY Clause-க்களை பயன்படுத்தி குழுக்களுக்கு நிபந்தனையை இருத்தலாம் மற்றும் பயனர் ஒன்றிணைந்த செயற்கூறுகளையும் பயன்படுத்தலாம்.
உதாரணத்திற்கு, Chennai ஐ சேர்ந்த ஆண் மற்றும் பெண் மாணாக்கர்களின் எண்ணிக்கையை கண்டறிய
SELECT Gender, count(*) FROM Student GROUP BY Gender HAVING Place = 'Chennai';
மேற்கண்ட வெளியீடு மாணவர் அட்டவணையில் சென்னையை சேர்ந்த ஆண் மற்றும் பெண் மாணாக்கர்களின் எண்ணிக்கையை காண்பிக்கிறது.