<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7482343037980624810</id><updated>2012-02-10T08:11:05.178-08:00</updated><category term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-732320388908427221</id><published>2009-12-10T06:41:00.000-08:00</published><updated>2009-12-10T07:21:43.435-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 19</title><content type='html'>SQL Server 2008 Express Edition - நிறுவுவது எப்படி?&lt;br /&gt;&lt;br /&gt;எளிய தமிழில் எஸ்.க்யூ.எல் தொடரில் பலமுறை இதை எப்படி நிறுவுவது என்பது குறித்து சந்தேகம் வந்திருக்கலாம். அதை நிவர்த்தி செய்யும் விதமாக இந்த வீடியோவை 4shared.com தளத்தில் ஏற்றியுள்ளேன். இதைப் பார்த்தால் செயல்முறைப் பயிற்சியாக அமையும்.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.4shared.com/embed/169730586/edbd5fb9" allowfullscreen="true" allowscriptaccess="always" height="420" width="560"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;தரவிறக்கம் செய்ய : &lt;a href="http://www.4shared.com/file/169730586/edbd5fb9/SQL-Server-2008-Express-Instal.html" target="_blank"&gt;SQL-Server-2008-Express-Installation.mov&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;இந்த கோப்பு .MOV வடிவில் உள்ளது. விண்டோஸ் மீடியா ப்ளேயரில் அனேகமாக இயங்காது. க்விக் டைம் மூவி ப்ளேயர் அல்லது வி.எல்.சி மீடியா ப்ளேயரில் ஓட்டிப் பார்க்கலாம்.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;மேலும் சில காணொளிகள் : இவை யூட்யூப் தளத்தில் வேறு சிலரால் பதிவேற்றப்பட்டவை.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pJ8r5xH1YtY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/pJ8r5xH1YtY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/d9ozlxbRJLo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/d9ozlxbRJLo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Jq-IiSe0WhQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Jq-IiSe0WhQ&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;நன்றியுடன்,&lt;br /&gt;டெக்‌ஷங்கர் @ TechShankar&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techshankar.com/" target="_blank"&gt;http://www.techshankar.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-732320388908427221?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/732320388908427221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=732320388908427221' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/732320388908427221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/732320388908427221'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/12/sql-19.html' title='எளிய தமிழில் SQL - பாகம் 19'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-1606857426194339110</id><published>2009-03-24T00:27:00.000-07:00</published><updated>2009-03-24T00:38:25.666-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 18</title><content type='html'>கடந்த 17 பாகங்களில் எளிய தமிழில் SQL என்கிற தொடரைப் படித்திருப்பீர்கள்.&lt;br /&gt;&lt;br /&gt;செயல்முறைப் பயிற்சிகளையும் செய்து பார்த்திருப்பீர்கள்.&lt;br /&gt;&lt;br /&gt;இந்த 18வது பகுதியில் SQL குறித்த கேள்விகளைக் காணவிருக்கிறோம். நாம் இங்கே 17 பாகங்களிலும் பார்க்காத சில கேள்விகளும் கீழே வந்திருக்கும். அதைப் பற்றிக் கவலை வேண்டாம். இவற்றுக்கான விடைகளை இணையத்தில் தேடினால் விடை கிடைக்கும்.&lt;br /&gt;&lt;br /&gt;மேலும் உங்கள் கருத்துக்களை அறிய ஆவலுடன் இருக்கிறேன்.&lt;br /&gt;&lt;br /&gt;உங்கள் ஆர்வத்தைத் தூண்டுவதற்காகவே இந்தக் கேள்விகளை இங்கே தருகிறேன்.&lt;br /&gt;&lt;br /&gt;நன்றி.&lt;br /&gt;தமிழ்நெஞ்சம்&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part - A&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I want to see what fields a table is made of, and what the sizes of the fields are, what option do I have to look for?&lt;br /&gt;&lt;br /&gt;What is a query?&lt;br /&gt;&lt;br /&gt;A SQL query is typed in the _________ .&lt;br /&gt;&lt;br /&gt;What is the purpose of the model database?&lt;br /&gt;&lt;br /&gt;What is the purpose of the master database?&lt;br /&gt;&lt;br /&gt;What is the purpose of the tempdb database?&lt;br /&gt;&lt;br /&gt;What is the purpose of the USE command?&lt;br /&gt;&lt;br /&gt;If you delete a table in the database, will the data in the table be deleted too?&lt;br /&gt;&lt;br /&gt;What is the Parse Query button used for? How does this help you?&lt;br /&gt;&lt;br /&gt;Tables are created in a ____________________ in SQL Server 2005.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part - B&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight: bold;"&gt; &lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is usually the first word in a SQL query?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Does a SQL Server 2005 &lt;tt&gt;SELECT&lt;/tt&gt; statement require a  &lt;tt&gt;FROM&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can a &lt;tt&gt;SELECT&lt;/tt&gt; statement in SQL Server 2005 be used to  make an assignment? Explain with examples.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the &lt;tt&gt;ORDER BY&lt;/tt&gt; used for?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Does &lt;tt&gt;ORDER BY&lt;/tt&gt; actually change the order of the data in  the tables or does it just change the output?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the default order of an &lt;tt&gt;ORDER BY&lt;/tt&gt;  clause?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What kind of comparison operators can be used in a  &lt;tt&gt;WHERE&lt;/tt&gt; clause?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are four major operators that can be used to combine  conditions on a &lt;tt&gt;WHERE&lt;/tt&gt; clause? Explain the operators with  examples.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are the logical operators?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;In a &lt;tt&gt;WHERE&lt;/tt&gt; clause, do you need to enclose a text  column in quotes? Do you need to enclose a numeric column in quotes?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is a null value equal to anything? Can a space in a column be  considered a null value? Why or why not?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Will &lt;tt&gt;COUNT(column)&lt;/tt&gt; include columns with null values in  its count?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are column aliases? Why would you want to use column  aliases? How can you embed blanks in column aliases?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are table aliases?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are table qualifiers? When should table qualifiers be  used?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Are semicolons required at the end of SQL statements in SQL  Server 2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do comments need to go in a special place in SQL Server  2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;When would you use the &lt;tt&gt;ROWCOUNT&lt;/tt&gt; function versus using  the &lt;tt&gt;WHERE&lt;/tt&gt; clause?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is SQL case-sensitive? Is SQL Server 2005  case-sensitive?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a synonym? Why would you want to create a  synonym?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can a synonym name of a table be used instead of a table name  in a &lt;tt&gt;SELECT&lt;/tt&gt; statement?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can a synonym of a table be used when you are trying to alter  the definition of a table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can you type more than one query in the query editor screen at  the same time?&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;Part - C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;The &lt;tt&gt;INSERT INTO .. VALUES&lt;/tt&gt; option will insert rows into  the _________ of a table.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;While you are inserting values into a table with the &lt;tt&gt;INSERT  INTO .. VALUES&lt;/tt&gt; option, does the order of the columns in the &lt;tt&gt;INSERT&lt;/tt&gt;  statement have to be the same as the order of the columns in the  table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;While you are inserting values into a table with the &lt;tt&gt;INSERT  INTO .. SELECT&lt;/tt&gt; option, does the order of the columns in the &lt;tt&gt;INSERT&lt;/tt&gt;  statement have to be the same as the order of the columns in the  table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;When would you use an &lt;tt&gt;INSERT INTO .. SELECT&lt;/tt&gt; option  versus an &lt;tt&gt;INSERT INTO .. VALUES&lt;/tt&gt; option? Give an example of  each.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What does the &lt;tt&gt;UPDATE&lt;/tt&gt; command do?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can you change the data type of a column in a table after the  table has been created? If so, which command would you use?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Will SQL Server 2005 allow you to reduce the size of a  column?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What integer data types are available in SQL Server  2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the default value of an integer data type in SQL Server  2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What decimal data types are available in SQL Server  2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the difference between a &lt;tt&gt;CHAR&lt;/tt&gt; and a  &lt;tt&gt;VARCHAR&lt;/tt&gt; datatype?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Does Server SQL treat &lt;tt&gt;CHAR&lt;/tt&gt; as a variable-length or  fixed-length column? Do other SQL implementations treat it in the same  way?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;If you are going to have too many nulls in a column, what would  be the best data type to use?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;When columns are added to existing tables, what do they  initially contain?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What command would you use to add a column to a table in SQL  Server?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;In SQL Server, which data type is used to store large object  data types?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;If I do not need to store decimal places, what would be a good  numeric data type to use?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;If I need to store decimal places, but am not worried about  rounding errors, what would be a good data type to use?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Should a column be defined as a &lt;tt&gt;FLOAT&lt;/tt&gt; if it is going  to be used as a primary key?&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Part - D&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a join? Why do you need a join?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is an &lt;tt&gt;INNER JOIN&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which clause[s] can be used in place of the &lt;tt&gt;JOIN&lt;/tt&gt; in  Server SQL?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the Cartesian product?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What would be the Cartesian product of a table with 15 rows and  another table with 23 rows?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;List some uses of the Cartesian product.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is an equi-join?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a non-equi-join? Give an example of an  non-equi-join.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a self join? Give an example of a self join.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a &lt;tt&gt;LEFT OUTER JOIN&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a &lt;tt&gt;RIGHT OUTER JOIN&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a &lt;tt&gt;CROSS JOIN&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a &lt;tt&gt;FULL OUTER JOIN&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Does Server SQL allow the use of &lt;tt&gt;*=&lt;/tt&gt; to perform outer  joins?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the maximum number of rows that a self join can  produce?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;For what kinds of joins will the associative property  hold?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What would be the Cartesian product of the two sets {a,b,c} and  {c,d,e}?&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Part - E&lt;/span&gt;&lt;br /&gt;&lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are functions?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are aggregate functions? Give examples of aggregate  functions. What is another term for an aggregate function?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are row-level functions? Give examples of row-level  functions.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is &lt;tt&gt;COUNT&lt;/tt&gt; an aggregate function or a row-level  function? Explain why. Give at least one example of when the &lt;tt&gt;COUNT&lt;/tt&gt;  function may come in handy. Does the &lt;tt&gt;COUNT&lt;/tt&gt; function take nulls into  account?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is &lt;tt&gt;AVG&lt;/tt&gt; an aggregate function or a row-level  function?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the &lt;tt&gt;NULLIF&lt;/tt&gt; function? Explain.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How are ties handled in SQL Server?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How does the &lt;tt&gt;DISTINCT&lt;/tt&gt; function work?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Are string functions (for example, &lt;tt&gt;SUBSTRING&lt;/tt&gt;,  &lt;tt&gt;RIGHT&lt;/tt&gt;, &lt;tt&gt;LTRIM&lt;/tt&gt;) aggregate functions or row-level  functions?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the &lt;tt&gt;SUBSTRING&lt;/tt&gt; function used for?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the &lt;tt&gt;CHARINDEX&lt;/tt&gt; function used for?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What function would you use to find the leftmost characters in  a string?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are the &lt;tt&gt;LTRIM&lt;/tt&gt;/&lt;tt&gt;RTRIM&lt;/tt&gt; functions used  for?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What function would produce the output in all  lowercase?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What function would you use to find the length of a  string?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What characters or symbols are most commonly used as wildcard  characters in SQL Server 2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the concatenation operator in Server SQL  2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What does the &lt;tt&gt;YEAR&lt;/tt&gt; function do?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What does the &lt;tt&gt;MONTH&lt;/tt&gt; function do?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What does the &lt;tt&gt;GEtdATE&lt;/tt&gt; function do?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What will the following query produce in SQL Server 2005?&lt;/p&gt;&lt;pre&gt;    SELECT ('.....'+ names) AS [names]&lt;br /&gt;FROM Employee&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Does Server SQL allow an expression like &lt;tt&gt;COUNT(DISTINCT  column_name)&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How is the &lt;tt&gt;ISNULL&lt;/tt&gt; function different from the  &lt;tt&gt;NULLIF&lt;/tt&gt; function?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What function would you use to round a value to three decimal  places?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which functions can the &lt;tt&gt;WITH TIES&lt;/tt&gt; option be used  with?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What clause does the &lt;tt&gt;WITH TIES&lt;/tt&gt; option  require?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the default date format in SQL Server 2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How do dates have to be entered in Server SQL 2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What function is used to convert between data types?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What function is useful for formatting numbers?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What function is useful for formatting  dates?&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Part - F&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which has precedence, &lt;tt&gt;AND&lt;/tt&gt; or &lt;tt&gt;OR&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Why do we need derived structures?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a view?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;List some advantages of using views.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;List some advantages of using temporary tables.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can temporary tables replace views in all cases?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the difference between a view and temporary  table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the difference between a local temporary table and  global temporary table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;If data is changed in a view, is it changed in the original  table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;If data is changed in a temporary table, does it automatically  change data in the original table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What happens to local temporary tables after the session has  been ended?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What happens to global temporary table after the session has  been ended?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which type of temporary table has a system-generated suffix  attached to it? What does this suffix mean?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Why are inline views helpful?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;In SQL Server, is the &lt;tt&gt;ORDER BY&lt;/tt&gt; clause allowed during  the creation of a view?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is &lt;tt&gt;SELECT INTO&lt;/tt&gt; allowed in a view? Why or why  not?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Where is the data stored in a view?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How do you delete views?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How do you delete a temporary table?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do you need to delete a local temporary table? Why or why  not?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which operators have the highest/lowest precedence?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;In SQL Server, if a column of &lt;tt&gt;FLOAT&lt;/tt&gt; data type were  divided by a column of &lt;tt&gt;REAL&lt;/tt&gt; data type, what data type would the  resulting column have? (Hint: refer to the section on Data Type  Preference.)&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is an &lt;tt&gt;ORDER BY&lt;/tt&gt; clause necessary when you use a  &lt;tt&gt;DISTINCT&lt;/tt&gt;? Why or why not?&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Part - G&lt;br /&gt;&lt;/span&gt;&lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are the major differences between the &lt;tt&gt;UNION&lt;/tt&gt;  operation and the &lt;tt&gt;JOIN&lt;/tt&gt; operation?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the major difference between the &lt;tt&gt;UNION&lt;/tt&gt; and the  &lt;tt&gt;UNION ALL&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What major set operator does SQL Server 2005 not have? How can  these problems be resolved?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What does union compatibility mean?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What data types are union-compatible?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the maximum number of rows that can result from a  &lt;tt&gt;UNION&lt;/tt&gt; of two tablesone with 5 rows and the other with 6 rows?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the maximum number of rows that can result from a  &lt;tt&gt;JOIN&lt;/tt&gt; of two tablesone with 5 rows and the other with 6 rows?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How can a &lt;tt&gt;UNION&lt;/tt&gt; be used to implement an outer join?  Explain.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Does SQL Server 2005 support the &lt;tt&gt;MINUS&lt;/tt&gt; operation? How  can this be resolved? Give examples.&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a full outer join? Does SQL Server 2005 directly  support a full outer join?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do you need the same number of columns to perform a  union?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do you need the same data types to perform a union?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do you need the same number of columns to perform a  join?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;From the examples given in the chapter, what does the &lt;tt&gt;UNION  JOIN&lt;/tt&gt; appear to do?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;If a &lt;tt&gt;VARCHAR&lt;/tt&gt; column were unioned with a &lt;tt&gt;CHAR&lt;/tt&gt;  column, what would the resulting column be? (Hint: refer to the "&lt;a class="docLink" href="http://sqlthegreat.blogspot.com/2009/03/learnsqlsvr05-CHP-6-SECT-2.html#learnsqlsvr05-CHP-6-SECT-2.2"&gt;Data Type  Precedence&lt;/a&gt;" section in &lt;a class="docLink" href="http://sqlthegreat.blogspot.com/2009/03/learnsqlsvr05-CHP-6.html#learnsqlsvr05-CHP-6"&gt;Chapter 6&lt;/a&gt;.)&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What does set compatibility mean?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the maximum number of rows that can result from a  &lt;tt&gt;INTERSECT&lt;/tt&gt; of two tablesone with 5 rows and the other with 6  rows?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do you need the same number of columns to perform an  &lt;tt&gt;INTERSECT&lt;/tt&gt; operation?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do you need the same data types to perform an  &lt;tt&gt;INTERSECT&lt;/tt&gt; operation?&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part - H&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a subquery?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which part of the query/subquery is considered the inner query,  and which part is considered the outer query?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can a subquery always be done as a join? Why or why  not?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;When writing a query that will have a subquery, how do you  determine which table/tables will go in the outer query?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which predicate can usually be reformulated into a  join?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;When using operators, are many values acceptable from a result  of a subquery?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What can you do to insure a working  subquery?&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part - I&lt;/span&gt;&lt;br /&gt;&lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What do aggregate functions do?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How does the &lt;tt&gt;GROUP BY&lt;/tt&gt; clause work?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the difference between a &lt;tt&gt;GROUP BY&lt;/tt&gt; and  &lt;tt&gt;ORDER BY&lt;/tt&gt;?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is the &lt;tt&gt;HAVING&lt;/tt&gt; clause used for?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Can the &lt;tt&gt;WHERE&lt;/tt&gt; clause always be considered a substitute  for the &lt;tt&gt;HAVING&lt;/tt&gt; clause? Why or why not?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Do functions of functions have to be handled in a special way  in Server SQL 2005?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Will nulls in grouped columns be included in a result  set?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;How do aggregate functions treat nulls?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Does the sequence of the columns in a &lt;tt&gt;GROUP BY&lt;/tt&gt; clause  have an effect on the end result?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;When would it not make sense to use the &lt;tt&gt;GROUP BY&lt;/tt&gt; and  &lt;tt&gt;DISTINCT&lt;/tt&gt; functions together?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is &lt;tt&gt;GROUP BY&lt;/tt&gt; affected by nulls?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which comes first in a &lt;tt&gt;SELECT&lt;/tt&gt; statement, an &lt;tt&gt;ORDER  BY&lt;/tt&gt; or &lt;tt&gt;GROUP BY&lt;/tt&gt;? Why?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;The &lt;tt&gt;GROUP BY&lt;/tt&gt; and ________________ clauses are used  together.&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part - J&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight: bold;"&gt; &lt;ol class="docList" type="1"&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What is a noncorrelated subquery?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which type of subquery can be executed on its own?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Which part of a query is evaluated first, the query or the  subquery?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are correlated subqueries?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What does the &lt;tt&gt;EXISTS&lt;/tt&gt; predicate do?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;What are considered universal qualifiers?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Is correlation necessary when we use &lt;tt&gt;EXISTS&lt;/tt&gt;?  Why?&lt;/p&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div style="font-weight: normal;"&gt; &lt;p class="docList"&gt;Explain how the "for all" type SQL query involves a  double-nested correlated subquery using the &lt;tt&gt;NOT EXISTS&lt;/tt&gt;  predicate.&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-1606857426194339110?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/1606857426194339110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=1606857426194339110' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1606857426194339110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1606857426194339110'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/03/sql-18.html' title='எளிய தமிழில் SQL - பாகம் 18'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-1729164488803369285</id><published>2009-02-13T06:06:00.001-08:00</published><updated>2009-02-13T06:17:09.969-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 17</title><content type='html'>&lt;span&gt;பாகம் 15ல் &lt;a href="http://www.blogger.com/profile/09419285381096186581" target="_blank"&gt;திரு G. ராஜாராமன், சவுதி அரேபியா&lt;/a&gt; அவர்கள் கீழ்க்கண்ட கேள்வியை எழுப்பி இருந்தார். அவருக்கு விடையளிக்கும் விதமாக இந்தப்பதிவு அமைகிறது.&lt;br /&gt;&lt;br /&gt;இதன்மூலம் Front End, back end போன்றவற்றைத் தெரிந்துகொள்வதுடன் அவை எதற்காகப் பயன்படுகின்றன என்பதையும் அறிந்துகொள்வீர்கள்.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;அவர் கேட்ட கேள்வி :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;மிகவும் அழகாக தொடரை வழங்கிக் கொண்டு இருக்கின்ற நண்பருக்கு மிக்க நன்றி. நண்பரே எனக்கு ஒரு சந்தேகம் உள்ளது. அதனை தாங்கள் தீர்ப்பீர்கள் என நம்புகிறேன்.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;எனது அலுவலகத்தில் Inventory Sotware பயன்படுத்துகின்றனர். இந்த Inventory sotware ஐ கணிப்பொறியில் C அல்லது D ஏதேனும் ஒரு கோலனில் ( partition) copy &amp;amp; paste செய்துள்ளனர். பிறகு இதற்க்காக oracle developer 6i மற்றும் Power builder 5 ஐ install செய்துள்ளனர். பிறகு Paste செய்துள்ள Inventory software ல் உள்ள inventory.exe எனும் file ஐ click செய்தாள் inventory வேலை செய்கிறது. மேலும் இதன் மூலம் உள்ளீடு செய்யப்படுகின்ற தகவல் அனைத்தும் எங்கள் அலுவலகத்தில் தனியாக வைத்துள்ள server ல் பதிவாகிறது. இந்த Inventory software ஆனது network ல் system ல் மட்டும் வேலை &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;செய்கிறது.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;எனது சந்தேகம் Oracle, Power Builder மற்றும் எங்களது Inventory software இவை மூன்றுக்கும் என்ன தொடர்பு?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;எங்கள் அலுவலகத்தில் Inventory software எந்த software பயன்படுத்தி Create பண்ணியுள்ளனர். மேலும் நாம் பார்துவரும் sql serverக்கும் நான் மேலே கூரியவைகளுக்கும் ஏதேனும் தொடர்பு உள்ளதா? sql server ஐ பயன்படுத்தி table மட்டும் தான் create பண்ணமுடியுமா அப்படியன்றாள் MS-Access ஐ பயன்படுத்தியே இதனை செய்யலாமே, மேலும் sql server ல் Inventory software ஐ உருவாக்கமுடியுமா?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;நண்பரே நான் எழுப்பியுள்ள சந்தேகத்தை நீங்கள் தீர்ப்பீர்கள் என அதனை நான் இங்கே வைத்துள்ளேன்.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;நன்றியுடன்,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;G. ராஜாராமன், சவுதி அரேபியா&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இனி எனது பதில் :&lt;br /&gt;&lt;br /&gt;Inventory Software ஐ Power Builder பயன்படுத்திச் செய்து Inventory.EXE ஐ உருவாக்கி இருப்பார்கள்.&lt;br /&gt;&lt;br /&gt;அதன் முகப்புத்தோற்றங்கள் அனைத்தையும் Power Builder வழியாக எளிதாகச் செய்திருப்பார்கள்.&lt;br /&gt;&lt;br /&gt;Power Builder, Visual Basic போன்றவற்றை Front End Tools என்போம். நீங்கள் அந்த பயன்பாட்டை இயக்கும்போது உங்கள் கண்முன்னே தெரியும் Textbox, combobox, Grid, dialog box இப்படி என்னவெல்லாம் கண்முன் தெரிகிறதோ அவையனைத்தையுமே ஒரு Front End ஐ வைத்தே உருவாக்கி இருப்பார்கள்.&lt;br /&gt;&lt;br /&gt;உங்களிடம் இருந்து User Name, Password  ஆகியவற்றை வாங்குவதற்காக உங்கள் கண்முன் தெரிகிறதே TextBox இவற்றை உருவாக்க உதவுவது Front End Tool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ஆனால் உங்கள் User Name, Password போன்றவை எங்கே பதிவாகி இருக்கும்? அது ஒரு Back End ல் பதிவாகி இருக்கும்.  Back End tool க்கு உதாரணம்தான் Oracle, Sybase, MySQL, SQL Server எல்லாம்.&lt;br /&gt;&lt;br /&gt;உங்களிடமிருந்து தகவலை வாங்குவதற்கு உதவும் முகப்புத்திரைகளை Front End Tool வாயிலாகச் செய்தபின், தகவல்கள் அனைத்தையும் பதிந்து வைப்பதற்காக Back End  பயன்படுகிறது.&lt;br /&gt;&lt;br /&gt;உங்கள் கணினியில் Power Builder இனிமேல் தேவைப்படாது. எப்போது? எந்தத் தவறுகளும் இல்லாத ஒரு Application ஐ உருவாக்கிய பிறகு அதன் Codings அனைத்தையும் சுருக்கி ஒரே கோப்பாகவோ, அல்லது Installation Package ஆகவோ கொடுப்பார்கள். &lt;br /&gt;&lt;br /&gt;அந்த Installation Package அல்லது ஒரு EXE ஐ வேறு ஒரு கணினியில் நிறுவியபிறகு (Install) Front End Tool தேவைப்படாது (உங்கள் கருத்துப்படி Power Builder).&lt;br /&gt;&lt;br /&gt;ஆனால் அனைத்துத்தகவல்களையும் உங்கள் கருத்துரைப்படி Oracle ல் பதிவதால் Oracle கண்டிப்பாக Install செய்யப்பட்டு இருக்கவேண்டும்.&lt;br /&gt;&lt;br /&gt;எப்போதெல்லாம் பழைய தகவல்கள் தேவைப்படுகிறதோ, அப்போதெல்லாம் அந்த EXE ஆனது Database உடன் தொடர்புகொண்டு தகவல்களை எடுத்துக்கொண்டுவந்து திரையில் காண்பிக்கும்.&lt;br /&gt;&lt;br /&gt;எனது சந்தேகம் Oracl, Power Builder மற்றும் எங்களது Inventory software இவை 3 ற்க்கும் என்ன தொடர்பு?&lt;br /&gt;&lt;br /&gt;நன்றாக நினைவில் கொள்ளவும் :&lt;br /&gt;1) கண்முன்னே காணப்படும் திரைகளை, திரையில் தெரியும் தகவல்கள் அல்லாத பிற அம்சங்களை உருவாக்கத்தான் Power Builder.&lt;br /&gt;2) Inventory.exe ஐ இயக்கியபிறகு அது கேட்கும் தகவல்களை நீங்கள் கொடுப்பீர்கள். அல்லது நீங்கள் கேட்கும் தகவல்களை அது கொடுக்கும். ஆக அனைத்துத்தகவல்களும் உங்களுடைய Oracle databaseல் இருந்துதான் வருகிறது.&lt;br /&gt;3) எதை நீங்கள் பதிந்தாலும் உங்களது Oracleல் தான் பதிவாகும்.&lt;br /&gt;4) எதை நீங்கள் எடுத்தாலும் உங்களது Oracleல் இருந்துதான் எடுப்பீர்கள்.&lt;br /&gt;&lt;br /&gt;Inventory.EXEஐ உருவாக்கிய பிறகும் எதற்காக மீண்டும் PowerBuilder ஐ நிறுவுகிறார்கள்.&lt;br /&gt;&lt;br /&gt;இந்த Application ல் எந்த விதமான பிழைகளும் இல்லாமல் இருப்பின் Power Builder ஐ நிறுவவேண்டிய அவசியம் இல்லை.&lt;br /&gt;ஏதேனும் பிழைகளோ அல்லது புதிய அம்சங்களை உங்களது Inventory Applicationல் சேர்க்கவேண்டிய கட்டாயமோ இருப்பின் PowerBuilder ஐ ஒரு ஓரமாக நிறுவிக்கொள்வார்கள்.&lt;br /&gt;புதிய அம்சங்களை, புதிய மேம்பாடுகளை உங்கள் Applicationல் உருவாக்குவதற்காக Power Builderல் புதிய நிரல்களை எழுதுவார்கள்.&lt;br /&gt;&lt;br /&gt;ஏற்கனவே எழுதிய நிரல்களின் தொகுப்புதான் ஒரு Inventory.exe இதை நினைவில் வைக்கவும்.&lt;br /&gt;&lt;br /&gt;புதிதாகச் சேர்க்கப்படவேண்டிய புதிய  அம்சங்கள், மேம்பாடுகள் (Updates) போன்றவற்றை உருவாக்குவதற்காக PowerBuilder மூலம் ஏற்கனவே உள்ள codingஉடன் புதிதாக coding எழுதி அனைத்தையும் ஒருங்குபடுத்தி (Integrate) மீண்டும் ஒரு புதிய Inventory.exe ஐ உருவாக்குவார்கள். அல்லது புதிய Installation package உருவாக்குவார்கள்.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு முறையும் உங்களது தேவைக்கேற்றபடி Applicationல் மாற்றங்கள் செய்யப்படவேண்டும் என்றால் - ஒவ்வொரு முறையும் புதிது புதிதாக coding எழுதவோ அல்லது ஏற்கனவே எழுதப்பட்ட Coding ல் மாறுதல் செய்யவோதான் Power Builderஐ பயன்படுத்துகிறார்கள். எல்லா மாற்றங்களும் , மேம்பாடுகளும் செய்யப்பட்ட பிறகு கிடைக்கக்கூடிய புதிய EXE ஐ உங்களுக்கு வழங்குவார்கள்.&lt;br /&gt;&lt;br /&gt;Oracleக்குப் போட்டியாளர் மென்பொருள்தான் SQL Server.&lt;br /&gt;PowerBuilder க்குப் பதிலாக Visual Basic, C#, VC++ போன்றவற்றைப் பயன்படுத்தி Front End உருவாக்கலாம்.&lt;br /&gt;&lt;br /&gt;MS-Access என்பது ஒரு மிகச்சிறிய அளவிலான தகவல்களைக் கையாள்வதற்குப் பயன்படும் Database தான்.&lt;br /&gt;&lt;br /&gt;மிகப்பிரமாண்டமான அளவில் இருக்கும் தகவல்களைக் கையாள்வதற்கு Oracle, SQL Server போன்றவற்றைப் பயன்படுத்தலாம்.&lt;br /&gt;&lt;br /&gt;MS-Access ஐப் பயன்படுத்தியும் Inventory Applicationஐச் செய்யலாம். ஆனால் அதன் மூலம் மிக அதிக அளவிலான தகவல்களைக் கையாள இயலாது.&lt;br /&gt;&lt;br /&gt;Table என்பதை வெறும் Table எனத்தப்புக் கணக்குப் போட்டுவிடவேண்டாம். அனைத்துத் தகவல்களுமே இந்த Tableகளில்தான் Row by Row ஆகப் பதிவாகி இருக்கின்றன என்பதை மறந்துவிடவேண்டாம்.&lt;br /&gt;&lt;br /&gt;இத்தனை மில்லியன் தகவல்களில் குறிப்பிட்ட தகவலைத் தேடி எடுக்கவே Query பயன்படுகிறது. இந்த queryகளை எழுத SQL உதவுகிறது.&lt;br /&gt;&lt;br /&gt;SQL Server என்பது ஒரு பயன்பாடு. இதன் மூலம் பல Databaseகளை உருவாக்கிக்கொள்ளலாம். ஒவ்வொரு Databaseகளிலும் பல்வேறு Tableகளையும் ஒவ்வொரு Tableலும் ஏராளமான Rows இருக்கும்.&lt;br /&gt;&lt;br /&gt;இந்தப் பதிவை முதல்முறை படிக்கும்போது புரியாமல் போவதற்கு வாய்ப்பளிக்கக்கூடாது என்பதற்காகவே குறிப்பிட்ட வரிகளைத் திரும்பத் திரும்ப எழுதியுள்ளேன்.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-1729164488803369285?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/1729164488803369285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=1729164488803369285' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1729164488803369285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1729164488803369285'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/02/sql-17.html' title='எளிய தமிழில் SQL - பாகம் 17'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-8570750483488949376</id><published>2009-02-12T17:01:00.000-08:00</published><updated>2009-02-12T18:10:25.675-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 16</title><content type='html'>இன்றைய பாகம்-16ல் SQL ன் Aggregate Functions மற்றும், Grouping போன்றவற்றைக் காணலாம்.&lt;br /&gt;&lt;br /&gt;இதற்கான ஒரு மாதிரி Table Structure கீழே:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTI-t7Y7hI/AAAAAAAADbk/6r2MgfDvH0w/s1600-h/sampletablestructure.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 76px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTI-t7Y7hI/AAAAAAAADbk/6r2MgfDvH0w/s320/sampletablestructure.png" alt="" id="BLOGGER_PHOTO_ID_5302083641128054290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;இந்த Table ஐப் பயன்படுத்தி இன்றையப் பாகத்தைத் தொடருவோம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aggregate Functions என்றால் என்ன?&lt;/span&gt;&lt;br /&gt;SUM, AVG, MIN, MAX, COUNT போன்றவற்றைப் பயன்படுத்தி கணித விடை காணல். இதன் விடையாக ஒரே ஒரு மதிப்பு மட்டும் வெளியாகும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTKkaIZI8I/AAAAAAAADbs/uOOmpJx1Y1c/s1600-h/sampledata.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 301px; height: 320px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTKkaIZI8I/AAAAAAAADbs/uOOmpJx1Y1c/s320/sampledata.png" alt="" id="BLOGGER_PHOTO_ID_5302085388160541634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;இந்த Tableல் மணி, வீரன், சந்த்ரு, ஹாரிஸ் ஆகிய 3 விற்பனையாளர்களும் வெவ்வேறு காலகட்டங்களில் வேறு வேறு பகுதிகளில் எவ்வளவு தொகைக்கு விற்பனை செய்துள்ளனர் என்பதை அறியக் கொடுத்துள்ளேன்.&lt;br /&gt;&lt;br /&gt;அனைவரும் சேர்ந்து ஒட்டுமொத்தமாக எவ்வளவு தொகைக்குப் பொருட்களை விற்பனை செய்துள்ளனர். இதற்கு SUM பயன்படுத்தலாம்.&lt;br /&gt;&lt;br /&gt;ஒட்டுமொத்தமான கூடுதல் தொகை.&lt;br /&gt;SELECT SUM(SaleAmount) AS [Total Sale Amount] from Sales&lt;br /&gt;விடை : 59310&lt;br /&gt;&lt;br /&gt;அதிகபட்சமாக விற்பனையான தொகை&lt;br /&gt;SELECT MAX(SaleAmount) AS [Maximum] from Sales&lt;br /&gt;விடை : 7800&lt;br /&gt;&lt;br /&gt;குறைந்தபட்சமாக விற்பனையான தொகை&lt;br /&gt;SELECT MIN(SaleAmount) AS [Minimum] from Sales&lt;br /&gt;விடை : 400&lt;br /&gt;&lt;br /&gt;சராசரித் தொகை&lt;br /&gt;SELECT AVG(SaleAmount) AS [Average] from Sales&lt;br /&gt;விடை : 3954.000000&lt;br /&gt;&lt;br /&gt;மொத்தத்தில் எத்தனை முறை விற்பனை நடந்துள்ளது?&lt;br /&gt;SELECT count(*) AS [Total Transactions] from Sales&lt;br /&gt;விடை : 15&lt;br /&gt;&lt;br /&gt;மொத்தம் எத்தனை விற்பனையாளர்கள் ?&lt;br /&gt;SELECT COUNT(DISTINCT SalesMan)AS [Total Persons Involved] FROM Sales&lt;br /&gt;விடை:4&lt;br /&gt;&lt;br /&gt;இங்கே மாதிரி Tableல் ஒவ்வொரு பிரதிநிதிகளும், ஒன்றுக்கு மேற்பட்டமுறை விற்பனை செய்துள்ளனர். ஆதலால் ஒவ்வொரு பிரதிநிதியின் தனிப்பட்ட கூடுதல், அதிகபட்ச / குறைந்தபட்ச விற்பனைத்தொகை முதலியவற்றைக் காண்பதற்கு GROUP BY பயன்படுத்தலாம்.&lt;br /&gt;&lt;br /&gt;ஒவ்வொருவரின் தனிப்பட்ட விற்பனைத்தொகையைக் காண&lt;br /&gt;SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount]&lt;br /&gt;FROM Sales GROUP BY SalesMan&lt;br /&gt;&lt;br /&gt;விடை :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZTPP0XKxtI/AAAAAAAADb0/MBcP_5nkKwQ/s1600-h/sumgroup.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 184px; height: 96px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZTPP0XKxtI/AAAAAAAADb0/MBcP_5nkKwQ/s320/sumgroup.png" alt="" id="BLOGGER_PHOTO_ID_5302090531982722770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ஒவ்வொருவரின் அதிகபட்ச விற்பனைத்தொகையைக் காண்பதற்கு&lt;br /&gt;SELECT SalesMan,MAX(SaleAmount) as [Individual Max Efficiency]&lt;br /&gt;FROM Sales GROUP BY SalesMan&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZTPuBkEr-I/AAAAAAAADb8/S7WWcYa0EOA/s1600-h/maxeffibyeach.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 191px; height: 94px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZTPuBkEr-I/AAAAAAAADb8/S7WWcYa0EOA/s320/maxeffibyeach.png" alt="" id="BLOGGER_PHOTO_ID_5302091050922586082" border="0" /&gt;&lt;/a&gt;ஒவ்வொருவரின் குறைந்தபட்ச திறனைக் காண&lt;br /&gt;SELECT SalesMan,MIN(SaleAmount) as [Individual Min Amt] FROM Sales GROUP BY SalesMan&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZTQOkQK1zI/AAAAAAAADcE/NOI8Ci80Ek8/s1600-h/mineff.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 163px; height: 96px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZTQOkQK1zI/AAAAAAAADcE/NOI8Ci80Ek8/s320/mineff.png" alt="" id="BLOGGER_PHOTO_ID_5302091609990158130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;SELECT உடன் மேலும் அதிகமான கட்டுப்பாடுகளை விதிப்பதற்கும் Conditionகளைக் கூறுவதற்கும் WHERE சேர்த்துப் பயன்படுத்துவோம். அதுபோல இங்கே Aggregate Functions பயன்படுத்தும்போது HAVING ஐ இணைத்துப் பயன்படுத்துவோம்.&lt;br /&gt;&lt;br /&gt;விற்பனைப் பிரதிநிதிகளின் இரண்டாவது எழுத்து 'a' ஆக உள்ளவர்களையும், அவர்களது ஒட்டுமொத்த விற்றதொகையையும் காண&lt;br /&gt;&lt;br /&gt;SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount]&lt;br /&gt;FROM Sales GROUP BY SalesMan&lt;br /&gt;HAVING SalesMan LIKE '_a%'&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTRcOjiYAI/AAAAAAAADcM/OnZQTVHVTgs/s1600-h/secondLetterA.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 181px; height: 57px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTRcOjiYAI/AAAAAAAADcM/OnZQTVHVTgs/s320/secondLetterA.png" alt="" id="BLOGGER_PHOTO_ID_5302092944195608578" border="0" /&gt;&lt;/a&gt;_ மற்றும் % ஆகிய அடையாளங்களுக்கு Wild card characters என்று பெயர். அதாவது இட நிரப்பிகள். _ என்பது ஒரு எழுத்தை மட்டும் நிரப்பும். % என்பது அனைத்து எழுத்துகளையும் நிரப்பும்.&lt;br /&gt;‘_a%' என்றால் முதல் எழுத்து ஏதோ ஒன்றாகவும், கண்டிப்பாக இரண்டாம் எழுத்து 'a' பிற எழுத்துகளைப் பற்றிக் கவலையில்லை. இப்படி எந்த பிரதிநிதியின் பெயரில் இரண்டாவது எழுத்து 'a' வருகிறதோ அவர்களை மட்டும் காண்பதற்கு.&lt;br /&gt;&lt;br /&gt;ஒட்டுமொத்தத்தில் 20000 ஐ விட அதிகமாக விற்பனை செய்தவர்களை மட்டும் காண்பதற்கு:&lt;br /&gt;SELECT SalesMan, SUM(SaleAmount) as [Individual SaleAmount] FROM Sales&lt;br /&gt;GROUP BY SalesMan&lt;br /&gt;HAVING SUM(SaleAmount) &gt; 20000&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZTSboxfmUI/AAAAAAAADcU/8h14Wroj1jo/s1600-h/greater20K.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 181px; height: 57px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZTSboxfmUI/AAAAAAAADcU/8h14Wroj1jo/s320/greater20K.png" alt="" id="BLOGGER_PHOTO_ID_5302094033565227330" border="0" /&gt;&lt;/a&gt;மொத்தவிற்பனை 5000 ரூபாயைவிடக் குறைவாக விற்றவர் யார்?&lt;br /&gt;SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount] FROM Sales&lt;br /&gt;GROUP BY SalesMan&lt;br /&gt;HAVING SUM(SaleAmount) &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZTS_oNeXyI/AAAAAAAADcc/jURYV8NvVMw/s1600-h/lessthan5K.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 182px; height: 39px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZTS_oNeXyI/AAAAAAAADcc/jURYV8NvVMw/s320/lessthan5K.png" alt="" id="BLOGGER_PHOTO_ID_5302094651889442594" border="0" /&gt;&lt;/a&gt;5000 ரூபாய்கள் முதல் 20000 ரூபாய்கள் வரை விற்பனை செய்தோர் யாவர்?&lt;br /&gt;SELECT SalesMan,SUM(SaleAmount) as [Individual SaleAmount] FROM Sales&lt;br /&gt;GROUP BY SalesMan&lt;br /&gt;HAVING SUM(SaleAmount) BETWEEN 1000 AND 20000&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZTTf9fEcrI/AAAAAAAADck/ynDK3ozuasY/s1600-h/5K220K.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 185px; height: 59px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZTTf9fEcrI/AAAAAAAADck/ynDK3ozuasY/s320/5K220K.png" alt="" id="BLOGGER_PHOTO_ID_5302095207356199602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;கீழே உள்ளதைக் கவனிக்கவும்.&lt;br /&gt;SELECT SalesMan, SUM(SaleAmount) as [TotalSales], MAX(SaleAmount) as [Maximum], Min(SaleAmount) as [Minimum], count(SaleAmount)as [TotalTransaction] from Sales&lt;br /&gt;&lt;br /&gt;நான் எதையோ எதிர்பார்த்து இப்படிக் கொடுத்தால் என்ன ஆகும். Sum, Max, Min, Count அனைத்தையும் கொடுத்துள்ளேன். ஆனால் GROUP BY மட்டும் கொடுக்காமல் விட்டுவிட்டேன். இப்போது என்ன ஆகும்?&lt;br /&gt;&lt;br /&gt;கீழேயுள்ள பிழைச்செய்திதான் கிடைக்கும். குழுவாகப் பிரித்து ஒவ்வொருவரின் தனித்திறமையைக் காண்பதற்கே  GROUP BY பயன்படுகிறது.&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Msg 8120, Level 16, State 1, Line 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Column 'Sales.SalesMan' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இதைச் சரிசெய்த பிறகு,&lt;br /&gt;&lt;br /&gt;SELECT SalesMan, SUM(SaleAmount) as [TotalSales], MAX(SaleAmount) as [Maximum], Min(SaleAmount) as [Minimum], count(SaleAmount)as [TotalTransaction]&lt;br /&gt;from Sales&lt;br /&gt;GROUP BY SalesMan&lt;br /&gt;&lt;br /&gt;இதன் விடை:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTWf3gDLkI/AAAAAAAADcs/nmNL1TnQ3pw/s1600-h/finaltab.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 92px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTWf3gDLkI/AAAAAAAADcs/nmNL1TnQ3pw/s320/finaltab.png" alt="" id="BLOGGER_PHOTO_ID_5302098504284581442" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-8570750483488949376?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/8570750483488949376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=8570750483488949376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/8570750483488949376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/8570750483488949376'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/02/sql-16.html' title='எளிய தமிழில் SQL - பாகம் 16'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZTI-t7Y7hI/AAAAAAAADbk/6r2MgfDvH0w/s72-c/sampletablestructure.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-743822741289083061</id><published>2009-02-10T05:39:00.000-08:00</published><updated>2009-02-10T07:42:09.791-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 15</title><content type='html'>இன்றைய பாகம் 15ல் இரண்டு tableகளை இணைப்பது குறித்து இன்னும் விவரமாகப் பார்க்க இருக்கிறோம்.&lt;br /&gt;&lt;br /&gt;பாகம் 14ல் Primarykey மற்றும் Foreign key ஆகியவற்றைப் பயன்படுத்துவது என்பது குறித்துப் பார்த்தோம். அதன் தொடர்ச்சியாக இதைக் கொண்டாலும் இதில் சில விதிவிலக்குகள் புரிதலுக்காகச் செய்திருக்கிறேன்.&lt;br /&gt;&lt;br /&gt;ஒன்றுக்கு மேற்பட்ட Tableகளை இணைத்து அனைத்து அறிக்கைகளையும் ஒரே திரையில் காண்பதற்கு JOIN பயன்படுத்தப்படுகிறது.&lt;br /&gt;&lt;br /&gt;JOINன் வகைகள்&lt;br /&gt;INNER JOIN&lt;br /&gt;OUTER JOIN&lt;br /&gt;SELF JOIN&lt;br /&gt;CROSS JOIN&lt;br /&gt;&lt;br /&gt;OUTER JOIN ஐ இன்னும் 3 வகை உட்பிரிவுகளாகப் பிரித்து, LEFT OUTER, RIGHT OUTER, FULL OUTER எனப் பிரிக்கலாம்.&lt;br /&gt;&lt;br /&gt;இங்கே மாதிரிக்காக 2 tableகளை உருவாக்கி அவற்றில் சில மாதிரி records ஐ ஏற்றியிருக்கிறேன். அவற்றின் பெயர்கள் Author மற்றும் Publication ஆகியவை.&lt;br /&gt;Author அட்டவணையின் Structure மற்றும் மாதிரி தகவல்கள் ஆகியவை கீழே:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZGPkga2azI/AAAAAAAADZk/8tsd5ol5DCk/s1600-h/AuthorStructure.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 315px; height: 40px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZGPkga2azI/AAAAAAAADZk/8tsd5ol5DCk/s320/AuthorStructure.png" alt="" id="BLOGGER_PHOTO_ID_5301176093732399922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZGRauNh7RI/AAAAAAAADZ8/3X9MMXybPmc/s1600-h/AuthorSampleData.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 201px; height: 229px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZGRauNh7RI/AAAAAAAADZ8/3X9MMXybPmc/s320/AuthorSampleData.png" alt="" id="BLOGGER_PHOTO_ID_5301178124659191058" border="0" /&gt;&lt;/a&gt;Publication அட்டவணையின் Structure Structure மற்றும் மாதிரி தகவல்கள் ஆகியவை  கீழே:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZGQBdLdV8I/AAAAAAAADZs/ZDSpm5kLvv0/s1600-h/publicationstructure.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 317px; height: 60px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZGQBdLdV8I/AAAAAAAADZs/ZDSpm5kLvv0/s320/publicationstructure.png" alt="" id="BLOGGER_PHOTO_ID_5301176591078741954" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZGRajVlBgI/AAAAAAAADZ0/TA0b1pJBU4U/s1600-h/publicationsampledata.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 270px; height: 320px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZGRajVlBgI/AAAAAAAADZ0/TA0b1pJBU4U/s320/publicationsampledata.png" alt="" id="BLOGGER_PHOTO_ID_5301178121740158466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;எழுத்தாளர் அட்டவணையில் உள்ள முதல் 4 Authorகள் பதிப்பக அட்டவணையில் வேறுவேறு நூல்களை எழுதி இருக்கின்றனர். ஆனால் மீதமுள்ள 6 எழுத்தாளர்கள் எழுதிய நூல்களின் விவரங்கள் பதிப்பக அட்டவணையில் இல்லை.&lt;br /&gt;&lt;br /&gt;அதேபோல பதிப்பக அட்டவணையில் உள்ள குறிப்பிட்ட Chicken Special முதல் Making of Nandha வரையிலான புத்தகங்களின் எழுத்தாளர்கள் பற்றிய விவரங்கள் Author அட்டவணையில் இல்லை. இது ஒரு மாதிரிக்காக உருவாக்கப்பட்ட tableகள். இவற்றின் மூலம் நாம் tableகளை இணைக்கும் JOIN பற்றி எளிதாக அறிந்துகொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;முதலில் INNER JOIN பற்றிப் பார்ப்போம். அதன் Syntax கீழே:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2&lt;br /&gt;FROM&lt;br /&gt;table1 INNER JOIN table2&lt;br /&gt;ON&lt;br /&gt;table1.CommonField = table2.CommonField&lt;br /&gt;&lt;br /&gt;இங்கே table1 = Author , table2 = Publication என அறிக.&lt;br /&gt;இதற்கான உதாரணத்தைக் கவனிக்கவும்&lt;br /&gt;&lt;br /&gt;SELECT     Author.AuthorID, Author.AuthorName, Publication.BookName&lt;br /&gt;FROM         Author INNER JOIN&lt;br /&gt;          Publication ON Author.AuthorID = Publication.AuthorID&lt;br /&gt;&lt;br /&gt;இதன் விடை:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZGUFm2K6XI/AAAAAAAADaE/b_kL6LOSiHA/s1600-h/inner.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 276px; height: 189px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZGUFm2K6XI/AAAAAAAADaE/b_kL6LOSiHA/s320/inner.png" alt="" id="BLOGGER_PHOTO_ID_5301181060439796082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;இங்கே இரண்டு tableகளுக்கும் பொதுவாக அமைந்துள்ள rows மட்டுமே இடம்பெற்றுள்ளன.&lt;br /&gt;Author அட்டவணையிலும், Publication அட்டவணையிலும் வண்ணமிட்டுக் காட்டப்பட்ட தகவல்களைக் காணவில்லை. பொதுவாக உள்ளவை மட்டுமே இடம்பெற்றுள்ளன. கீழேயுள்ள கணம் பற்றிய படத்தைக் கவனிக்கவும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZGWoa29rFI/AAAAAAAADaU/kLoikS6RdxA/s1600-h/inner.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 188px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZGWoa29rFI/AAAAAAAADaU/kLoikS6RdxA/s320/inner.png" alt="" id="BLOGGER_PHOTO_ID_5301183857540574290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;LEFT OUTER JOIN பற்றிப் பார்ப்போம். அதன் Syntax கீழே:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2&lt;br /&gt;FROM&lt;br /&gt;table1 LEFT OUTER JOIN table2&lt;br /&gt;ON&lt;br /&gt;table1.CommonField = table2.CommonField&lt;br /&gt;&lt;br /&gt;இங்கே table1 = Author , table2 = Publication என அறிக.&lt;br /&gt;இதற்கான உதாரணத்தைக் கவனிக்கவும்&lt;br /&gt;&lt;br /&gt;SELECT     Author.AuthorID, Author.AuthorName, Publication.BookName&lt;br /&gt;FROM         Author LEFT OUTER JOIN&lt;br /&gt;          Publication ON Author.AuthorID = Publication.AuthorID&lt;br /&gt;&lt;br /&gt;இதன் விடை:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZGXg43LEhI/AAAAAAAADac/-RC6EFSfKj4/s1600-h/leftoutersampledata.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 274px; height: 308px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SZGXg43LEhI/AAAAAAAADac/-RC6EFSfKj4/s320/leftoutersampledata.png" alt="" id="BLOGGER_PHOTO_ID_5301184827667190290" border="0" /&gt;&lt;/a&gt;இங்கே முதலாவது table ஆகிய Author ல் இருக்கும் அனைத்து rowsஇடம் பெற்றுள்ளன. ஒரே எழுத்தாளர் ஒன்றுக்கு மேற்பட்ட புத்தகங்களை எழுதியுள்ளதால் அவர்கள் திரும்பத்திரும்ப இடம்பெற்றிருக்கிறார்கள்.&lt;br /&gt;5 முதல் 10 வரையிலான எழுத்தாளர்கள் எழுதிய புத்தகங்கள் Publication அட்டவணையில் இல்லாததால் அவர்களுக்கு நேரே உள்ள BookName ல் NULL மூலம் நிரப்பப்பட்டுவிட்டது.&lt;br /&gt;&lt;br /&gt;இடதுபுற (Left side = Author) அட்டவணையில் எல்லா recordsம் தேர்வுசெய்யப்பட்டுவிடும். ஆனால் வலது புறத்தில் உறவுமுறை (Relation) இல்லாத rows எல்லாவற்றிலும் NULL நிரப்பப்பட்டுக் காண்பிக்கப்படும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZGcJYfYJYI/AAAAAAAADa8/W4NCf2Oy9J0/s1600-h/leftouter.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 236px; height: 205px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZGcJYfYJYI/AAAAAAAADa8/W4NCf2Oy9J0/s320/leftouter.png" alt="" id="BLOGGER_PHOTO_ID_5301189921398596994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;மேலே காட்டப்பட்டிருக்கு கணம் பற்றிய படத்தைக் கவனிக்கவும்.&lt;br /&gt;&lt;br /&gt;RIGHT OUTER JOIN பற்றிப் பார்ப்போம். அதன் Syntax கீழே:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2,table2.Field3&lt;br /&gt;FROM&lt;br /&gt;table1 RIGHT OUTER JOIN table2&lt;br /&gt;ON&lt;br /&gt;table1.CommonField = table2.CommonField&lt;br /&gt;&lt;br /&gt;இங்கே table1 = Author , table2 = Publication என அறிக.&lt;br /&gt;இதற்கான உதாரணத்தைக் கவனிக்கவும்&lt;br /&gt;&lt;br /&gt;SELECT     Author.AuthorID, Author.AuthorName, Publication.BookName,Publication.Publication&lt;br /&gt;FROM         Author RIGHT OUTER JOIN&lt;br /&gt;          Publication ON Author.AuthorID = Publication.AuthorID&lt;br /&gt;&lt;br /&gt;இதன் விடை: AuthorIDல் 5 முதல் 10 வரையிலான அனைத்து Authorகளைத் தவிர மீதியுள்ளோர் மட்டுமே இடதுபுறம் இடம்பெற்றுள்ளனர். Chicken Special முதல் Making of Nandha வரையிலான நூல்களை எழுதிய Author பற்றிய குறிப்புகள் Author அட்டவணையில் இல்லை - அதனால் அவற்றுக்கு நேராக NULL நிரப்பப்பட்டுவிட்டது. Right Outer Join ல் வலது புறம் (Right side) உள்ள அட்டவணையின் அனைத்து records ம் திரையில் காண்பிக்கப்படும். ஒப்புமை இல்லாத இடதுபுற rowsக்கு மட்டும் NULL நிரப்பப்பட்டுவிடும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZGZrObwwGI/AAAAAAAADas/Bx0ZEbYYqEE/s1600-h/rightouterresultdata.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 271px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZGZrObwwGI/AAAAAAAADas/Bx0ZEbYYqEE/s320/rightouterresultdata.png" alt="" id="BLOGGER_PHOTO_ID_5301187204279746658" border="0" /&gt;&lt;/a&gt;கீழேயுள்ள கணம் பற்றிய படத்தைக் கவனிக்கவும்.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZGc8ZzOdLI/AAAAAAAADbM/kw6PDccMYqM/s1600-h/rightouter.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 220px; height: 204px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SZGc8ZzOdLI/AAAAAAAADbM/kw6PDccMYqM/s320/rightouter.png" alt="" id="BLOGGER_PHOTO_ID_5301190797923611826" border="0" /&gt;&lt;/a&gt;இப்போது FULL OUTER பற்றிப் பார்ப்போம்.&lt;br /&gt;அதன் Syntax கீழே:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT table1.Field1, table1.Field2, table2.Field1, table2.Field2,table2.Field3&lt;br /&gt;FROM&lt;br /&gt;table1 FULL OUTER JOIN table2&lt;br /&gt;ON&lt;br /&gt;table1.CommonField = table2.CommonField&lt;br /&gt;&lt;br /&gt;இங்கே table1 = Author , table2 = Publication என அறிக.&lt;br /&gt;இதற்கான உதாரணத்தைக் கவனிக்கவும்&lt;br /&gt;&lt;br /&gt;SELECT     Author.AuthorID, Author.AuthorName, Publication.BookName,Publication.Publication&lt;br /&gt;FROM         Author FULL OUTER JOIN&lt;br /&gt;          Publication ON Author.AuthorID = Publication.AuthorID&lt;br /&gt;&lt;br /&gt;இதன் விடை:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZGdjbFEdII/AAAAAAAADbU/flg5xpO2J1I/s1600-h/FULLouterdata.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 278px; height: 320px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SZGdjbFEdII/AAAAAAAADbU/flg5xpO2J1I/s320/FULLouterdata.png" alt="" id="BLOGGER_PHOTO_ID_5301191468281787522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;இரண்டுபுறமுள்ள tableகளிலும் உள்ள பொதுவான rows அதன் இடங்களில் சரியாக இடம்பெற்றுள்ளன. உறவுமுறையில்லாத recordsம் இடம்பெற்றுள்ளன. ஆனால் எங்கெங்கு தகவல்கள் இல்லையோ அங்கேயெல்லாம் NULL மூலம் நிரப்பப்பட்டுவிட்டன. Author அட்டவணையின் Elavarasan முதல் KaviNilavu வரையிலான எழுத்தாளர்களும் இடம்பெற்றிருக்கின்றனர். ஆனால் அவர்கள் எழுதிய புத்தகங்கள் Publication அட்டவணையில் இல்லாத காரணத்தால்  வலதுபுறத்தில் NULL இடம்பெற்றுள்ளது. அதேபோல Chicken Special முதல் Making of Nandha வரையிலான நூல்களை எழுதியவர்களின் விபரம் Author அட்டவணையில் இல்லாததால் இடப்பக்கமாக NULL நிரப்பப்பட்டுவிட்டது.&lt;br /&gt;&lt;br /&gt;CROSS JOIN பற்றிப் பார்ப்போம்.&lt;br /&gt;Cross join என்பது குறுக்குப் பெருக்கல் ஆகும்.&lt;br /&gt;இதன் மாதிரி வடிவம்:&lt;br /&gt;&lt;br /&gt;SELECT     Author.AuthorName, Publication.BookName, Publication.Publication&lt;br /&gt;FROM         Author CROSS JOIN&lt;br /&gt;                      Publication&lt;br /&gt;&lt;br /&gt;மொத்த rowsன் எண்ணிக்கை  = இடப்புறம் உள்ள rowsகளின் எண்ணிக்க x வலப்புறம் உள்ள rows எண்ணிக்கை.&lt;br /&gt;&lt;br /&gt;SELECT COUNT(*) FROM Author  --&gt; 10 records உள்ளன&lt;br /&gt;SELECT COUNT(*) FROM Publication --&gt; 16 rows உள்ளன.&lt;br /&gt;&lt;br /&gt;Count(*) இந்த Function மூலம் ஒரு tableல் எத்தனை rows உள்ளன என அறியலாம்.&lt;br /&gt;&lt;br /&gt;Cross join இணைப்பிற்குப் பிறகு உருவாகும்&lt;br /&gt;rowsகளின் எண்ணிக்கை = 10 x 16 = 160.&lt;br /&gt;&lt;br /&gt;இடப்புறமுள்ள ஒவ்வொரு recordம் , வலப்புறமுள்ள அனைத்து recordsஉடன் ஒவ்வொருமுறையும் இணைத்துக் காட்சியளிக்கும்.&lt;br /&gt;&lt;br /&gt;SELF JOIN என்பது ஒரே table ஆனது, அதற்குள்ளேயே இணைக்கப்படுவதால் அவ்வாறு அழைக்கப்படுகிறது.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-743822741289083061?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/743822741289083061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=743822741289083061' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/743822741289083061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/743822741289083061'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/02/sql-15.html' title='எளிய தமிழில் SQL - பாகம் 15'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SZGPkga2azI/AAAAAAAADZk/8tsd5ol5DCk/s72-c/AuthorStructure.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-215577703140775714</id><published>2009-02-05T08:13:00.000-08:00</published><updated>2009-02-05T08:31:41.101-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 14</title><content type='html'>SQL Server பயன்பாட்டை எவ்வாறு நிறுவுவது என &lt;a href="http://www.blogger.com/profile/09419285381096186581" target="_blank"&gt;திரு. G. ராஜாராமன் சவுதி அரேபியா&lt;/a&gt;  கேட்டிருந்தார். அவருக்காக இணையத்தில் தேடியபோது ஒரு அருமையான தளமுகவரி கிடைத்தது அதை இங்கே பகிர்கிறேன்.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு திரையாகப் படம் பிடித்து அருமையாக விளக்கியிருக்கிறார்கள்.&lt;br /&gt;&lt;a href="http://www.functionx.com/sqlserver/Lesson01.htm" target="_blank"&gt;http://www.functionx.com/sqlserver/Lesson01.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;அவர் கேட்டதற்கு இணங்கி அப்படி ஒரு பதிவைத் தமிழில் வெளியிட நினைத்தேன். அழகான செயல்முறை விளக்கத்துடன் ஆங்கிலத்தில் இருந்தாலும் எளிதாகப் புரியும் வண்ணம் இருந்ததால் அதன் சுட்டியை இங்கே பகிர்ந்துவிட்டேன்.&lt;br /&gt;&lt;br /&gt;மேலும் SQL க்கான Syntax அட்டவணையை &lt;a href="http://www.w3schools.com/sql/sql_quickref.asp" target="_blank"&gt;http://www.w3schools.com/sql/sql_quickref.asp&lt;/a&gt; ல் கண்டேன். அதனைக் கீழே தந்திருக்கிறேன்.&lt;br /&gt;&lt;br /&gt;நன்றி : &lt;a href="http://www.w3schools.com/" target="_blank"&gt;http://www.w3schools.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;இந்த SQL Syntaxகளை நன்றாகப் படித்து மனதில் வைத்துக்கொள்ளவும்.&lt;br /&gt;&lt;br /&gt;&lt;table class="ex" width="100%" border="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" align="left"&gt;AND / OR&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE condition&lt;br /&gt;  AND|OR condition&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;ALTER TABLE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;ALTER TABLE table_name&lt;br /&gt;  ADD column_name datatype&lt;p&gt;or&lt;/p&gt;   &lt;p&gt;ALTER TABLE table_name&lt;br /&gt;  DROP COLUMN column_name&lt;/p&gt;&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;AS (alias)&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name AS column_alias&lt;br /&gt;  FROM table_name&lt;p&gt;or&lt;/p&gt;   &lt;p&gt;SELECT column_name&lt;br /&gt;  FROM table_name  AS table_alias&lt;/p&gt;&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;BETWEEN&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE column_name&lt;br /&gt;  BETWEEN value1 AND value2&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;CREATE DATABASE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;CREATE DATABASE database_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;CREATE TABLE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;CREATE TABLE table_name&lt;br /&gt;  (&lt;br /&gt;  column_name1 data_type,&lt;br /&gt;  column_name2 data_type,&lt;br /&gt;  column_name2 data_type,&lt;br /&gt;  ...&lt;br /&gt;  )&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;CREATE INDEX&lt;/td&gt;       &lt;td valign="top" align="left"&gt;CREATE INDEX index_name&lt;br /&gt;  ON table_name (column_name)&lt;p&gt;or&lt;/p&gt;   &lt;p&gt;CREATE UNIQUE INDEX index_name&lt;br /&gt;  ON table_name (column_name)&lt;/p&gt;&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;CREATE VIEW&lt;/td&gt;       &lt;td valign="top" align="left"&gt;CREATE VIEW view_name AS&lt;br /&gt;  SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE condition&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;DELETE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;DELETE FROM table_name&lt;br /&gt;  WHERE some_column=some_value&lt;p&gt;or&lt;/p&gt;   &lt;p&gt;DELETE FROM table_name&lt;br /&gt;  (&lt;b&gt;Note: &lt;/b&gt;Deletes the entire table!!)&lt;/p&gt;   &lt;p&gt;DELETE * FROM table_name&lt;br /&gt;  (&lt;b&gt;Note: &lt;/b&gt;Deletes the entire table!!)&lt;/p&gt;&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;DROP DATABASE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;DROP DATABASE database_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;DROP INDEX&lt;/td&gt;       &lt;td valign="top" align="left"&gt;DROP INDEX table_name.index_name (SQL    Server)&lt;br /&gt;  DROP INDEX index_name ON table_name (MS Access)&lt;br /&gt;  DROP INDEX index_name (DB2/Oracle)&lt;br /&gt;  ALTER TABLE table_name&lt;br /&gt;  DROP INDEX index_name (MySQL)&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;DROP TABLE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;DROP TABLE table_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;GROUP BY&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name,    aggregate_function(column_name)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE column_name operator value&lt;br /&gt;  GROUP BY column_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;HAVING&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name,    aggregate_function(column_name)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE column_name operator value&lt;br /&gt;  GROUP BY column_name&lt;br /&gt;  HAVING aggregate_function(column_name) operator value&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;IN&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE column_name&lt;br /&gt;  IN (value1,value2,..)&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;INSERT INTO&lt;/td&gt;       &lt;td valign="top" align="left"&gt;INSERT INTO table_name&lt;br /&gt;  VALUES (value1, value2, value3,....)&lt;p&gt;&lt;i&gt;or&lt;/i&gt;&lt;/p&gt;   &lt;p&gt;INSERT INTO table_name&lt;br /&gt;  (column1, column2, column3,...)&lt;br /&gt;  VALUES (value1, value2, value3,....)&lt;/p&gt;&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;INNER JOIN&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name1&lt;br /&gt;  INNER JOIN table_name2&lt;br /&gt;  ON table_name1.column_name=table_name2.column_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;LEFT JOIN&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name1&lt;br /&gt;  LEFT JOIN table_name2&lt;br /&gt;  ON table_name1.column_name=table_name2.column_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;RIGHT JOIN&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name1&lt;br /&gt;  RIGHT JOIN table_name2&lt;br /&gt;  ON table_name1.column_name=table_name2.column_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;FULL JOIN&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name1&lt;br /&gt;  FULL JOIN table_name2&lt;br /&gt;  ON table_name1.column_name=table_name2.column_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;LIKE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE column_name   LIKE pattern&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;ORDER BY&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;br /&gt;  ORDER BY column_name [ASC|DESC]&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td valign="top" align="left"&gt;SELECT&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td valign="top" align="left"&gt;SELECT *&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT *&lt;br /&gt;  FROM table_name&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td valign="top" align="left"&gt;SELECT DISTINCT&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT DISTINCT column_name(s)&lt;br /&gt;  FROM table_name&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td valign="top" align="left"&gt;SELECT INTO&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT *&lt;br /&gt;  INTO new_table_name [IN externaldatabase]&lt;br /&gt;  FROM old_table_name&lt;p&gt;&lt;i&gt;or&lt;/i&gt;&lt;/p&gt;   &lt;p&gt;SELECT column_name(s)&lt;br /&gt;  INTO new_table_name [IN externaldatabase]&lt;br /&gt;  FROM old_table_name&lt;/p&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td valign="top" align="left"&gt;SELECT TOP&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT TOP number|percent column_name(s)&lt;br /&gt;  FROM table_name&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td valign="top" align="left"&gt;TRUNCATE TABLE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;TRUNCATE TABLE table_name&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;UNION&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s) FROM table_name1&lt;br /&gt;  UNION&lt;br /&gt;  SELECT column_name(s) FROM table_name2&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;UNION ALL&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s) FROM table_name1&lt;br /&gt;  UNION ALL&lt;br /&gt;  SELECT column_name(s) FROM table_name2&lt;/td&gt;     &lt;/tr&gt;  &lt;tr&gt;       &lt;td valign="top" align="left"&gt;UPDATE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;UPDATE table_name&lt;br /&gt;  SET column1=value, column2=value,...&lt;br /&gt;  WHERE some_column=some_value&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td valign="top" align="left"&gt;WHERE&lt;/td&gt;       &lt;td valign="top" align="left"&gt;SELECT column_name(s)&lt;br /&gt;  FROM table_name&lt;br /&gt;  WHERE column_name operator value&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Select Statement&lt;/span&gt;&lt;br /&gt;SELECT "column_name" FROM "table_name"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Distinct&lt;/span&gt;&lt;br /&gt;SELECT DISTINCT "column_name"&lt;br /&gt;FROM "table_name"&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Where&lt;/span&gt;&lt;br /&gt;SELECT "column_name"&lt;br /&gt;FROM "table_name"&lt;br /&gt;WHERE "condition"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;And/Or&lt;/span&gt;&lt;br /&gt;SELECT "column_name"&lt;br /&gt;FROM "table_name"&lt;br /&gt;WHERE "simple condition"&lt;br /&gt;{[AND|OR] "simple condition"}+&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;In&lt;/span&gt;&lt;br /&gt;SELECT "column_name"&lt;br /&gt;FROM "table_name"&lt;br /&gt;WHERE "column_name" IN ('value1', 'value2', ...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Between&lt;/span&gt;&lt;br /&gt;SELECT "column_name"&lt;br /&gt;FROM "table_name"&lt;br /&gt;WHERE "column_name" BETWEEN 'value1' AND 'value2'&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Like&lt;/span&gt;&lt;br /&gt;SELECT "column_name"&lt;br /&gt;FROM "table_name"&lt;br /&gt;WHERE "column_name" LIKE {PATTERN}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Order By&lt;/span&gt;&lt;br /&gt;SELECT "column_name"&lt;br /&gt;FROM "table_name"&lt;br /&gt;[WHERE "condition"]&lt;br /&gt;ORDER BY "column_name" [ASC, DESC]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Count&lt;/span&gt;&lt;br /&gt;SELECT COUNT("column_name")&lt;br /&gt;FROM "table_name"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Group By&lt;/span&gt;&lt;br /&gt;SELECT "column_name1", SUM("column_name2")&lt;br /&gt;FROM "table_name"&lt;br /&gt;GROUP BY "column_name1"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Having&lt;/span&gt;&lt;br /&gt;SELECT "column_name1", SUM("column_name2")&lt;br /&gt;FROM "table_name"&lt;br /&gt;GROUP BY "column_name1"&lt;br /&gt;HAVING (arithematic function condition)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Create Table Statement&lt;/span&gt;&lt;br /&gt;CREATE TABLE "table_name"&lt;br /&gt;("column 1" "data_type_for_column_1",&lt;br /&gt;"column 2" "data_type_for_column_2",&lt;br /&gt;... )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Drop Table Statement&lt;/span&gt;&lt;br /&gt;DROP TABLE "table_name"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Truncate Table Statement&lt;/span&gt;&lt;br /&gt;TRUNCATE TABLE "table_name"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Insert Into Statement&lt;/span&gt;&lt;br /&gt;INSERT INTO "table_name" ("column1", "column2", ...)&lt;br /&gt;VALUES ("value1", "value2", ...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update Statement&lt;/span&gt;&lt;br /&gt;UPDATE "table_name"&lt;br /&gt;SET "column_1" = [new value]&lt;br /&gt;WHERE {condition}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Delete From Statement&lt;/span&gt;&lt;br /&gt;DELETE FROM "table_name"&lt;br /&gt;WHERE {condition}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-215577703140775714?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/215577703140775714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=215577703140775714' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/215577703140775714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/215577703140775714'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/02/sql-14.html' title='எளிய தமிழில் SQL - பாகம் 14'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-4102112350093995005</id><published>2009-02-04T06:24:00.000-08:00</published><updated>2009-02-04T07:58:30.038-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 13</title><content type='html'>Primary key மற்றும் Foreign key ஆகியவற்றைப் பற்றியும், SQL வாயிலாக இரண்டு Tableகளை இணைப்பது எப்படி என்றும் இன்றைக்குப் பார்ப்போம்.&lt;br /&gt;&lt;br /&gt;Primary key என்பது ஒரு Tableல் இருக்கும் அனைத்து Row களையும் தனித்தனியாகக் கண்டறிய உதவுகிறது. உதாரணமாக ஒரு எளிய Table. அதில் 2 Columns மட்டும். அவை DirectorID int, DirectorName varchar(50)&lt;br /&gt;(மேலும் இது Primary keyஆகவும், Autoincrement ஆகவும் கொடுக்கப்படுகிறது. Auto increment என்பது int எனப்படும் எண்களுக்கு மட்டுமே சாத்தியப்படும்) ,  இந்த Tableக்கு DirectorInfo எனப் பெயரிடுவோம்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmnp5wMjHI/AAAAAAAADQo/RK6NZa7oNlw/s1600-h/DirectorInfoStructure.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 76px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmnp5wMjHI/AAAAAAAADQo/RK6NZa7oNlw/s320/DirectorInfoStructure.png" alt="" id="BLOGGER_PHOTO_ID_5298950774897544306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;இந்த DirectorID எனப்படும் Column ஐ Primary key ஆக மாற்ற என்ன செய்யவேண்டும்.&lt;br /&gt;&lt;br /&gt;DirectorID எனப்படும் Column ஐத் தேர்வு செய்து Right Click செய்து, தோன்றக்கூடிய சிறு menuவில் Set Primary Key என்பதைச் சொடுக்கவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmoygPNrDI/AAAAAAAADQw/vHChdd6m-ck/s1600-h/setprimary.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 81px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmoygPNrDI/AAAAAAAADQw/vHChdd6m-ck/s320/setprimary.png" alt="" id="BLOGGER_PHOTO_ID_5298952022178769970" border="0" /&gt;&lt;/a&gt;இதைச் செய்தபிறகு DirectorID க்கு இடது புறம் ஒரு சிறிய சாவியின் படம் தெரிய ஆரம்பிக்கும்.&lt;br /&gt;&lt;br /&gt;மேலும் Identity Column ( Auto increment) ஆக மாற்றுவதற்கு என்ன செய்வது?&lt;br /&gt;DirectorID எனப்படும் Column ஐத் தேர்வு செய்து F4 என்னும் Function keyஐ அழுத்தினால் Properties Windows ஐக் காணலாம். அதில் Table Designer என்னும் தலைப்பின் கீழே, Identity Column என்பதற்கு நேராக உள்ள Drop Downlist ல் DirectorID என்பதைத் தேர்வு செய்யவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmqQOAj0YI/AAAAAAAADQ4/65wtOlHLgGA/s1600-h/identityF4Properties.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 270px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmqQOAj0YI/AAAAAAAADQ4/65wtOlHLgGA/s320/identityF4Properties.png" alt="" id="BLOGGER_PHOTO_ID_5298953632193171842" border="0" /&gt;&lt;/a&gt;அல்லது கீழ்க்கண்ட செயல்முறையைத் தொடரலாம். Identity Column ஆக மாற்ற கீழ்க்கண்ட படத்தில் உள்ளபடி செய்யலாம். அந்த Column ஐத் தேர்வுசெய்தபிறகு, கீழே உள்ள Column Properties Tab ல் , Identity Specification ஐ Yes எனக் கொடுக்கவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmrHJY4tnI/AAAAAAAADRQ/qraeH-sqRJA/s1600-h/colProp.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 252px; height: 217px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmrHJY4tnI/AAAAAAAADRQ/qraeH-sqRJA/s320/colProp.png" alt="" id="BLOGGER_PHOTO_ID_5298954575845832306" border="0" /&gt;&lt;/a&gt;அதன் Increment , seed மதிப்புகளைக் கொடுக்கலாம். அல்லது 1 எனவே விட்டுவிடலாம். ஒவ்வொரு rowன் மதிப்பும் ஐந்து, ஐந்தாக அதிகரிக்கவேண்டும் எனில் Identity Increment ன் மதிப்பை 5 எனக் கொடுக்கவும்.&lt;br /&gt;&lt;br /&gt;சரி ஒருவழியாக DirectorsInfo வின் Structure ஐ உருவாக்கிவிட்டோம். இப்போது இதை Close செய்துவிடவும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmsYlRKVwI/AAAAAAAADRY/xS-BBBjhyOM/s1600-h/closeStructure.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 127px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmsYlRKVwI/AAAAAAAADRY/xS-BBBjhyOM/s320/closeStructure.png" alt="" id="BLOGGER_PHOTO_ID_5298955974899029762" border="0" /&gt;&lt;/a&gt;இப்போது மேலும் ஒரு எளிய Table ஒன்றை உருவாக்கி, அதற்கு FilmInfo எனப் பெயரிடுவோம்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmsxljRROI/AAAAAAAADRg/-MKLDJnqlUA/s1600-h/FilmInfoStructure.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 318px; height: 120px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmsxljRROI/AAAAAAAADRg/-MKLDJnqlUA/s320/FilmInfoStructure.png" alt="" id="BLOGGER_PHOTO_ID_5298956404471710946" border="0" /&gt;&lt;/a&gt;இந்த FilmInfo என்கிற புதிய Tableல் DirectorID என்னும் Column உள்ளது. இது int எனப்படும் எண் வகையைச் சேர்ந்த Data Type.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு படத்தையும் வேறு வேறு இயக்குநர்கள் இயக்கியிருக்கலாம். ஒன்றுக்கு மேற்பட்ட திரைப்படங்களை ஒரே இயக்குநரே இயக்கியிருக்கலாம்.&lt;br /&gt;&lt;br /&gt;1000 திரைப்படங்களின் தகவல்களைச் சேகரித்தோம் எனில், அதில் ஒரே இயக்குநரானவர் 10 அல்லது 25 அல்லது 100 படங்களைக்கூட எடுத்திருப்பார். 100 முறை அவரது பெயரை எழுதினால் நினைவகம் (memory) தேவையில்லாமல் ஆக்கிரமிக்கப்படும். அதனால் அவரது பெயரை ஒரே ஒருமுறை மட்டும் Master Table ல் (இங்கே DirectorsInfo - என்பதே Master table) கொடுத்து அவருக்காக ஒரு எண்ணை ஒதுக்கி விடுகிறோம்.&lt;br /&gt;&lt;br /&gt;பலவித திரைப்படங்களின் தகவல்களை இரண்டாவது Table (FilmInfo என்பது இங்கே Detail Table)ல் பதிவுசெய்யப் போகிறோம். இங்கே ஒவ்வொரு Directorன் பெயரை முழுவதும் எழுதி நினைவகத்தை ஆக்கிரமிக்காமல் அவருக்குரிய எண்ணை மட்டும் கொடுப்போம்.&lt;br /&gt;&lt;br /&gt;Master Table ல் ஒவ்வொரு Director க்கும் எண்களும், பெயர்களும் கொடுத்துவிட்டு, Detail Tableல் Directorக்கு உரிய எண்ணை மட்டும் கொடுப்பது வழக்கம்.&lt;br /&gt;&lt;br /&gt;நினைவக இழப்பைக் குறைப்பதற்காகவும், ஒரே தகவலை திரும்பத்திரும்ப எழுதுவதைத் தவிர்க்கவும் - இந்த ஏற்பாடு.&lt;br /&gt;&lt;br /&gt;ஒரு Director ஆனவர் பல படங்களை எடுத்துள்ளார் - எனில் இதை ONE TO  MANY RELATIONSHIP என்போம்.&lt;br /&gt;&lt;br /&gt;இந்த இரண்டாவது Tableன் Structureஐ ஏற்றிமுடித்ததும் கீழ்க்கண்ட செயல்முறையைச் செய்து இரண்டு Tableகளுக்கும் ஒரு உறவுமுறையை உண்டாக்கவும். உறவுமுறை (Table Relationship).&lt;br /&gt;Test எனப்படும் Databaseல்  Database Diagrams என்பதைத் தேர்வுசெய்து, Right Click செய்து, அதில் New Database Diagram ஐத் தேர்ந்தெடுக்கவும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYmvJdSMNJI/AAAAAAAADRo/IgDQrB9m3X0/s1600-h/newDBdiag.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 312px; height: 104px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYmvJdSMNJI/AAAAAAAADRo/IgDQrB9m3X0/s320/newDBdiag.png" alt="" id="BLOGGER_PHOTO_ID_5298959013592708242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;உடன் தெரியும் உரையாடல் பெட்டியில் (dialog box) , DirectorsInfo மற்றும், FilmInfo ஆகிய இரண்டு Tableகளையும் தேர்வு செய்து , Add ஐ அழுத்தியபிறகு, Close அழுத்தவும்.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYmwd1DTjGI/AAAAAAAADRw/8uXXDxRaZDA/s1600-h/setrelation.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 251px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYmwd1DTjGI/AAAAAAAADRw/8uXXDxRaZDA/s320/setrelation.png" alt="" id="BLOGGER_PHOTO_ID_5298960463081737314" border="0" /&gt;&lt;/a&gt;இப்போது திரை கீழ்க்கண்டவாறு காட்சியளிக்கும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmxgyDJ9jI/AAAAAAAADR4/4BaX7rpXsb4/s1600-h/beforejoin.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 106px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmxgyDJ9jI/AAAAAAAADR4/4BaX7rpXsb4/s320/beforejoin.png" alt="" id="BLOGGER_PHOTO_ID_5298961613327038002" border="0" /&gt;&lt;/a&gt;DirectorsInfo ல் இருக்கும் DirectorID ஐ அப்படியே இழுத்துக்கொண்டு வந்து, FilmInfo வில் இருக்கும் DirectorIDல் விடவும். அதாவது Master Tableன் DirectorID ஐ Drag செய்து, Detail Table ல் இருக்கும் DirectorIDல் Drop செய்யவும்.&lt;br /&gt;&lt;br /&gt;எளிதான Drag and Drop தான்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmyLFt4rgI/AAAAAAAADSA/8DLzAI41650/s1600-h/merge.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 94px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYmyLFt4rgI/AAAAAAAADSA/8DLzAI41650/s320/merge.png" alt="" id="BLOGGER_PHOTO_ID_5298962340161039874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;இப்போது திரையில் மேற்கண்ட படம் தெரியும். Primary key Table (Director Info).&lt;br /&gt;Foreign Key Table (FilmInfo). இரண்டுமே DirectorID என்னும் Column ஆகவும், ஒரே DataTypeஆகவும் இருக்கிறது.  பிறகு இரண்டு முறை OK கொடுக்கவும்.&lt;br /&gt;&lt;br /&gt;இப்போது திரையில் கீழ்க்கண்ட படத்தைக் காணலாம். &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmyvhxd8WI/AAAAAAAADSI/I2cXw_Z2DCk/s1600-h/afterrelation.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 130px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmyvhxd8WI/AAAAAAAADSI/I2cXw_Z2DCk/s320/afterrelation.png" alt="" id="BLOGGER_PHOTO_ID_5298962966167548258" border="0" /&gt;&lt;/a&gt;இந்த Database Diagram ஐ Close செய்துவிட்டு, Tableக்குரிய தகவல்களை ஒவ்வொரு Row ஆக ஏற்றவும்.&lt;br /&gt;&lt;br /&gt;DirectorsInfo வில் முதலில் உங்களுக்குத் தெரிந்த Directorsன் பெயர்களை மட்டும் கொடுத்தால் போதும். DirectorID என்பது அதுவாகவே உருவாகிக்கொள்ளும். அடுத்தடுத்த Directorகளுக்குரிய எண்கள் தானாகவே அமைந்துகொள்ளும். இதற்கு காரணம் அந்த குறிப்பிட்ட Column ஆனது IDENTITY Column என அமைக்கப்பட்டுள்ளதே.&lt;br /&gt;&lt;br /&gt;பிறகு ஒவ்வொரு படங்களுக்கும் உரிய தகவல்களை Row by Row வாக FilmInfo என்னும் Tableல் ஏற்றவும். இங்கே DirectorIDஎன்னும் Columnல் ஏற்கனவே Master Tableல் என்ன எண்கள் அளிக்கப்பட்டிருக்கிறதோ அவற்றை மாத்திரமே கொடுக்கவேண்டும். Master Tableல் இல்லாத DirectorID ஐக் கொடுத்தால் பிழைச்செய்தி காண்பிக்கும்.&lt;br /&gt;உதாரணத்திற்காக DirectorInfoவில் சில records உங்கள் பார்வைக்கு.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm0MYh911I/AAAAAAAADSQ/cHtDV1sHKmI/s1600-h/DirectorInfo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 241px; height: 122px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm0MYh911I/AAAAAAAADSQ/cHtDV1sHKmI/s320/DirectorInfo.png" alt="" id="BLOGGER_PHOTO_ID_5298964561414444882" border="0" /&gt;&lt;/a&gt;FilmInfo எனப்படும் Detail Tableல் நான் ஏற்றிய சில Records கீழே.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm16cXJ1mI/AAAAAAAADSY/bHOQrkc8Y-4/s1600-h/sampledetails.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 165px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm16cXJ1mI/AAAAAAAADSY/bHOQrkc8Y-4/s320/sampledetails.png" alt="" id="BLOGGER_PHOTO_ID_5298966452228445794" border="0" /&gt;&lt;/a&gt;இதில் Master Table ல் என்ன DirectorID கொடுத்தோமோ அதை Detail Tableல் refer செய்கிறோம். ஒவ்வொரு படத்துக்கும் அதை இயக்கிய இயக்குநரின் பெயரைக் கொடுக்காமல், அவருக்குரிய ID எனப்படும் எண்ணை மட்டும் கொடுக்கிறோம்.&lt;br /&gt;&lt;br /&gt;இரண்டு Tableஐயும் இணைத்து JOIN செய்வதற்கு உரிய செயல்முறை கீழே:&lt;br /&gt;&lt;br /&gt;T-SQL Editorல் Right Click செய்து, Design Query in Editor என்பதைத் தேர்வு செய்யவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYm26f1CtLI/AAAAAAAADSg/oZDxN9iG2os/s1600-h/designqueryeditor.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 293px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYm26f1CtLI/AAAAAAAADSg/oZDxN9iG2os/s320/designqueryeditor.png" alt="" id="BLOGGER_PHOTO_ID_5298967552670741682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;பிறகு வரும் Dialog boxல் இரண்டு Tablesஐயும் தேர்வு செய்து Add கொடுத்தபின் Close செய்யவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm3TKAeTrI/AAAAAAAADSo/XlkrZlZo7ek/s1600-h/add2tables.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm3TKAeTrI/AAAAAAAADSo/XlkrZlZo7ek/s320/add2tables.png" alt="" id="BLOGGER_PHOTO_ID_5298967976309837490" border="0" /&gt;&lt;/a&gt;ஏற்கனவே Primary key, மற்றும் Foreign key ஆகியவை முறைப்படி இணைக்கப்பட்டிருந்தால் கீழ்க்கண்ட படம் திரையில் காட்சியளிக்கும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYm3tHo_BCI/AAAAAAAADSw/3x7HfkJrdW4/s1600-h/screen.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 109px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYm3tHo_BCI/AAAAAAAADSw/3x7HfkJrdW4/s320/screen.png" alt="" id="BLOGGER_PHOTO_ID_5298968422351045666" border="0" /&gt;&lt;/a&gt;இரண்டு Tableகளிலிருந்து எந்தெந்த Columnsஐ நாம் தேர்ந்தெடுக்கிறோம் என்பதை ஒவ்வொரு Columnக்கும் எதிரேயுள்ள Checkbox ல் Tick செய்துவிடுங்கள்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm4hDMOsQI/AAAAAAAADS4/tvJ2fzh9uTU/s1600-h/fieldselection.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 138px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm4hDMOsQI/AAAAAAAADS4/tvJ2fzh9uTU/s320/fieldselection.png" alt="" id="BLOGGER_PHOTO_ID_5298969314509893890" border="0" /&gt;&lt;/a&gt;இப்படி Columnகளைத் தேர்வுசெய்தவுடன் உங்களுக்குக் கீழ்க்கண்ட Query கிடைக்கும்&lt;br /&gt;&lt;br /&gt;SELECT     DirectorsInfo.DirectorName, FilmInfo.FilmName, FilmInfo.Actor, FilmInfo.Actress&lt;br /&gt;FROM         DirectorsInfo INNER JOIN&lt;br /&gt;                  FilmInfo ON DirectorsInfo.DirectorID = FilmInfo.DirectorID&lt;br /&gt;பின் OK அழுத்தினால் மேலேயுள்ள Query ஆனது T-SQL Editorக்கு வந்துவிடும்.&lt;br /&gt;&lt;br /&gt;F5  அழுத்தின் இயக்கவும். இதன் மூலம் இரண்டு Tableன் தகவல்களும் ஒரே திரையில் காண்பிக்கப்படும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm5IosoCyI/AAAAAAAADTA/GzGk-q7kHWY/s1600-h/aftermerge.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 191px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYm5IosoCyI/AAAAAAAADTA/GzGk-q7kHWY/s320/aftermerge.png" alt="" id="BLOGGER_PHOTO_ID_5298969994592783138" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-4102112350093995005?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/4102112350093995005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=4102112350093995005' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/4102112350093995005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/4102112350093995005'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/02/sql-13.html' title='எளிய தமிழில் SQL - பாகம் 13'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYmnp5wMjHI/AAAAAAAADQo/RK6NZa7oNlw/s72-c/DirectorInfoStructure.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-1017375290024418263</id><published>2009-02-03T08:25:00.000-08:00</published><updated>2009-02-03T09:19:58.630-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 12</title><content type='html'>&lt;div style="text-align: center; color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;"&gt;SELECT உடன் ஒரு செயல்முறைப் பயிற்சி&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM tableName&lt;/span&gt; என்பது ஒரு Tableல் இருக்கும் அனைத்து Rowsஐயும் திரையில் காண்பிக்க, தேடி எடுக்க.&lt;br /&gt;&lt;br /&gt;இதில் குறிப்பிட்ட Rowsஐ மாத்திரம் எடுப்பதற்கு என்ன செய்யவேண்டும். ஒரு WHERE ஐ இணைத்தால் போதும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM tableName WHERE Condition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Condition என்பதைக் கட்டுப்பாடு எனக் கொண்டால் ஒன்றுக்கு மேற்பட்ட கட்டுப்பாடுகளை விதிக்க என்ன செய்ய வேண்டும்?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM tableName WHERE Condition1 AND Condition2 AND Condition3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;AND என்னும் Logical Operator ஐ உடன் சேர்த்துப் பயன்படுத்த வேண்டும்.&lt;br /&gt;&lt;br /&gt;SELECT * FROM என்று கொடுத்தால் அனைத்து Columns ஐயும் நாம் பார்ப்பதற்காக தேர்வு செய்கிறோம் என்று அர்த்தம்.&lt;br /&gt;&lt;br /&gt;இதில் குறிப்பிட்ட Columnsஐ மாத்திரம் பார்க்கவேண்டுமென்றால் என்ன செய்வது?&lt;br /&gt;&lt;br /&gt;SELECT Column1, Column2, Column3 FROM tableName&lt;br /&gt;&lt;br /&gt;SELECT column_name(s) FROM table_name&lt;br /&gt;&lt;br /&gt;உதாரணம்:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT [Name], [City] FROM Persons&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;கீழ்க்கண்ட Tableன் தகவல்களை உற்று நோக்கவும். இதில் City என்னும் இடத்தில் 3 நகரங்கள் உள்ளன. Chennai, Erode, USA. ஆனால் Chennai,Erode ஆகியவை இரண்டுமுறையும், USA - ஒருமுறையும் இடம் பெற்றுள்ளது.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYU-NgWt3oI/AAAAAAAADJY/LyaIRzT9sFY/s320/allcaps.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 206px; height: 139px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYU-NgWt3oI/AAAAAAAADJY/LyaIRzT9sFY/s320/allcaps.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;SELECT [CITY] FROM MyList &lt;/span&gt;எனக் கொடுத்தால் அனைத்து நகரங்களும் வரும்.&lt;/pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYhzWpiT3RI/AAAAAAAADNo/6_jWrok7h1g/s1600-h/allcities.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 87px; height: 113px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYhzWpiT3RI/AAAAAAAADNo/6_jWrok7h1g/s320/allcities.png" alt="" id="BLOGGER_PHOTO_ID_5298611794545466642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ஆனால் இதில் திரும்பத்திரும்ப வரும் நகரங்களை விட்டுவிட்டு, ஒன்றுக்கு மேற்பட்டு வந்திருப்பவைகளை ஒரே ஒரு முறை மட்டும் காண்பிப்பதற்கு DISTINCT உதவும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT DISTINCT [CITY] FROM MyList&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYhzzeeyLQI/AAAAAAAADNw/yryWiB9n4sE/s1600-h/distinctcities.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 87px; height: 74px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYhzzeeyLQI/AAAAAAAADNw/yryWiB9n4sE/s320/distinctcities.png" alt="" id="BLOGGER_PHOTO_ID_5298612289794092290" border="0" /&gt;&lt;/a&gt;குறிப்பிட்ட நகரத்தை மட்டும் காண்பதற்கு இதில் WHERE பயன்படுத்துவோம்.&lt;br /&gt;&lt;pre&gt;SELECT column_name(s)&lt;br /&gt;FROM table_name&lt;br /&gt;WHERE column_name operator value&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE City ='Erode'&lt;/span&gt;&lt;br /&gt;ஈரோடு நகர் நண்பர்களைப் பற்றி மட்டும் காண்பதற்கு&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh0dzf5qPI/AAAAAAAADN4/Jau0Z2VH7tI/s1600-h/erodeonly.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 186px; height: 57px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh0dzf5qPI/AAAAAAAADN4/Jau0Z2VH7tI/s320/erodeonly.png" alt="" id="BLOGGER_PHOTO_ID_5298613016990427378" border="0" /&gt;&lt;/a&gt;நமது தேர்வில் ஒன்றுக்குமேற்பட்ட நகரத்தைக் காண்பதற்கு OR பயன்படுத்துவோம்&lt;br /&gt;&lt;br /&gt;அமெரிக்கா மற்றும், சென்னை - இவற்றைத்  தேர்வு செய்வதற்கு :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE City ='USA' OR City  = 'Chennai'&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh08gjgmFI/AAAAAAAADOA/_cXESteksbM/s1600-h/usawithchennai.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 190px; height: 77px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh08gjgmFI/AAAAAAAADOA/_cXESteksbM/s320/usawithchennai.png" alt="" id="BLOGGER_PHOTO_ID_5298613544481232978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;இதையே வேறு விதமாக OR பயன்படுத்தாமல் எழுதலாம். அதற்கு IN பயன்படுத்தவேண்டும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE City IN ('USA' ,'Chennai')&lt;/span&gt;&lt;br /&gt;இதற்கும் அதே விடைதான்.&lt;br /&gt;&lt;br /&gt;சென்னை நீங்கலாக உள்ள நகரங்களில் இருக்கும் நண்பர்களின் பட்டியலைப் பார்வையிட:&lt;br /&gt;இதற்கு NOT பயன்படுத்தலாம். NOT என்பது Logical Operator வகையைச் சார்ந்தது.&lt;br /&gt;&lt;br /&gt;&lt;&gt; , != என்பது Relational Operator வகையைச் சேர்ந்தது.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;அ) SELECT * FROM MyList  WHERE City  &lt;&gt; 'Chennai'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ஆ) SELECT * FROM MyList  WHERE City  != 'Chennai'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;இ) SELECT * FROM MyList  WHERE City NOT IN ('Chennai')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;அனைத்துக்கும் ஒரே விடைதான். அது கீழே. சென்னையைத் தவிர.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYh2HL6nfiI/AAAAAAAADOI/DBytdxX5jRs/s1600-h/exceptchennai.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 185px; height: 76px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYh2HL6nfiI/AAAAAAAADOI/DBytdxX5jRs/s320/exceptchennai.png" alt="" id="BLOGGER_PHOTO_ID_5298614827431198242" border="0" /&gt;&lt;/a&gt;யாருடைய பெயரில் n என்கிற எழுத்து உள்ளது என்பதை அறிவதற்கு :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Name] LIKE '%n%'&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh25bVnLRI/AAAAAAAADOQ/cs2Mb2PYsyA/s1600-h/insideN.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 197px; height: 58px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh25bVnLRI/AAAAAAAADOQ/cs2Mb2PYsyA/s320/insideN.png" alt="" id="BLOGGER_PHOTO_ID_5298615690564414738" border="0" /&gt;&lt;/a&gt;LIKE எனப்படும் keywordன் பயன் யாதெனில், குறிப்பிட்ட எழுத்துகளைக் கொண்ட தகவல்களை மட்டும் தேர்வு செய்வது&lt;br /&gt;%n% எனில் ஏதோ ஒரு எழுத்து n ஆக இருக்கும் நபர்கள்.&lt;br /&gt;&lt;br /&gt;_ என்பது &lt;span style="font-weight: bold;"&gt;underscore &lt;/span&gt;(அடிக்கோடு), இது ஒரு எழுத்தை மட்டும் எதைக்கொண்டாவது நிரப்பிக்கொள் என்பதற்காக. % என்பது மீதமுள்ள அனைத்து எழுத்துக்களையும் நிரப்பிக்கொள் என்பதே. இவற்றிற்கு Wild Card Characters என்று பெயர்.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Name] LIKE '_a%'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;முதல் எழுத்து எதுவாக இருந்தாலும் பரவாயில்லை. ஆனால் இரண்டாம் எழுத்து கண்டிப்பாக 'a'. மீதியுள்ள எழுத்துக்களைப் பற்றிக் கவலையில்லை. அதற்காக.&lt;br /&gt;&lt;br /&gt;சுருங்கச் சொன்னால் யாருடைய பெயரில், இரண்டாம் எழுத்து a ஆக இருக்கிறது.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh0dzf5qPI/AAAAAAAADN4/Jau0Z2VH7tI/s1600-h/erodeonly.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 186px; height: 57px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh0dzf5qPI/AAAAAAAADN4/Jau0Z2VH7tI/s320/erodeonly.png" alt="" id="BLOGGER_PHOTO_ID_5298613016990427378" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt;Person# ல் 1,3,5 ஆகியோர்களைத் தேர்வு செய்வதற்கு:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Person#] = 1 OR [Person#] = 2 OR [Person#] = 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh5PQrtZhI/AAAAAAAADOg/obFlq5I7CIo/s1600-h/135.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 153px; height: 75px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh5PQrtZhI/AAAAAAAADOg/obFlq5I7CIo/s320/135.png" alt="" id="BLOGGER_PHOTO_ID_5298618264684684818" border="0" /&gt;&lt;/a&gt;OR என்பது எதாவது ஒரு Condition ஏற்றுக்கொண்டாலும் ஒத்துழைக்கக்கூடியது&lt;br /&gt;இதை IN மூலம் எழுதினால்,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Person#] IN (1,3,5)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1,3,5 இவற்றைத் தவிர பிற Rowsகளைப் பார்க்க :&lt;br /&gt;அதாவது 2, மற்றும் 4 ஆகியவற்றை மட்டும் பார்க்க&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Person#] NOT IN (1,3,5)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;அல்லது&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Person#] != 1 AND [Person#] != 3 AND [Person#] !=5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;அல்லது&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Person#] &lt;&gt; 1 AND [Person#] &lt;&gt; 3 AND [Person#] &lt;&gt; 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYh50Rk-CwI/AAAAAAAADOo/rTG0PHlYUmM/s1600-h/24.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 169px; height: 57px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYh50Rk-CwI/AAAAAAAADOo/rTG0PHlYUmM/s320/24.png" alt="" id="BLOGGER_PHOTO_ID_5298618900580010754" border="0" /&gt;&lt;/a&gt;SELECT * FROM MyList எனக் கொடுக்கிறேன்.&lt;br /&gt;இதன் விடை&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh7F_H7-4I/AAAAAAAADOw/VVci-iGPM7g/s1600-h/allstar.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 199px; height: 119px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh7F_H7-4I/AAAAAAAADOw/VVci-iGPM7g/s320/allstar.png" alt="" id="BLOGGER_PHOTO_ID_5298620304375675778" border="0" /&gt;&lt;/a&gt;இதில் பெயர்களை மையமாகக் கொண்டு ஏறுவரிசை (ascending), அல்லது இறங்குவரிசை (descending) ஆகக் காண்பிப்பதற்கு என்ன செய்வது?&lt;br /&gt;&lt;br /&gt;இதற்காக SELECT உடன் ORDER BY எனப்படும் keyword ஐப் பயன்படுத்தவேண்டும்.&lt;br /&gt;&lt;br /&gt;ASC எனக் கொடுத்தால் ஏறுவரிசையாகவும், DESC எனக் கொடுத்தால் இறங்குவரிசையாகவும் காட்சியளிக்கும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList ORDER BY [Name] ASC&lt;/span&gt;  (ஏறுவரிசையில் பார்க்க)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh7dNW6gCI/AAAAAAAADO4/boBE8SpoAxs/s1600-h/ASC.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 165px; height: 112px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYh7dNW6gCI/AAAAAAAADO4/boBE8SpoAxs/s320/ASC.png" alt="" id="BLOGGER_PHOTO_ID_5298620703333580834" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList ORDER BY [Name] DESC&lt;/span&gt; (இறங்குவரிசையில் காண)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh7230xlwI/AAAAAAAADPA/EqL2MyfHe54/s1600-h/desc.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 167px; height: 114px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYh7230xlwI/AAAAAAAADPA/EqL2MyfHe54/s320/desc.png" alt="" id="BLOGGER_PHOTO_ID_5298621144229844738" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-1017375290024418263?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/1017375290024418263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=1017375290024418263' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1017375290024418263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1017375290024418263'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/02/sql-12.html' title='எளிய தமிழில் SQL - பாகம் 12'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYU-NgWt3oI/AAAAAAAADJY/LyaIRzT9sFY/s72-c/allcaps.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-624486492247980292</id><published>2009-02-02T06:04:00.000-08:00</published><updated>2011-04-20T19:57:21.893-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 11</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;இன்று ஒரு சிறிய செயல்முறைப் பயிற்சியை மேற்கொள்வோம். இதற்காக நாம் ஒரு புதிய Tableஐ உருவாக்குவோம். அதற்குரிய Structure கீழே :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYb_QivliqI/AAAAAAAADLg/GvhVNcICrQY/s1600-h/structureMarks.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298202671317355170" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYb_QivliqI/AAAAAAAADLg/GvhVNcICrQY/s320/structureMarks.png" style="cursor: pointer; display: block; height: 174px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;இந்தப் படத்தில்  RegNoக்குறிய Columnல் Primary key க்கான படம் சிறிய சாவியாகக் குறிக்கப்பட்டுள்ளது. ஒரு Column ஐ Primary key ஆக எப்படி மாற்றுவது?&lt;br /&gt;அந்தக் குறிப்பிட்ட Columnஐத் தேர்வு செய்யவும். பிறகு Right Click செய்து, வரக்கூடிய சிறிய menu வில் Set Primary key எனக் கொடுக்கவும்.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYcARhvE7vI/AAAAAAAADLo/Fay2Ah-ra_g/s1600-h/setprimarykey.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298203787738279666" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYcARhvE7vI/AAAAAAAADLo/Fay2Ah-ra_g/s320/setprimarykey.png" style="cursor: pointer; display: block; height: 90px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;அவ்வளவுதான் Columnஐ, Primary key எனக் குறித்தாயிற்று. அதனால் ஒவ்வொரு நபருக்கும் நாம் கொடுக்கவேண்டிய பதிவு எண் (Registration Number)ணை மாற்றி, மாற்றிக் கொடுக்கவேண்டும். ஒரு நபருக்குக் கொடுத்த எண்ணையே மற்றோர் நபருக்குத் திரும்பவும் கொடுத்தால் பிழைச்செய்தி வரும். ஒவ்வொரு Rowன் RegNo ஐயும் வித்தியாசப்படுத்தவே Primary key ஐத் தேர்வுசெய்கிறோம்.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcBLV60JNI/AAAAAAAADLw/HXSKhq49bnM/s1600-h/Close.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298204780998698194" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcBLV60JNI/AAAAAAAADLw/HXSKhq49bnM/s320/Close.png" style="cursor: pointer; display: block; height: 118px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;Table Structureஐ Close செய்துவிட்டு, ஒரு Table Name கொடுத்துப் பதிவு செய்கிறோம். (MarkStatement என்று பெயர்கொடுத்திருக்கிறேன்). நினைவகத்தில் வன்வட்டு (hard disk)ல் பதிவாகிவிடும்.&lt;br /&gt;&lt;br /&gt;இதில் Total, Average, Result ஆகிய Columnளுக்கு மட்டும் Allow Nulls என்பதற்கு நேராக Tick செய்துள்ளோம். ஆகவே Total, Average, Result ஆகியவற்றுக்கு மட்டும் தகவல்களை உள்ளீடு செய்யவேண்டிய அவசியம் இல்லை. பிறகு ஒரு UPDATE மூலம் அவற்றைக் கணக்கிட்டுக்கொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;இப்போது இந்த அட்டவணை (Table)ல் ஒவ்வொரு Rowவாகத் தகவல்களைக் கொடுக்கப்போகிறோம்.&lt;br /&gt;&lt;br /&gt;இதற்காக MarkStatement ல் Right Click செய்து வரும் சிறு menuவில், Open Table தேர்வுசெய்யவும்.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcCnbXgLhI/AAAAAAAADL4/DBstCK1z9ZQ/s1600-h/oepntable.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298206363009166866" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcCnbXgLhI/AAAAAAAADL4/DBstCK1z9ZQ/s320/oepntable.png" style="cursor: pointer; display: block; height: 172px; margin: 0px auto 10px; text-align: center; width: 305px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYcDFzTtnUI/AAAAAAAADMA/8HawvjPhZ4M/s1600-h/dataentrybefore.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298206884831796546" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYcDFzTtnUI/AAAAAAAADMA/8HawvjPhZ4M/s320/dataentrybefore.png" style="cursor: pointer; display: block; height: 16px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;இங்கே ஒவ்வொரு Rowவாக Table ல் தகவல்களை ஏற்றும்போது, Total,Average,Result ஆகியவற்றுக்கான மதிப்புகளை NULL ஆகவே விட்டுவிட்டு மற்ற Columnகளுக்கு உரிய மதிப்புகளை மட்டும் கொடுத்தால் போதும்.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcENnUzq7I/AAAAAAAADMI/CYYXvoPMI-s/s1600-h/dataentryafter.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298208118565743538" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcENnUzq7I/AAAAAAAADMI/CYYXvoPMI-s/s320/dataentryafter.png" style="cursor: pointer; display: block; height: 137px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;நம் செயல்முறைகளுக்கு, 10 Rows மட்டும் போதும். அதற்காக இதைக் Close செய்யவும்.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYcE0CGSQ-I/AAAAAAAADMQ/pbeNnLpWXsA/s1600-h/closeafterentry.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298208778587620322" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYcE0CGSQ-I/AAAAAAAADMQ/pbeNnLpWXsA/s320/closeafterentry.png" style="cursor: pointer; display: block; height: 36px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;இப்போது, UPDATE மூலம் Total,Average,Result ஆகியவற்றை எப்படி நிரப்புவது என்பதைக் காண்போம். இதற்காக T-SQL Editorஐத் திறந்து கொள்ளவும்.&lt;br /&gt;&lt;br /&gt;இதற்காக Databaseஐத் தேர்வு செய்தபிறகு, New Queryஎன்னும் ஒரு Toolbar ன் buttonஐத் தேர்வு செய்யவும்.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYcFhnPug2I/AAAAAAAADMY/gplAQ9jsJ_M/s1600-h/newquery.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298209561653445474" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYcFhnPug2I/AAAAAAAADMY/gplAQ9jsJ_M/s320/newquery.png" style="cursor: pointer; display: block; height: 85px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;வலதுபுறம் உள்ள காலியிடமே T-SQL Editor ஆகும். அங்கே கீழ்க்கண்ட வரிகளை எழுதுங்கள்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE dbo.MarkStatement&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Total = Tamil + English + Maths&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இதன் விளைவாக Total என்கிற Columnல் மூன்று பாடங்களில் அவரவர்கள் வாங்கிய மதிப்பெண்களைக் கூட்டி வரும் விடை நிரப்பப்பட்டுவிடும். இந்த UPDATE ல் எந்த WHEREம் இல்லாததால் அனைத்து Rowsம் மாற்றப்பட்டுவிடும்.&lt;br /&gt;&lt;br /&gt;எனக்குக் கிடைத்த விடை : (10 row(s) affected)&lt;br /&gt;இப்போது &lt;span style="font-weight: bold;"&gt;SELECT * FROM MarkStatement&lt;/span&gt; - இதை ஓட்டிப்பார்த்து Total Column மதிப்பை உடனே அறிந்துகொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;Average ( சராசரி ) காண்பதற்காக :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE dbo.MarkStatement&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Average = Total / 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;மூன்றையும் கூட்டி மூன்றால் வகுத்தால் வரும் விடை இங்கே சராசரி ஆகும் (Average).&lt;br /&gt;&lt;br /&gt;கீழ்க்கண்ட வரியை இயக்கினால் எந்தெந்த மாணவர்கள் தேர்ச்சியுற்றிருக்கிறார்களோ அவர்களுக்கு மட்டும் PASS என Result Columnன் மதிப்பை மாற்றிவிடலாம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE dbo.MarkStatement&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Result] = 'PASS'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHERE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tamil &amp;gt;= 35 AND English &amp;gt;= 35 AND Maths &amp;gt;= 35&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tamil, English, Maths ஆகிய 3 மாறுபட்ட பாடங்களிலும், அனைத்துப் பாடங்களிலும் குறைந்தபட்சம் 35 மதிப்பெண்கள் எடுத்தவர்களுக்கு PASS போட்டு விடப்படும்.&lt;br /&gt;&lt;br /&gt;AND எனப்படும் தர்க்கரீதியிலான Logical Operator ஆனது, அனைத்துக் கட்டுப்பாடுகளுக்கும் சம்மதிக்கக் கூடிய Rows ஐ மட்டும் பிரித்தெடுத்து அவைகளை மட்டும் UPDATE செய்ய அனுமதிக்கும்.&lt;br /&gt;&lt;br /&gt;விடை : (8 row(s) affected)&lt;br /&gt;&lt;br /&gt;UPDATE dbo.MarkStatement&lt;br /&gt;SET&lt;br /&gt;[Result] = 'FAIL'&lt;br /&gt;WHERE&lt;br /&gt;Tamil &amp;lt; 35 OR English &amp;lt; 35 OR Maths &amp;lt; 35&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;br /&gt;&lt;/span&gt;மேற்கண்ட வரியை இயக்கினால், ஏதேனும் ஒரு பாடத்தில் மட்டுமாவது 35 மதிப்பெண்களைவிடக் குறைவாகப் பெற்றவர்களுக்கு மாத்திரம் FAIL போடப்பட்டுவிடும்.&lt;br /&gt;&lt;br /&gt;OR எனப்படும் தர்க்கரீதியிலான Logical Operator ஆனது ஏதேனும் ஒரு கட்டுப்பாட்டுக்காவது சம்மதிக்கும் Rows ஐ UPDATE செய்துவிடும்.&lt;br /&gt;&lt;br /&gt;கிடைத்த விடை :  (2 row(s) affected)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;இப்போது &lt;span style="font-weight: bold;"&gt;SELECT * FROM MarkStatement&lt;/span&gt; - இதை ஓட்டிப்பார்த்து Total, Average, Result Columnகளில் Update செய்யப்பட்ட மதிப்பை அறிந்துகொள்ளலாம்.  &lt;span style="font-weight: bold;"&gt;&lt;a href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYcJw_dIy2I/AAAAAAAADMg/NdPffE4a_yM/s1600-h/markstatement.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298214223896693602" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYcJw_dIy2I/AAAAAAAADMg/NdPffE4a_yM/s320/markstatement.png" style="cursor: pointer; display: block; height: 174px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;/span&gt;ஹரி, மற்றும் பானு இருவர் மட்டும் தோல்வியடைந்துள்ளனர். மீதி அனைவரும் தேர்ச்சியடைந்துள்ளனர்.&lt;br /&gt;&lt;br /&gt;அதிகபட்ச மதிப்பெண்ணைக் காண :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT MAX(total) FROM Markstatement &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இதன் விடை : 267&lt;br /&gt;&lt;br /&gt;MAX ( )  என்பது Maximum ஒரு உள்ளமைந்த built-in Function ஆகும். இது குறிப்பிட்ட Columnல் இருக்கும் அனைத்து மதிப்புகளிலும் மிக உயர்ந்தது எது என்பதைக் கண்டறிய உதவும்.&lt;br /&gt;&lt;br /&gt;ஏற்கனவே முந்தைய பாடத்தில் UPPER ( ) , GETDATE ( ) போன்ற Functions ஐப் பார்த்திருக்கிறோம். அதைப் போன்றே இது.&lt;br /&gt;&lt;br /&gt;குறைந்தபட்ச மதிப்பெண் யாது?&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT MIN(Total) FROM  Markstatement&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;இதன் விடை : 118&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;MIN( )  என்பது Minimum ஒரு உள்ளமைந்த built-in Function ஆகும். இது குறிப்பிட்ட Columnல் இருக்கும் அனைத்து மதிப்புகளிலும் மிகக் குறைவானது எது என்பதைக் கண்டறிய உதவும்.&lt;br /&gt;&lt;br /&gt;முதல் மதிப்பெண்ணைப் பெற்றவர்களது தகவல்களைக் கண்டறிய :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MarkStatement &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHERE TOTAL = (SELECT MAX (Total) FROM Markstatement)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;அல்லது,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DECLARE @M INT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET @M= ( SELECT MAX(Total) FROM MarkStatement )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM  MarkStatement WHERE Total = @M&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;எனக் கொடுக்கலாம். இதன் விடை கீழே :&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcMKj8bdTI/AAAAAAAADMo/gjhynZv7lZA/s1600-h/rank1.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5298216862211601714" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYcMKj8bdTI/AAAAAAAADMo/gjhynZv7lZA/s320/rank1.png" style="cursor: pointer; display: block; height: 73px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;தேர்வில் தோல்வியடைந்தவர்களின் records ஐ அழித்துவிடுவோம். அதற்காக,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DELETE FROM MarkStatement WHERE [Result] = 'FAIL'&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-624486492247980292?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/624486492247980292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=624486492247980292' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/624486492247980292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/624486492247980292'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/02/sql-11.html' title='எளிய தமிழில் SQL - பாகம் 11'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYb_QivliqI/AAAAAAAADLg/GvhVNcICrQY/s72-c/structureMarks.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-8043976658106065304</id><published>2009-01-31T21:29:00.000-08:00</published><updated>2011-04-20T05:01:45.528-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 10</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;SQL கற்பதற்கான ஒரு இலவச மென்பொருளான 2005 ஐ முந்தைய பாகங்களில் கண்டோம்.&lt;br /&gt;அதன் நவீன வடிவமாகிய &lt;a href="http://www.microsoft.com/express/sql/download/" target="_blank"&gt;Microsoft® SQL Server® 2008 Express with Tools&lt;/a&gt; ஐ இறக்கி நிறுவிப் பயன்பெருங்கள்.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://go.microsoft.com/?linkid=9394725" target="_blank"&gt;SQL Server 2008 Express with Tools &lt;/a&gt;&lt;br /&gt;SQL Server database engine - create, store, update and retrieve your data&lt;br /&gt;SQL Server Management Studio Basic - visual database management tool for creating, editing and managing databases&lt;br /&gt;&lt;br /&gt;இந்த அடிப்படைப் பயன்பாடு நமக்கு ஒத்துவரும். 2005 ஐ நிறுவியிருந்தவர்கள் அதை uninstall செய்தபிறகு இதை நிறுவவும்.&lt;br /&gt;&lt;br /&gt;நேற்றையப் பதிவில் CREATE,INSERT,SELECT ஆகியவை பற்றிப் பார்த்தோம்.&lt;br /&gt;&lt;br /&gt;இன்றைக்கு UPDATE மற்றும் DELETE ஆகியவற்றைப் பற்றிப் பார்ப்போம்.&lt;br /&gt;&lt;br /&gt;ஏற்கனவே பதியப்பட்ட தகவல்களில் மாற்றங்கள் செய்வதற்கு UPDATE உதவும்.&lt;br /&gt;பழைய தகவல்களின் Row / Rows ஐ அழித்துவிடுவதற்கு DELETE உதவும்.&lt;br /&gt;&lt;br /&gt;ஏற்கனவே நாம் உருவாக்கிய MyListஐ ஒரு Copy (படி) எடுத்து வைப்பதற்காக கீழ்க்கண்ட வரியை இயக்கவும்.&lt;br /&gt;&lt;br /&gt;Table ஐ Copy செய்வதற்குரிய Syntax :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;SELECT * INTO newTableName FROM oldTableName&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;உதாரணம்:&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;SELECT * INTO BakupMyList FROM MyList&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இதன் மூலம் MyList எனப்படும் நம்முடைய பழைய Tableன் Copy ஐ, புதிய BackupMyListல் எழுதி வைத்துவிடலாம்.&lt;br /&gt;&lt;br /&gt;இதை இயக்கியதும் எனக்குக் கிடைத்த விடை : (5 row(s) affected)&lt;br /&gt;&lt;br /&gt;இப்போது UPDATE பற்றிப் பார்ப்போம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE ன் Syntax:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE tableName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[fieldName] = 'newValue'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHERE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[fieldName] ='oldValue'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;உதாரணம்:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE MyList&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Name] = 'Arun'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHERE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Name] ='valpaiyan'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;நம்முடைய MyList என்னும் Tableல் 2வது rowல் உள்ள தகவல் 2,valpaiyan,Erode - என இருந்தது. அவருடைய உண்மையான பெயர் Arun. செல்லமாக அவர் வைத்துக்கொண்ட பெயர் valpaiyan. அவருடைய செல்லப்பெயரை, உண்மைப் பெயரைக் கொண்டு மாற்றுவதற்கு - மேற்கொண்ட UPDATE பயன்படும்.&lt;br /&gt;&lt;br /&gt;இப்போது &lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Person#] = 2&lt;/span&gt; எனக் கொடுத்து F5 அழுத்தினால், கிடைக்கும் விடை : &lt;span style="font-weight: bold;"&gt;2 Arun Erode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;நாம் ஒரு rowல் இருக்கும் குறிப்பிட்ட Column ல் ஏற்றப்பட்ட மதிப்பை வேறு ஒரு மதிப்பைக் கொண்டு மாற்றுவதற்கு இப்போது UPDATE ஐப் பயன்படுத்தினோம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;இதில் WHERE எனப்படும் கட்டுப்பாட்டை விதிக்காவிடில் என்ன ஆகும்?&lt;/span&gt;&lt;br /&gt;உதாரணமாக :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE MyList&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Name] = 'Arun'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;என்று மட்டும் கொடுத்திருந்தால் என்ன ஆகியிருக்கும்.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYU8gF5OXaI/AAAAAAAADJQ/Km-RKy-sHxM/s1600-h/withoutwhere.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297707058706931106" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYU8gF5OXaI/AAAAAAAADJQ/Km-RKy-sHxM/s320/withoutwhere.png" style="cursor: pointer; display: block; height: 112px; margin: 0px auto 10px; text-align: center; width: 178px;" /&gt;&lt;/a&gt;&lt;br /&gt;இப்படி ஆகியிருக்கும். அனைவருடைய பெயரையுமே Arun என்று மாற்றியிருக்கும்.&lt;br /&gt;&lt;br /&gt;எத்தனை முறை SELECT கொடுத்தாலும், எந்தத் தகவலுமே மாறாமல் அப்படியே இருக்கும்.&lt;br /&gt;&lt;br /&gt;ஆனால் UPDATE, DELETE கொடுக்கும்போது கவனமாக இருக்கவும். எதாவது தவறிழைத்துவிட்டால் - அனைத்துத் தகவலும் நொடியினில் மாறிவிடும் ஆபத்து உள்ளது.&lt;br /&gt;&lt;br /&gt;அதற்காகவே &lt;span style="font-weight: bold;"&gt;SELECT * INTO&lt;/span&gt; கொடுத்து ஒரு backup எடுத்து வைத்துக்கொண்டேன்.&lt;br /&gt;&lt;br /&gt;இந்த அட்டவணையில் (Table) ஏற்கனவே ஏற்றப்பட்டுள்ள 5 Rowsல் இருக்கும் [Name] Columnன் மதிப்புகள் அனைத்தையுமே பெரிய எழுத்துகளில் (CAPITAL LETTERS) மாற்றுவதற்கு என்ன செய்யவேண்டும்?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;UPDATE MyList&lt;br /&gt;SET&lt;br /&gt;[Name] = UPPER([Name])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இங்கே UPPER( ) என்பது ஒரு Function ஆகும். இதை உள்ளமைந்த built-in function என்போம். இது பெரிய எழுத்துகளாக மாற்றுவதற்குப் பயன்படுகிறது.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYU-NgWt3oI/AAAAAAAADJY/LyaIRzT9sFY/s1600-h/allcaps.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297708938415693442" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYU-NgWt3oI/AAAAAAAADJY/LyaIRzT9sFY/s320/allcaps.png" style="cursor: pointer; display: block; height: 139px; margin: 0px auto 10px; text-align: center; width: 206px;" /&gt;&lt;/a&gt;இந்த UPPER( )  மாற்றப்பட்டவுடன் கிடைத்த விடை மேலே:&lt;br /&gt;&lt;br /&gt;இப்போது அழிக்கும் வேலைக்கு என்ன Statement என்பதைக் காண்போம்&lt;br /&gt;&lt;br /&gt;Syntax கீழே:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DELETE FROM tableName WHERE  Condition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DELETE FROM &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;       MyList &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHERE &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;      [Person#] = 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இதன் அர்த்தம் என்ன. 4வது rowவை அழித்துவிடு.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;DELETE FROM MyList&lt;/span&gt;&lt;span style="font-style: italic;"&gt; என்று WHERE ஐ நீக்கிவிட்டுக் கொடுத்தால் என்ன ஆகும்?&lt;/span&gt;&lt;br /&gt;ஒட்டுமொத்தமாக அனைத்து records (rows) ம் அழிந்து போகும்.&lt;br /&gt;ஆனால் Tableன் Structure அழியாது.&lt;br /&gt;&lt;br /&gt;இந்த &lt;span style="font-weight: bold;"&gt;DELETE FROM MyList&lt;/span&gt; இதற்குச் சமமாக வேறு ஒரு Statement ம் இருக்கிறது.&lt;br /&gt;&lt;br /&gt;அதன் Syntax மற்றும் உதாரணம் கீழே:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;TRUNCATE TABLE  tableName&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TRUNCATE TABLE  MyList&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;குறிப்பு :&lt;/span&gt;&lt;br /&gt;ஒரு Table ஆனது, அதனுடன் தொடர்புடைய இணைக்கப்பட்ட மற்றொரு Table உடன் இணைப்பில் இருந்தால் (&lt;span style="font-style: italic;"&gt;Foreign Key Relationship&lt;/span&gt;) அதை Truncate செய்ய இயலாது. Truncate ன் மூலம் ஒரு Tableல் உள்ள அனைத்து Rows ஐயும் அழித்துவிட இயலும்.&lt;br /&gt;&lt;br /&gt;ஒரு Tableஐ வேறொரு Tableஉடன் இணைப்பதற்கு (join) Foreign key பயன்படுகிறது.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Structure ஐயும் சேர்த்து அழிப்பதற்கு என்ன செய்யவேண்டும்?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Syntax :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DROP TABLE tableName&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;உதாரணம்:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DROP  TABLE MyList&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இப்போது ஏற்கனவே Copy செய்து வைத்திருக்கிறோமே BakupMyList என்கிற Table அதை MyList என பெயர் மாற்றுவோம்.&lt;br /&gt;&lt;br /&gt;இப்படி ஒரு Tableன் பெயரை மாற்றுவதற்கு கீழே உள்ள வரியை இயக்கலாம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SP_RENAME 'BakupMyList', 'MyList'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SP_RENAME என்பது ஏற்கனவே எழுதப்பட்ட ஒரு நிரல். அதனை Stored Procedure என்று அழைப்பார்கள். அதுபற்றிப் பிறகு பார்ப்போம்.&lt;br /&gt;&lt;br /&gt;இதன் Syntax:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SP_RENAME  'oldTableName', 'newTableName'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இப்படி ஒரு Tableன் பெயரை மாற்றும்போது, கிடைக்கும் ஒரு எச்சரிக்கைச் செய்தி:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc0000; font-style: italic;"&gt;Caution: Changing any part of an object name could break scripts and stored procedures.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Tableன் ஒரு குறிப்பிட்ட columnன் பெயரை மாற்ற என்ன செய்ய வேண்டும்?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SP_RENAME 'dbo.MyList.City',  'Place',  'COLUMN'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இதன் Syntax :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SP_RENAME&lt;br /&gt;'dbo.tableName.oldColumnName',&lt;br /&gt;'newColumnName', 'COLUMN'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இங்கே dbo என்பது object owner.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-8043976658106065304?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/8043976658106065304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=8043976658106065304' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/8043976658106065304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/8043976658106065304'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-10.html' title='எளிய தமிழில் SQL - பாகம் 10'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYU8gF5OXaI/AAAAAAAADJQ/Km-RKy-sHxM/s72-c/withoutwhere.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-5277838230988148483</id><published>2009-01-31T01:41:00.000-08:00</published><updated>2011-04-20T04:41:14.126-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 9</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;ஒரு சிறிய Table ஒன்றை உருவாக்கிக்கொள்வோம். அதைக் கொண்டு SELECT ன் தன்மைகளை ஆராயலாம்.&lt;br /&gt;&lt;br /&gt;Table ஒன்றை உருவாக்குவதற்காக, GUI (Graphical User Interface) வழியாக என்ன செய்வதென்று ஏற்கனவே &lt;a href="http://tamilsql.blogspot.com/2009/01/sql-5.html" target="_blank"&gt;பாகம்-5&lt;/a&gt;ல் பார்த்திருக்கிறோம்.&lt;br /&gt;&lt;br /&gt;அதையே CUI  எனப்படும் Character User Interface வாயிலாக T-SQL Editor ல் தட்டித்தட்டியே ஒரு Tableன் Structureஐ எப்படி உருவாக்குவது என்பதை இங்கே காணலாம்.&lt;br /&gt;&lt;br /&gt;T-SQL Editorல் எவ்வாறு நிரல் எழுதுவது? T-SQL Editorக்கு எந்த செயல்வழி மூலம் செல்வது?  ஆகியவற்றைத்தெரிந்து கொள்ள - &lt;a href="http://tamilsql.blogspot.com/2009/01/sql-8.html" target="_blank"&gt;இங்கே&lt;/a&gt; சொடுக்கவும்.&lt;br /&gt;&lt;br /&gt;ஒரு வழியாக T-SQL Editorக்கு வந்துவிட்டோம்.&lt;br /&gt;&lt;br /&gt;Table ஒன்றை புதிதாக உருவாக்க உதவும் ஒரு எளிய pattern கீழே :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;CREATE TABLE tableName&lt;/span&gt;&lt;span style="color: #009900;"&gt; &lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;&lt;br /&gt;(&lt;/span&gt;&lt;span style="color: #009900;"&gt; &lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;&lt;br /&gt;ColumnName1 datatype,&lt;/span&gt;&lt;span style="color: #009900;"&gt; &lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;&lt;br /&gt;ColumnName2 datatype,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;ColumnName3 datatype,&lt;/span&gt;&lt;span style="color: #009900;"&gt; &lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;....&lt;/span&gt;&lt;span style="color: #009900;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;இந்த pattern ஐ Syntax என்பார்கள். கணக்குப் பாடத்தில் ஒரு கணக்கைச் செய்வதற்கு முன் மாதிரி கணக்கைக் கொடுத்து - அதைப்போல மற்றொன்றைச் செய்யச் சொல்வார்கள். அந்த மாதிரி கணக்கு போலத்தான் இந்த Syntax.&lt;br /&gt;&lt;br /&gt;இந்த Syntax ல் tableName என்கிற இடத்தில் ஒரு அட்டவணையின் பெயர் (MyList), ColumnName1 என்கிற இடத்தில் Person#, LastName, FirstName, City போன்றவையும் ஒவ்வொரு DataTypeக்கு நேராக அதன் வகையையும் குறிப்பிட்டுவிட்டால் கீழ்க்கண்டமாதிரி Tableன் வடிவம் இருக்கும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CREATE TABLE MyList&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Person# int,&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;[Name] varchar(50),&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;City  varchar(50)&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Name என்பது SQL ல் உள்ளமைந்த ஒரு தனிப்பட்ட keyword. ஆகவே அதைப் பிரித்துக் காண்பிப்பதற்காக [Name] என ஒரு அடைப்புக்குள் (Square Bracket) குறிப்பிடுகிறோம்.  இந்த Pattern - Syntax ஐ நிரப்பிய பிறகு F5 keyஐ விசைப்பலகையில் அழுத்தி Table ஐ உருவாக்கலாம். ஏதேனும் பிழைச்செய்தி வந்தால் அதைச் சரிசெய்தபிறகு Table உருவாகிவிடும்.&lt;br /&gt;&lt;br /&gt;Table உருவாகிவிட்டதா என்பதை எப்படி அறிவது?&lt;br /&gt;&lt;br /&gt;ஒரு சிறிய SELECT வடிவம் ஒன்று.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;SELECT * FROM tableName  &lt;/span&gt;---&amp;gt; ஒரு Tableல் இருக்கும் அனைத்து rowsஐயும் திரையில் காண்பிப்பதற்காக.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList&lt;/span&gt;     --&amp;gt; MyList என்பது நாம் சற்று முன்னர் உருவாக்கிய Tableன் பெயரே.  இதை இயக்குவதற்கு F5 அழுத்தினால் கிடைக்கும் விடை கீழே :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQkDuFfa6I/AAAAAAAADHA/yuxhPHNHX6k/s1600-h/empty.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297398708023815074" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQkDuFfa6I/AAAAAAAADHA/yuxhPHNHX6k/s320/empty.png" style="cursor: pointer; display: block; height: 67px; margin: 0px auto 10px; text-align: center; width: 169px;" /&gt;&lt;/a&gt;இங்கே * என்பது அனைத்து rows ஐயும் குறிக்கிறது.&lt;br /&gt;&lt;br /&gt;நாம் இப்போது உருவாக்கிய Persons என்கிற Tableல் எந்தவிதமான தகவலும் ஏற்றப்படவில்லை. வெறும் Structure மட்டுமே உருவாக்கப்பட்டுள்ளது.&lt;br /&gt;&lt;br /&gt;இந்த MyList என்று சற்றுமுன்னர் உருவாக்கிய Tableல் ஒவ்வொரு rowவாக புதுப்புது தகவல்களை ஏற்றுவதற்கு என்ன செய்யவேண்டும்?&lt;br /&gt;&lt;br /&gt;புதிய தகவல்களை ஏற்றுவதற்கு உரிய Syntax (Pattern)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;&lt;b&gt;INSERT INTO table_name&lt;br /&gt;(&lt;br /&gt;column1,&lt;br /&gt;column2, ...&lt;br /&gt;)&lt;br /&gt;VALUES&lt;br /&gt;(&lt;br /&gt;'value1',&lt;br /&gt;'value2', ...&lt;br /&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;நாம் நமது MyList அட்டவணைக்குத் தகுந்தாற்போல் மாற்றினால்&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO MyList (&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Person#,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;[Name] ,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;City)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; VALUES (1, 'Jimsha', 'Chennai')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO MyList (&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Person#,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;[Name] ,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;City)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; VALUES (2, 'Valpaiyan', 'Erode')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO MyList (&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Person#,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;[Name] ,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;City)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; VALUES (3, 'Karthik', 'Erode')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO MyList (&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Person#,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;[Name] ,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;City)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; VALUES (4, 'Vizhiyan', 'Chennai')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO MyList (&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Person#,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;[Name] ,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;City)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; VALUES (5, 'PKP', 'USA')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;என 5 rowக்களுக்கான தகவல்களை 5 வரிகளில் எழுதவேண்டும்.&lt;br /&gt;&lt;br /&gt;இப்போது நாம் கொடுத்த தகவல்களை திரையில் காண்பதற்கு :&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList &lt;/span&gt;&lt;br /&gt;எனத்தட்டெழுதி  F5 அழுத்தவும்.&lt;br /&gt;விடை கீழே :&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX8657BWzYI/AAAAAAAADEg/WnN3NnAJr3A/s1600-h/rowentry.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5296016453581327746" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX8657BWzYI/AAAAAAAADEg/WnN3NnAJr3A/s320/rowentry.png" style="cursor: pointer; display: block; height: 138px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;CREATE புதிய Tableன் Structureஐ உருவாக்க&lt;br /&gt;SELECT ஏற்றப்பட்ட தகவல்களைப் பார்வையிட&lt;br /&gt;INSERT புதிய தகவல்களை ஒன்றொன்றாகப் பதிந்திட&lt;br /&gt;&lt;br /&gt;SELECT ல் Wild Card Character என்று குறிப்பிட்டிருந்தேன். அது என்ன Wild Card Character?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;உதாரணமாக &lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList&lt;/span&gt; எனக் கொடுத்தால் ஏற்றப்பட்ட 5 rowsஉம் உடனே கண்முன் வந்து நிற்கும்.&lt;br /&gt;&lt;br /&gt;இதில் குறிப்பிட்ட rowsஐ மட்டும் பார்ப்பதற்கு என்ன செய்வது? வடிகட்டுதல் நுட்பத்திற்காக SELECT உடன் WHERE எனப்படும் கட்டுப்பாட்டை உடன் இணைக்கிறோம்..&lt;br /&gt;&lt;br /&gt;இப்போது SELECT ன் Syntax இவ்வாறு இருக்கும்.&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;SELECT * FROM tableName WHERE Condition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Condition என்கிற இடத்தில் &lt;a href="http://tamilsql.blogspot.com/2009/01/sql-7.html" target="_blank"&gt;Relational மற்றும் Logical Operators&lt;/a&gt; ஐப் பயன்படுத்தி வடிகட்டுதல் வேட்டையைத் தொடரலாம்.&lt;br /&gt;&lt;br /&gt;சில உதாரணங்கள்:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * from MyList WHERE Person# = 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5வது நபரின் தகவல்களை மட்டும் திரையில் காண்பதற்கு&lt;br /&gt;விடை :&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQqLybevOI/AAAAAAAADHI/pdWB9E6DyLA/s1600-h/5th.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297405443698506978" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQqLybevOI/AAAAAAAADHI/pdWB9E6DyLA/s320/5th.png" style="cursor: pointer; display: block; height: 65px; margin: 0px auto 10px; text-align: center; width: 166px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE Person# &amp;gt;=2 AND Person# &amp;lt;= 4.&lt;/span&gt;&lt;br /&gt;2 முதல் 4 வரை எண்களைக் கொண்ட நபர்களின் தகவல்களைக் காண  &lt;a href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYQqqhL14iI/AAAAAAAADHQ/H9NqsZcV51k/s1600-h/2to4.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297405971645456930" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYQqqhL14iI/AAAAAAAADHQ/H9NqsZcV51k/s320/2to4.png" style="cursor: pointer; display: block; height: 99px; margin: 0px auto 10px; text-align: center; width: 202px;" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE City = 'Erode'&lt;/span&gt;&lt;br /&gt;ஈரோடு நகரில் வசிக்கும் நபர்களை மட்டும் பார்க்க&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQrY5uSIyI/AAAAAAAADHY/EVFbo5lnStQ/s1600-h/erode.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297406768506348322" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQrY5uSIyI/AAAAAAAADHY/EVFbo5lnStQ/s320/erode.png" style="cursor: pointer; display: block; height: 81px; margin: 0px auto 10px; text-align: center; width: 193px;" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;SELECT * from MyList WHERE City &amp;lt;&amp;gt; 'Erode'&lt;/span&gt;&lt;br /&gt;ஈரோடு நகரை விடுத்து பிற நகரங்களில் வசிப்போர் யார் யார்?&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYQr34DPRHI/AAAAAAAADHg/ZCTWRNpZGcQ/s1600-h/excepterode.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297407300633314418" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYQr34DPRHI/AAAAAAAADHg/ZCTWRNpZGcQ/s320/excepterode.png" style="cursor: pointer; display: block; height: 76px; margin: 0px auto 10px; text-align: center; width: 194px;" /&gt;&lt;/a&gt;இது வரை நாம் Wild Card ஐப் பயன்படுத்தவில்லை. இப்போது பயன்படுத்திப் பார்ப்போம். Wild Card என்றால் நிரப்பிகள் எனப்படும்.&lt;br /&gt;Wild Card பயன்படுத்தும் Syntax வடிவம்&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #009900; font-weight: bold;"&gt;SELECT * FROM&lt;br /&gt;tableName&lt;br /&gt;WHERE&lt;br /&gt;filedName&lt;br /&gt;LIKE&lt;br /&gt;'wild pattern'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LIKE 'C%'&lt;/span&gt;&lt;br /&gt;எனக்கொடுத்தால் C என்கிற எழுத்தில் ஆரம்பிக்கக் கூடிய எல்லாமே&lt;br /&gt;நகரத்தின் ஆரம்ப எழுத்து C.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE City LIKE 'C%'&lt;/span&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYQt095ocSI/AAAAAAAADHo/WgsVUA1Q2Hk/s1600-h/chennaionly.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297409449687281954" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SYQt095ocSI/AAAAAAAADHo/WgsVUA1Q2Hk/s320/chennaionly.png" style="cursor: pointer; display: block; height: 79px; margin: 0px auto 10px; text-align: center; width: 192px;" /&gt;&lt;/a&gt;LIKE '%i%'&lt;br /&gt;எனக் கொடுத்தால் இரண்டாவது எழுத்து i&lt;br /&gt;% என்பது எல்லாமே , _ என்பது ஒரு எழுத்தை மட்டும் குறிக்கிறது.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM MyList WHERE [Name] LIKE '%i%'&lt;/span&gt;&lt;br /&gt;பெயரின் ஏதோ ஒரு எழுத்து i ஆக இருப்பவர்கள் யார் யார்?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQus38S7II/AAAAAAAADHw/qCk-ffEOC7w/s1600-h/namewithI.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5297410410160516226" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQus38S7II/AAAAAAAADHw/qCk-ffEOC7w/s320/namewithI.png" style="cursor: pointer; display: block; height: 94px; margin: 0px auto 10px; text-align: center; width: 197px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-5277838230988148483?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/5277838230988148483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=5277838230988148483' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/5277838230988148483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/5277838230988148483'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-9.html' title='எளிய தமிழில் SQL - பாகம் 9'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYQkDuFfa6I/AAAAAAAADHA/yuxhPHNHX6k/s72-c/empty.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-7802511891837598989</id><published>2009-01-30T08:19:00.000-08:00</published><updated>2009-01-31T01:36:03.243-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 8</title><content type='html'>&lt;a href="http://articles.techrepublic.com.com/5100-10878_11-6102265.html" target="_blank"&gt;&lt;span style="font-weight: bold;"&gt;How to install Sql Server 2005 Expression Edition?&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ஏழாவது பாகத்தில் Relational operators, மற்றும் Logical Operators ஆகியவற்றைப் பார்த்தோம்.&lt;br /&gt;&lt;br /&gt;Relational Operatorsல் &lt;, &gt;, &gt;=, &lt;=, =, != , &lt;&gt; போன்றவை வரும்.&lt;br /&gt;Logical Operatorsல் AND, OR, NOT போன்றவை வரும்.&lt;br /&gt;&lt;br /&gt;ஒரு குறிப்பிட்ட மதிப்பானது அதிகமா, குறைவா, சமமா, சமமில்லையா என சோதித்தறிய Relational Operators பயன்படுத்தலாம்.&lt;br /&gt;&lt;br /&gt;ஒன்றுக்கு மேற்பட்ட கட்டுப்பாடுகளைத் தொடர்புபடுத்தி விடைகாண்பதற்கு Logical Operators பயன்படுத்தலாம்.&lt;br /&gt;&lt;br /&gt;கணிதச் சமன்பாடுகளை, கூட்டல்,கழித்தல்,வகுத்தல்,பெருக்கல் போன்ற கணக்குகளைச் செய்வதற்காக Arithmetic Operators உள்ளன.&lt;br /&gt;&lt;br /&gt;அவை :&lt;br /&gt;+  கூட்டல் (Addition)&lt;br /&gt;-  கழித்தல் (Subtraction)&lt;br /&gt;*  பெருக்கல் (Multiplication)&lt;br /&gt;/  வகுத்தல் (Division)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;உதாரணம்:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DECLARE @a int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DECLARE @b int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DECLARE @c int&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET @a = 100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET @b = 150&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET @c = @a + @b&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PRINT @c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;மேலே ஒரு எளிய T-SQL நிரல் (Program) ஒன்றைக் கொடுத்துள்ளேன்.&lt;br /&gt;@a, @b, @c ஆகியவை Variable எனப்படும். அதாவது மாறிகள். ஒவ்வொரு மாறிகளுக்கும் தனித்தனி மதிப்புகளைக் கொடுக்கிறோம். அதற்கு SET என்னும் keyword பயன்படும்.&lt;br /&gt;SET @c = @a + @b என்பதில் a, மற்றும் b ஆகிய இரண்டின் மதிப்பையும் + என்கிற கூட்டல் (Addition - Arithmetic Operator) அடையாளத்தைப் பயன்படுத்திக் கூட்டிக் கிடைக்கின்ற விடையை @c மூன்றாவது மாறியில் போட்டுவிடு - என அர்த்தம்.&lt;br /&gt;&lt;br /&gt;PRINT @c எனக் கொடுத்ததும் cன் மதிப்பு 250 எனத் திரையில் காட்டும்.&lt;br /&gt;&lt;br /&gt;மேற்கூரிய எளிய நிரலில் + எனப்படும் ஒரு Arithmetic Operator பயன்படுத்தியுள்ளோம்.&lt;br /&gt;இது போல எளிய நிரல்களை எழுதிப் பாருங்கள்.&lt;br /&gt;&lt;br /&gt;இந்த நிரல்களை எழுதி விடை காண SQL Server Expression Edition 2005ல் நாம் என்ன செய்ய வேண்டும். அதன் வழிமுறைகளைக் காண்போம்.&lt;br /&gt;&lt;br /&gt;உங்கள் Authentication எதுவாக இருக்கிறதோ அதைத் தேர்வு செய்தபிறகு, Connect ஐ அழுத்தவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87SY965aI/AAAAAAAADF4/5_vUkccDZ4I/s1600-h/connect.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 237px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87SY965aI/AAAAAAAADF4/5_vUkccDZ4I/s320/connect.png" alt="" id="BLOGGER_PHOTO_ID_5296016873936840098" border="0" /&gt;&lt;/a&gt;திரையில் Object Explorer என்னும் ஒரு Window தெரியும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87STzyLEI/AAAAAAAADFw/P5oub-DBn5w/s1600-h/objectexplorer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 184px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87STzyLEI/AAAAAAAADFw/P5oub-DBn5w/s320/objectexplorer.png" alt="" id="BLOGGER_PHOTO_ID_5296016872552148034" border="0" /&gt;&lt;/a&gt;அதில் பாகம்-5ல் நாம் ஏற்கனவே உருவாக்கிய Test எனப்படும் Database ஐத் தேர்வுசெய்யவும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX87JyOD6wI/AAAAAAAADFY/cWb5OIDq5Es/s1600-h/databaseexpand.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 319px; height: 293px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX87JyOD6wI/AAAAAAAADFY/cWb5OIDq5Es/s320/databaseexpand.png" alt="" id="BLOGGER_PHOTO_ID_5296016726096603906" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-Ogk1vSI/AAAAAAAADGQ/B0YTq4CkMFo/s1600-h/testsel.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 250px; height: 157px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-Ogk1vSI/AAAAAAAADGQ/B0YTq4CkMFo/s320/testsel.png" alt="" id="BLOGGER_PHOTO_ID_5297146005701377314" border="0" /&gt;&lt;/a&gt;  &lt;span style="font-weight: bold;"&gt;File ==&gt; New ==&gt; Query with New Connection &lt;/span&gt;இதைக் கிளிக்கவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-Orv7TtI/AAAAAAAADGY/4ccdnaOll3E/s1600-h/ctrln.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 104px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-Orv7TtI/AAAAAAAADGY/4ccdnaOll3E/s320/ctrln.png" alt="" id="BLOGGER_PHOTO_ID_5297146008700669650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;உடனே ஒரு வெள்ளைத் திரை கண் முன்னர் நிற்கும். இதுதான் T-SQLக்கான Editor. இதில் நாம் நிரல்களை எழுதிப் பழகலாம்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-Oi3cnDI/AAAAAAAADGg/-VPRFI75i7o/s1600-h/proeditor.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 112px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-Oi3cnDI/AAAAAAAADGg/-VPRFI75i7o/s320/proeditor.png" alt="" id="BLOGGER_PHOTO_ID_5297146006316293170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;நிரல் எனப்படும் Programஐ எழுதிய பிறகு அதை இயக்கிப் பார்க்க F5  விசையை அழுத்தவும்.&lt;br /&gt;&lt;br /&gt;இந்த Programன் விடை கீழே உள்ள சட்டத்தில் 250 எனக் காட்சியளிக்கும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-X4wcQCI/AAAAAAAADGo/qVPBy5MAhNY/s1600-h/answer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 257px; height: 119px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SYM-X4wcQCI/AAAAAAAADGo/qVPBy5MAhNY/s320/answer.png" alt="" id="BLOGGER_PHOTO_ID_5297146166811312162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;இந்த programல் சில இடங்களில் நான் வேண்டுமென்றே தவறு செய்கிறேன். பிழைச்செய்தி எப்படி வருகிறது என்பதைக் காண்பதற்காகத்தான்.&lt;br /&gt;DECLARE @a int&lt;br /&gt;DECLARE @b int&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;DECLAR @c int&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  ---&gt; தவறு (1) ஒரு E எழுத்தை விட்டுவிடுகிறேன்.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SET @a = 100&lt;br /&gt;SET @b = 150&lt;br /&gt;SET @c = @a + @b&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;PRINTT @c&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  ----&gt; தவறு (2) ஒரு T எழுத்தை அதிகமாகக் கொடுக்கிறேன்.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இப்போது F5  key ஐ அழுத்தி விடையை எதிர்பார்த்தால் என்ன கிடைக்கிறது?&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Msg 102, Level 15, State 1, Line 3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Incorrect syntax near 'DECLAR'.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Msg 137, Level 15, State 1, Line 6&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Must declare the scalar variable "@b".&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Msg 137, Level 15, State 2, Line 7&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Must declare the scalar variable "@b".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;எந்தெந்த வரிகளில் பிழைகள் என்பதைக் கீழே உள்ள சட்டத்தில் காட்டிவிடும். பிழைகளைச் சரிசெய்தபிறகுதான் விடை கிடைக்கும்.&lt;br /&gt;&lt;br /&gt;இன்றையத் தேதி என்னவென்பதை T-SQL வாயிலாக எப்படிக் கண்டுபிடிப்பது?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DECLARE @today datetime&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SET @today = getdate()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PRINT @today&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;இங்கே @today என்பது ஒரு மாறி (Variable). அதனுடைய Data Type ஆனது datetime வகையைச் சேர்ந்தது.  &lt;br /&gt;&lt;br /&gt;getdate( )  என்பதை Function என்போம். இந்த Function ஆனது இன்றைய தேதிநேரத்தைக் கண்டறிய உதவும். அதை @today ல் பதிந்துவிடும்.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PRINT @today எனக் கொடுத்ததும் கிடைத்த விடை :&lt;br /&gt;Jan 30 2009 11:32PM&lt;br /&gt;&lt;br /&gt;இதை மிகச் சுருக்கமாக : &lt;span style="font-weight: bold;"&gt;PRINT getdate( )  &lt;/span&gt;என்றும் கொடுக்கலாம்.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;குறிப்பு : எழுதிய program ஐ இயக்கி / ஓட்டி / run / execute செய்து பார்ப்பதற்கு F5 விசையை keyboardல் அழுத்த வேண்டும்.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-7802511891837598989?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/7802511891837598989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=7802511891837598989' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/7802511891837598989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/7802511891837598989'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-8.html' title='எளிய தமிழில் SQL - பாகம் 8'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87SY965aI/AAAAAAAADF4/5_vUkccDZ4I/s72-c/connect.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-3521020957176763440</id><published>2009-01-29T09:06:00.000-08:00</published><updated>2009-02-03T10:16:20.054-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 7</title><content type='html'>ஏற்கனவே பதிந்துள்ள தகவல்களைத் தேடி எடுக்கும்போது மேலே குறிப்பிட்டுள்ள அடையாளங்களைப் பயன்படுத்தி வடிகட்டலாம். மில்லியன் கணக்கில் பதிந்திருக்கும் recordsல் இருந்து குறிப்பிட்ட சில rows (records) ஐ மட்டும் நமது தேவைக்காகத் தேடி எடுக்கும் செயலுக்குத் துணைபுரிபவை Queries ஆகும். DQL என்றால் Data Query Language.&lt;br /&gt;&lt;br /&gt;இதற்கு SELECT எனப்படும் கட்டளையைப் பயன்படுத்துகிறோம். SELECT என்றால் தேர்வு செய் என அர்த்தம். ஆயிரக்கணக்கான, லட்சக்கணக்கான தகவல்களில் இருந்து நமது தேவைக்கேற்ற தகவலை மட்டும் தேடியெடுத்துத் தருவதற்கு SELECT ஐப் பயன்படுத்தலாம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ஒரு மிக மிக எளிய உதாரணம் ஒன்று.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;முன்பெல்லாம் 10ம் வகுப்பு, 12ம் வகுப்பு தேர்வு முடிவுகள் அறிவிக்கப்பட்ட நாளின்போது மாலைப்பதிப்பு நாளிதழ்களான மாலைமுரசு, மாலைமலர் போன்றவற்றில் தேர்வில் தேரியோரின் எண்கள் வெளிவரும். பின்பு காலைப்பதிப்பிலும் வேறு வேறு நாளிதழ்களில் வெளிவரும். இன்றும் கூட இது நடைமுறையில் இருக்கும் ஒன்றுதான்.&lt;br /&gt;&lt;br /&gt;6,75,643 மாணவர்கள் தேர்வெழுதினார்கள் எனில் அதில் 80% தேர்வாகி இருந்தால் 540514 பேர்களின் எண்கள் கல்விமாவட்ட வாரியாக நாளிதழில் வெளியாகி இருக்கும். இதில் ஒவ்வொருவரின் எண்ணும் வந்திருக்கிறதா? இல்லையா? என பட்டிமன்றமே நடக்கும்.&lt;br /&gt;&lt;br /&gt;ஆனால் தற்போது தேர்வு அறிக்கைகளும், தேர்வு முடிவுகளும் இணையத்தில் வெளியிடுகிறார்கள். நாம் நமது பதிவெண்ணை மட்டும் கொடுத்தால் உடனே முடிவுகள் மட்டுமல்லாமல் ஒவ்வொரு பாடத்திலும் எவ்வளவு மதிப்பெண்கள் எடுத்துள்ளோம் என்பது முதற்கொண்டு நொடிகளில் திரையில் காட்சியளிக்கிறது.இது எவ்வாறு சாத்தியம்?&lt;br /&gt;&lt;br /&gt;6,75,643 பேர்களின் தகவல்கள் அனைத்தையும் ஒவ்வொரு record (row) ஆக கணினியில் உள்ள Databaseல் ஏற்றிவிடுவார்கள். இதற்கு ஒரு குழு இயங்கும். அவர்கள் ஒவ்வொருவரின் பதிவெண், பள்ளியின் பெயர், பாடங்கள், ஒவ்வொரு பாடத்திலும் எத்தனை மதிப்பெண்கள் பெறப்பட்டன போன்றவற்றை Databaseல் ஏற்றிவிடுவார்கள். இந்த குழு மின்னல் வேகத்தில் தகவல்களை ஏற்றிவிடும் வல்லமை கொண்டது.&lt;br /&gt;&lt;br /&gt;எல்லோருடைய தகவல்களும் ஒட்டுமொத்தமாக Databaseல் ஏற்றப்பட்டவுடன் முடிவு அறிக்கைத் தேதியை வெளியிடுவார்கள்.&lt;br /&gt;&lt;br /&gt;தேர்வு முடிவு நாள் அன்று நாம் என்ன செய்கிறோம். நமது பதிவெண்ணையோ / நண்பர்கள் / உறவினர்களின் பதிவெண்ணையோ மட்டும் கணினியில் உள்ளிடுகிறோம்.&lt;br /&gt;&lt;br /&gt;எனது நண்பரின் பதிவெண் 059169 எனக் கொண்டால், இந்தக் குறிப்பிட்ட 059169 என்கின்ற எண்ணை  6,75,643 பேர்களின் தகவல்கள் அடங்கிய Databaseல் இருந்து நொடிகளில் தேடியெடுத்துவிடும் வல்லமை SELECT கட்டளைக்கு உண்டு.&lt;br /&gt;&lt;br /&gt;எனது பதிவெண்ணுக்காக ஏற்கனவே என்ன தகவல்கள் ஏற்றப்பட்டிருக்கிறதோ அனைத்தையும் திரையில் காணலாம். இந்தத் தேடியெடுத்துத் தருவதுதான் QUERY எனப்படுகிறது.&lt;br /&gt;&lt;br /&gt;இதற்காக SELECT கட்டளையுடன் உறுதுணையாக உதவுவதற்குப் பயன்படுபவையே Operators ஆகும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operatorsகளையும் அவற்றிற்கான பயன் மற்றும் குறுவிளக்கம் : கீழே&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;059169 எண்ணுக்கு உரிய தகவல்களை எனக்காகக் காண்பி =   Equal&lt;br /&gt;&lt;br /&gt;தேரியோர்களை மட்டும் காண்பி = Equal&lt;br /&gt;&lt;br /&gt;தேராதவர்களைக் காண்பிக்காதே &lt;&gt;   Not equal&lt;br /&gt;&lt;br /&gt;80%க்கு மேல் மதிப்பெண்கள் வாங்கியோர் யார் யார்?  &gt;  Greater than&lt;br /&gt;&lt;br /&gt;50%க்குக் கீழே வாங்கியோர் யார் யார்? &lt;= Less than or equal&lt;br /&gt;&lt;br /&gt;34 மதிப்பெண்கள் அல்லது அதைவிடக் கீழே எடுத்தவர்கள் யார் யார்?&lt;=  Less than or equal  கணக்குப் பாடத்தில் 80லிருந்து 100க்குள் எத்தனை பேர் மதிப்பெண்கள் எடுத்தனர் BETWEEN  Between an inclusive range    ஒரு குறிப்பிட்ட எழுத்தில் ஆரம்பிக்கும் பெயர்களையுடையவர்கள் யார் யார்? LIKE   Search for a pattern   குறிப்பிட்ட SET { } க்குள் அகப்படும் தகவல்களை மட்டும் எடுத்துக்கொண்டு வா IN   If you know the exact value you want to return for at least one of the columns    இது போக AND, OR, NOT எனப்படும் மூன்று முக்கிய Operators உள்ளன. இவற்றின் பயன் என்னவென்றால் தேடியெடுக்கும் முடிவுகளைக் கட்டுப்படுத்துவதே. இத்தனை லட்சம் தகவல்களில் நமக்குத் தேவைப்படும் தகவல்களை மட்டும் வடிகட்டி எடுப்பதற்கு இந்த Operators தான் காரணம்.   AND -- தேடும்போது எத்தனை கட்டுப்பாடுகள் விதிக்கிறோமோ, அத்தனை கட்டுப்பாடுகளுக்கும் சம்மதிக்கக் கூடிய தகவல்களை மாத்திரம் எடுத்து வருவதற்கு.  உதாரணம்:  5 பாடங்களில் அனைத்துப் பாடங்களிலும் தேரியிருந்தால் மட்டுமே மாணவர் அடுத்த வகுப்புக்குச் செல்லும் தகுதியடைகிறார். அதாவது அனைத்துக் கட்டுப்பாடுகளுக்கும் சம்மதித்திருக்கிறார். கட்டுப்பாடுகள் என்பதை Condition என்பதற்காகக் கொடுத்திருக்கிறேன்.  5 Conditions இருக்கின்றன. அனைத்து Condition களும் ஏற்றுக்கொள்ளப்பட்டிருக்க வேண்டும். அதுவே AND Operatorன் வெற்றியை உறுதிப்படுத்தும்.  OR -- தேடும்போது இந்தக் கட்டுப்பாடோ அல்லது வேறொன்றோ எதாவது ஒன்றுக்குச் சம்மதிக்கக் கூடிய தகவல்களைக் கொணர்வதற்கு.  5 பாடங்களில் ஏதேனும் ஒன்றில் தேர்ச்சியடையாவிட்டாலும் ஒட்டுமொத்தமாக மாணவரானவர் தேர்வில் தவறிவிட்டார். இதற்கு OR. இந்தப் பாடம் அல்லது அந்தப் பாடம், அல்லது வேறொன்று எதாவது ஒன்றில் தேர்வடையாவிட்டாலும் ஒட்டுமொத்தமாக FAIL எனக் குறிப்பிட OR பயன்படுத்தலாம். 5 Conditionsல் ஏதேனும் ஒரு Condition மட்டும் Satisfy ஆனாலே ORன் வெற்றி தீர்மாணிக்கப்பட்டு விடுகிறது.   NOT - எந்தக் கட்டுப்பாடு விதிக்கிறோமோ அதற்கு முரண்பாடான தகவல்களைப் பெறுவதற்கு.  உதாரணமாக தேர்வில் தேறாதவர்களை மட்டும் காண்பி. இதற்கு NOT உதவும்.   AND, OR, NOT இவற்றை தர்க்க ரீதியிலான செயல்பாடுகள் என்போம். அதாவது Logical Operators.  நீ தவறைச் செய்தால் தண்டிக்கப்படுவாய் - நேர்மறை. நீ தவறைச் செய்யாவிட்டால் தண்டிக்கப்படமாட்டாய் -- இந்த மாதிரி இடங்களில் NOT பயன்படுத்தலாம்.  &lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;=      Equal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;&gt;      Not equal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;      Greater than&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&gt;=      Greater than or equal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;=      Less than or equal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BETWEEN  Between an inclusive range&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LIKE      Search for a pattern&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IN      If you know the exact value you want to return for at least one of the columns&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-3521020957176763440?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/3521020957176763440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=3521020957176763440' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/3521020957176763440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/3521020957176763440'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-7.html' title='எளிய தமிழில் SQL - பாகம் 7'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-1893584965447027236</id><published>2009-01-28T07:38:00.000-08:00</published><updated>2009-01-28T08:32:18.562-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 6</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;DQL:    SELECT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DML:   DELETE, INSERT, UPDATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DDL:    CREATE, DROP, TRUNCATE, ALTER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TCL:    COMMIT, ROLLBACK, SAVEPOINT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DCL:    GRANT, REVOKE&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;மேலே சில கட்டளைகளை (Commands)கொடுத்துள்ளேன். இந்தக் கட்டளைகள் மூலம் Databaseஐ நாம் நமது கட்டுப்பாட்டுக்குள் கொண்டு வரலாம்.&lt;br /&gt;&lt;br /&gt;DQL என்பது &lt;span style="font-weight: bold;"&gt;Data Query Language&lt;/span&gt;. ஒரு Databaseன் Tableல் ஏற்கனவே நாம் பதிந்துவைத்துள்ள தகவல்களை தேடி எடுப்பதற்கு. உதாரணமாக 1000 rows இருப்பதாகக் கொள்வோம். அதில் குறிப்பிட்ட சில rows மட்டும் நமக்குத் தேவையெனில் அவற்றை மட்டும் தேடி எடுக்க DQL . இதற்காக SELECT என்கிற கட்டளை பயன்படும்.&lt;br /&gt;&lt;br /&gt;DML என்பது &lt;span style="font-weight: bold;"&gt;Data Manipulation Language&lt;/span&gt;. ஏற்கனவே பதிந்துவைத்திருக்கும் தகவல்களில் மாற்றங்களை ஏற்படுத்த, அழிக்க, உருவாக்க. (தகவல்களைத் தான் மாற்றுகிறதே ஒழிய ஒரு Tableன் Structureல் எந்த மாற்றமும் நிகழாது).&lt;br /&gt;&lt;br /&gt;DDL என்பது &lt;span style="font-weight: bold;"&gt;Data Definition Language&lt;/span&gt;. புதிய Database (அ) Table போன்றவற்றை உருவாக்க. அதாவது Tableன் Structure ஐ உருவாக்க, ஒட்டுமொத்த Table ஐயுமே அழிக்க, மாற்றங்கள் செய்ய. ஒரு குறிப்பிட்ட Column ன் Data Type ஐ மாற்ற.புதிய Column ஐ உருவாக்க, தேவையற்ற Column இருப்பின் அதை நீக்க.&lt;br /&gt;&lt;br /&gt;TCL என்றால் &lt;span style="font-weight: bold;"&gt;Transaction Control Language&lt;/span&gt;. ஒரு நிரலை இயக்கும்போது ஏதேனும் பிழைகள் ஏற்பட்டால், பிழை ஏற்படுவதற்கு முன்னர் வரை ஏதேனும் மாற்றங்கள் நிகழ்ந்திருந்தால் அவையனைத்தையும் நிராகரித்து முந்தைய நிலைக்குக் கொண்டு செல்வதற்கு.&lt;br /&gt;&lt;br /&gt;TCL பற்றி சிறிது விளக்கமாகப் பார்ப்போம்.&lt;br /&gt;&lt;br /&gt;உதாரணமாக ஒன்றுக்கு மேற்பட்ட Database அல்லது Tableகளில் நாம் ஒரு குறிப்பிட்ட Program ஐ இயக்குவதாகக் கொள்வோம். ஒரு Tableல் உள்ள ஒரு மதிப்பைக் கழித்து (முதலாவது செயல்), அடுத்த Tableல் உள்ள ஒரு குறிப்பிட்ட மதிப்புடன் கூட்டச் செய்ய(இரண்டாவது செயல்) முயற்சிக்கிறோம்.&lt;br /&gt;&lt;br /&gt;முதல் செயல் நல்லபடியாக நிறைவுற்றுவிடுகிறது. ஆனால் இரண்டாவது செயல் நிறைவேறுவதற்கு முன்னர் ஏதேனும் தொழில்நுட்பக் கோளாறு நிகழ்ந்தால் என்ன ஆகும்?&lt;br /&gt;&lt;br /&gt;முதலாவது Tableல் அந்த மதிப்பு கழிக்கப்பட்டு இருக்கும். ஆனால் கோளாறு காரணமாக இரண்டாவது Tableல் அந்த மதிப்பு கூட்டப்பட்டு இருக்காது.&lt;br /&gt;&lt;br /&gt;அப்படியெனில் இதை ஒரு சரியான நிகழ்வாக ஏற்றுக்கொள்ளக் கூடாது. முதலில் கழிக்கப்பட்ட மதிப்பை reverse செய்து , தலைகீழாக மீண்டும் பழைய நிலைக்குக் கொண்டுவந்துவிட வேண்டும். அப்போதுதான் முறையான நிகழ்வு.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;நல்ல உதாரணம் ஒன்று:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;உங்களது வங்கியின் ATM அட்டையை, ATM இயந்திரத்தில் செருகி பணம் எடுக்க முயற்சிக்கிறீர்கள். எத்தனை ரூபாய் பணம் என்பதையும் தட்டிவிட்டீர்கள். இயந்திரமானது பணத்தை எண்ணிக்கொண்டிருக்கும் சத்தம் கேட்கிறது. திடீரென்று கோளாறு. Battery down - Power Cut. ஏதோ ஒரு கோளாறு. என்ன ஆகும்?&lt;br /&gt;&lt;br /&gt;பணம் உங்கள் கைக்கு வராது.&lt;br /&gt;&lt;br /&gt;உங்கள் வங்கிக்கணக்கிலிருந்து பணம் எடுக்கப்பட்டுக் கழிக்கப்பட்டு இருக்கும். ஆனால் உங்கள் கைக்குப் பணம் வந்திருக்காது. இப்படியே விட்டுவிட்டால் முறையாகுமா?&lt;br /&gt;&lt;br /&gt;இந்த மாதிரி இக்கட்டான சமயத்தில் உதவுவதுதான் &lt;span style="font-weight: bold;"&gt;Transaction Control.&lt;/span&gt; TCL ன் பணி என்னவென்றால் ஏதேனும் பிழை ஏற்பட்டிருக்கும்போது அதைத் தலைகீழாக ஆக்கி, reverse செய்து (Undo) ஒட்டுமொத்த செயல்களையும் பழைய நிலைக்கு ஆக்குவதே.&lt;br /&gt;&lt;br /&gt;TCL இருப்பதால் உங்கள் வங்கிக்கணக்கிலிருந்து கழிக்கப்பட்ட பணமானது, இயந்திரக்கோளாறு ஏற்பட்ட உடனேயே,  தலைகீழ் இயக்கத்தால் திரும்ப உங்கள் accountல் சேர்க்கப்பட்டுவிடும்.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;(இது எனக்கு இரண்டுமுறை நடந்து இருக்கிறது. கடந்த 3 ஆண்டுகளில் இரண்டுமுறை இந்த TCL இயக்கத்தால் பணம் பரிபோகாமல் தப்பித்தது.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1) எந்தப் பிழையும் நிகழாமல் இருக்கும்போது ஒட்டுமொத்த நிரலும் நல்லபிள்ளையாக இயங்கி பரிவர்த்தனையை ஒழுங்காக நிறைவு செய்யும்.&lt;br /&gt;&lt;br /&gt;2) ஏதேனும் பிழை ஏற்பட்டால் உடனே நிரலானது தனது இயக்கத்தை நிறுத்திவிட்டு, அதுவரை செய்யப்பட்ட இயக்கத்தை reverse செய்து தகவல் இழப்பைத் தடுத்துவிடுகிறது.&lt;br /&gt;&lt;br /&gt;முந்தைய பாடத்தில் Authorization பற்றிப் பார்த்தோம். ஒரு குறிப்பிட்ட பயனாளருக்கு ஒரு Databaseஐப் பார்வையிட மட்டும் அனுமதிக்க DCL உதவும்.&lt;br /&gt;&lt;br /&gt;DCL என்றால் &lt;span style="font-weight: bold;"&gt;Data Control Language.&lt;/span&gt; ஒரு குறிப்பிட்ட பயனர் உருவாக்கிய Database,Table களின் உரிமங்களை அடுத்த பயனாளருக்கு விட்டுத்தருவதற்கு. அல்லது அடுத்தவருக்கு விட்டுத்தந்த சலுகைகளை நிராகரிப்பதற்கு.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GRANT &lt;/span&gt;என்றால் சலுகைகளை வழங்குவது. உரிமங்களை வழங்குவதற்கு.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;REVOKE &lt;/span&gt;என்றால் கொடுத்த சலுகைகளை / உரிமைகளைத் திரும்பப் பெருவதற்கு.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DROP &lt;/span&gt;என்பது ஒட்டுமொத்த Database (அ) Table ஐ அழிப்பதற்கு (தகவலும், Structureம் அழிந்துவிடும்).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TRUNCATE &lt;/span&gt;என்பது தகவல்களை மட்டும் அழிப்பதற்கு (Structure அழியாது).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT  &lt;/span&gt;பதியப்பட்ட தகவல்களைத் தேடித் தருவதற்கு&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT &lt;/span&gt;புதிய rowவை உருவாக்க&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE  &lt;/span&gt;பழைய rowன் தகவலை மாற்றுவதற்கு&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DELETE  &lt;/span&gt;பதிந்திருக்கும் row / rows ஐ அழிப்பதற்கு&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CREATE&lt;/span&gt;  புதிய Database / Table ஐ உருவாக்க&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-1893584965447027236?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/1893584965447027236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=1893584965447027236' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1893584965447027236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1893584965447027236'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-6.html' title='எளிய தமிழில் SQL - பாகம் 6'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-1922544090144642565</id><published>2009-01-27T07:46:00.000-08:00</published><updated>2009-01-27T09:03:31.339-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 5</title><content type='html'>SQL Server 2005 Express Edition ஆனது Microsoft நிறுவனத்தால் வழங்கப்படும் ஒரு இலவச மென்பொருள். இதை நீங்கள் Microsoft தளத்திலிருந்து &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&amp;amp;DisplayLang=en" target="_blank"&gt;இந்த Link&lt;/a&gt; வாயிலாக இறக்கிக்கொண்டு நிறுவிக்கொள்ளவும். எல்லா Database களுமே அவற்றின் கட்டமைப்பில் கிட்டத்தட்ட சமானமாகவே இருக்கின்றன.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Database ல் நாம் என்ன செய்யப்போகிறோம்?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CRUD என்கிற Create, Read, Update, Delete இந்தச் செயல்களைத்தான் செய்யப்போகிறோம்.&lt;br /&gt;&lt;br /&gt;MySQL ஐ Sun Micro System வாங்கிவிட்டாலும் அதன் MySQL Community Server ஐ இலவசமாகவே வழங்குகிறது. அதைத் தரவிறக்கம் செய்வதற்கு &lt;a href="http://dev.mysql.com/downloads/mysql/5.1.html#downloads" target="_blank"&gt;இங்கே&lt;/a&gt; சொடுக்கவும்.&lt;br /&gt;&lt;br /&gt;ஆனால் MySQL Enterprise Edition ஆனது இலவசமன்று.  நான் அலுவலகத்திலும், வீட்டிலும் SQL Server 2005ன் Express Edition தான் பயன்படுத்துகிறேன்.&lt;br /&gt;&lt;br /&gt;இந்த மென்பொருளை நிறுவும்போது Administratorக்கான User name, password முதலியவற்றைக் கேட்கும். அவற்றைக் கொடுக்கவும். மேலும் அவற்றை நினைவில் கொள்ளவும்.&lt;br /&gt;&lt;br /&gt;முறைப்படி நிறுவிய பிறகு Sql Server Express ஐ இயக்கவும். இதற்கு ஒரு குறுக்குவழியாக &lt;span style="font-weight: bold;"&gt;Start ==&gt; Run ==&gt; SQLWB &lt;/span&gt;எனக் கொடுத்தால் உடனே பயன்பாட்டின் முதல் திரை கண்முன்னே நிற்கும்.&lt;br /&gt;&lt;br /&gt;பாதுகாப்பு காரணங்களுக்காக உங்களிடம் பயனர் கணக்கையும், கடவுச்சொல்லையும் (User name &amp;amp; password) எதிர்பார்க்கும். Install செய்யும்போது என்ன கொடுத்தீர்களோ அதைக் கொடுத்து உள்ளே செல்லலாம்.&lt;br /&gt;&lt;br /&gt;நிறுவும்போதே எந்தவிதமான நுழைவாயில் என்பதைக் கூறிவிடுங்கள். அதாவது Authentication ஆனது Windows Authentication அல்லது SQL Server Authentication இரண்டில் எதோ ஒன்றா? அல்லது இரண்டுமா? என்பதைக் கூறிவிடவும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Authentication என்றால் என்ன?&lt;/span&gt;&lt;br /&gt;சரியான பயனர் பெயரும், Passwordம் கொடுத்தால் மட்டுமே உள்நுழைய அனுமதிக்கும் செயல். என் வீடு பூட்டியிருக்கிறது. வீட்டிற்கு இரண்டு சாவிகள். ஒன்று என்னிடமும், மற்றொன்று மகனிடம் உள்ளது. சரியான சாவியைப் போட்டு நானோ அல்லது மகனோ திறக்கலாம். தவறான சாவியைப் பிரயோகம் செய்தால் வீட்டைத் திறக்க இயலாது. இதுவே Authentication எனப்படும். முறையான User Name மற்றும் Password கொடுக்கும் செயல்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Authorization என்பது என்ன?&lt;/span&gt;&lt;br /&gt;ஒரு அலுவலகத்தில் 30 பேர் வேலை செய்கிறார்கள் என வைத்துக்கொள்வோம். அதில் அனுபவ முதிர்ச்சி கொண்டவர், தற்போதுதான் கல்வியை முடித்து முதன்முதலாக வேலைக்கு வருபவர், அனைவருக்கும் மூத்த தலைவர் எனப் பலவித பணியாளர்கள் இருப்பார்கள். ஒவ்வொருவருக்கும் ஒவ்வொரு பணி. இதில் யாருக்கு அதிக சிறப்பு உரிமைகள் கொடுக்கப்படுகின்றன, யாருக்குப் பல உரிமைகள் மறுக்கப்படுகின்றன - என்பதே Authorization ஆகும்.&lt;br /&gt;&lt;br /&gt;Chess விளையாட்டில் சிப்பாய், மந்திரி, யானை, குதிரை, அரசன், அரசி என அனைவருக்கும் ஒவ்வொரு உரிமைகள் இருக்கும். ஒருவருக்கு இருக்கும் சிறப்பு உரிமைகள் அடுத்தவருக்கு இருக்காது. அதுதான் Authorization.&lt;br /&gt;&lt;br /&gt;Authentication செயலானது முடிந்தபிறகு Authentication சரிபார்க்கும் செயல் நடைபெறும்.&lt;br /&gt;&lt;br /&gt;Administrator என்பவருக்கு மிக அதிக உரிமை. இது போல ஒவ்வொரு பயனருக்கும் ஒவ்வொருவிதமான உரிமைகள். இதை Role என்பார்கள்.&lt;br /&gt;&lt;br /&gt;நமது கணினியில் நாமே நிறுவிக்கொள்கிறோம். அதனால் பெரும்பாலும் நாம் இதில் Windows Authentication ஐத் தேர்வு செய்யலாம்.&lt;br /&gt;&lt;br /&gt;SQL Server Authentication கொடுத்தால் ஒவ்வொரு முறையும் கடவுச்சொல்லைக் கொடுத்து உள் நுழையவேண்டி வரும். அல்லது அதை சேமித்து வைக்கும் வசதியைப் பயன்படுத்திக்கொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;உங்கள் Authentication எதுவாக இருக்கிறதோ அதைத் தேர்வு செய்தபிறகு, Connect ஐ அழுத்தவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87SY965aI/AAAAAAAADF4/5_vUkccDZ4I/s1600-h/connect.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 237px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87SY965aI/AAAAAAAADF4/5_vUkccDZ4I/s320/connect.png" alt="" id="BLOGGER_PHOTO_ID_5296016873936840098" border="0" /&gt;&lt;/a&gt;திரையில் Object Explorer என்னும் ஒரு Window தெரியும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87STzyLEI/AAAAAAAADFw/P5oub-DBn5w/s1600-h/objectexplorer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 184px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87STzyLEI/AAAAAAAADFw/P5oub-DBn5w/s320/objectexplorer.png" alt="" id="BLOGGER_PHOTO_ID_5296016872552148034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;அதில் Databaseல் Right Click செய்து New Database ஐ click செய்யவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX87KPM-1PI/AAAAAAAADFo/xXLOWqsv1D8/s1600-h/newdatabase.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 191px; height: 109px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX87KPM-1PI/AAAAAAAADFo/xXLOWqsv1D8/s320/newdatabase.png" alt="" id="BLOGGER_PHOTO_ID_5296016733876704498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;புதிய சட்டத்தில் Databaseக்கான பெயர் கொடுக்கவும். நான் Test எனக் கொடுத்துள்ளேன். பிறகு OK கொடுத்தால் Test என்கிற பெயரில் ஒரு Database உருவாகிவிடும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87KCg3PRI/AAAAAAAADFg/aGWBAvy9mYc/s1600-h/databasename.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 128px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87KCg3PRI/AAAAAAAADFg/aGWBAvy9mYc/s320/databasename.png" alt="" id="BLOGGER_PHOTO_ID_5296016730470432018" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX87JyOD6wI/AAAAAAAADFY/cWb5OIDq5Es/s1600-h/databaseexpand.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 319px; height: 293px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX87JyOD6wI/AAAAAAAADFY/cWb5OIDq5Es/s320/databaseexpand.png" alt="" id="BLOGGER_PHOTO_ID_5296016726096603906" border="0" /&gt;&lt;/a&gt;Test என்கிற இடத்தில் இருக்கும் +  Expand ஐ அழுத்தினால் அதில் Database Diagrams, Tables, Views, Synonyms, Programmability, Service Broker, Storage, Security எனப் பல இருக்கும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SX88Yrw2yDI/AAAAAAAADGA/1VxqiEYNeX0/s1600-h/dbexpa.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 251px; height: 320px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SX88Yrw2yDI/AAAAAAAADGA/1VxqiEYNeX0/s320/dbexpa.png" alt="" id="BLOGGER_PHOTO_ID_5296018081573161010" border="0" /&gt;&lt;/a&gt;அதில் Table ல் வைத்து Right click செய்து New Table ஐத் தேர்ந்தெடுக்கவும். இதில் Column Name, Data Type, Allow Nulls ஆகியவை இருக்கும். உங்கள் Tableன் Sturctureக்குத் தகுந்தாற்போல ஒவ்வொரு Column களையும் கொடுக்கவும். Person#, Name, City என மூன்று Columnகள் உதாரணத்திற்குக் கொடுத்திருக்கிறேன்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX87J_u-BSI/AAAAAAAADFI/OtlWyYP2yiI/s1600-h/structureentry.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 115px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX87J_u-BSI/AAAAAAAADFI/OtlWyYP2yiI/s320/structureentry.png" alt="" id="BLOGGER_PHOTO_ID_5296016729724290338" border="0" /&gt;&lt;/a&gt;பின் இதை Save செய்வதற்கு, Ctrl + S வழமை போலக் கொடுத்து Table க்காக ஒரு பெயர் சூட்டுங்கள். (MyList எனக் கொடுத்துள்ளேன்)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX866edYujI/AAAAAAAADFA/SBWTKEC2Iw8/s1600-h/tablesave.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 114px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX866edYujI/AAAAAAAADFA/SBWTKEC2Iw8/s320/tablesave.png" alt="" id="BLOGGER_PHOTO_ID_5296016463094135346" border="0" /&gt;&lt;/a&gt;பிறகு இதை Close செய்யலாம். இப்போது உங்கள் Tableன் Structure ஆனது Save செய்யப்பட்டுவிட்டது.&lt;br /&gt;&lt;br /&gt;இப்படி உருவாக்கிய Tableல் நமது தகவல்களை ஏற்றுவது எப்படி?&lt;br /&gt;Tables க்கு அருகில் இருக்கும் + அடையாளத்தைச் சொடுக்கி expand செய்தால், dbo.MyList ஐக் காணலாம்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX866JB6Z6I/AAAAAAAADE4/PDaG6e-RKzU/s1600-h/tableexpand.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 214px; height: 88px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX866JB6Z6I/AAAAAAAADE4/PDaG6e-RKzU/s320/tableexpand.png" alt="" id="BLOGGER_PHOTO_ID_5296016457341757346" border="0" /&gt;&lt;/a&gt; அதில் Right Click செய்து, Open Table ஐத் தேர்ந்தெடுக்கவும்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SX866HxY4FI/AAAAAAAADEw/WR5poKkE0BY/s1600-h/opentable.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 211px; height: 231px;" src="http://2.bp.blogspot.com/_-5Cl9WHU-Uo/SX866HxY4FI/AAAAAAAADEw/WR5poKkE0BY/s320/opentable.png" alt="" id="BLOGGER_PHOTO_ID_5296016457004015698" border="0" /&gt;&lt;/a&gt;பிறகு அதில் ஒவ்வொரு Row வாகத் தகவல்களை உள்ளீடு செய்யலாம். நான் 5 rowக்களை இதில் ஏற்றிவிட்டேன்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX866JyrorI/AAAAAAAADEo/RhKkBmB9Q7w/s1600-h/dataentry.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 56px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX866JyrorI/AAAAAAAADEo/RhKkBmB9Q7w/s320/dataentry.png" alt="" id="BLOGGER_PHOTO_ID_5296016457546310322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX8657BWzYI/AAAAAAAADEg/WnN3NnAJr3A/s1600-h/rowentry.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 138px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX8657BWzYI/AAAAAAAADEg/WnN3NnAJr3A/s320/rowentry.png" alt="" id="BLOGGER_PHOTO_ID_5296016453581327746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;பதிந்தது போதும் என நினைக்கும்போது அந்த tab ல் வலது க்ளிக் செய்து Close அழுத்திவிடலாம்.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX86p2Sn2jI/AAAAAAAADEY/t166Rg8iCxA/s1600-h/closetable.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 249px; height: 126px;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SX86p2Sn2jI/AAAAAAAADEY/t166Rg8iCxA/s320/closetable.png" alt="" id="BLOGGER_PHOTO_ID_5296016177433664050" border="0" /&gt;&lt;/a&gt;இதுவரையில் இங்கே நாம் GUI எனப்படும் Graphical User Interface வாயிலாக ஒரு Databaseம், அதில் ஒரு Tableம் உருவாக்கி, அதில் புதிய தகவல்களை எப்படிப் பதிவது என்றும் கண்டோம்.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-1922544090144642565?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/1922544090144642565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=1922544090144642565' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1922544090144642565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1922544090144642565'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-5.html' title='எளிய தமிழில் SQL - பாகம் 5'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX87SY965aI/AAAAAAAADF4/5_vUkccDZ4I/s72-c/connect.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-1652715991342036309</id><published>2009-01-25T20:45:00.000-08:00</published><updated>2009-01-25T21:41:43.423-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 4</title><content type='html'>எளிய தமிழில் SQL - பாகம் 4&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ஒரு Tableன் Structure எப்படி இருக்கும்?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Column Name, Data Type(Width), Allow Nulls இவைகள் அனைத்தும் அடங்கியது ஒரு Table Structure.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX1CUbm2NpI/AAAAAAAADCs/BGnI-VefvHE/s1600-h/tablestructure.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 194px;" src="http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX1CUbm2NpI/AAAAAAAADCs/BGnI-VefvHE/s320/tablestructure.png" alt="" id="BLOGGER_PHOTO_ID_5295461655633082002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Allow Null என்பது tick செய்யப்பட்டிருந்தால், அதன் மதிப்பை உள்ளீடு செய்யும்போது வெறுமனே விட்டுவிடலாம் என்று அர்த்தம். தற்சமயம் அதன் மதிப்பு நமக்குத் தெரிந்திருக்கவில்லை. பிறகு சில காலம் கழித்துக் கூட அதன் மதிப்பை நாம் உள்ளிட்டுக் கொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;Allow Null என்பது tick செய்யப்படாமல் இருந்தால், அந்தக் குறிப்பிட்ட columnன் தகவலைக் கண்டிப்பாக நாம் கொடுத்தே தீரவேண்டும். அதன் மதிப்பை உள்ளிடாமல் விட்டுவிட்டால் பிழைச்செய்தி வரும். ஆனால் Identity Columnக்கு மட்டும் ஒரு விதிவிலக்கு உண்டு.&lt;br /&gt;&lt;br /&gt;முதல் Column ஆகிய AddressID ன் ஆரம்பத்தில் ஒரு சிறிய சாவியின் படம் போடப்பட்டுள்ளது. அது இந்த Tableன் primary key ஆகும்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX1D9APdM5I/AAAAAAAADC0/kRjfMEIngdA/s1600-h/primary.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 157px;" src="http://1.bp.blogspot.com/_-5Cl9WHU-Uo/SX1D9APdM5I/AAAAAAAADC0/kRjfMEIngdA/s320/primary.png" alt="" id="BLOGGER_PHOTO_ID_5295463452173480850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Primary key ஆனது ஒரு குறிப்பிட்ட Row வை தனித்து அடையாளம் கண்டுகொள்ள உதவும். மேலும் AddressID ஆனது Identity Column ஆகவும் குறிப்பிடப்பட்டுள்ளதால், இதன் மதிப்பை நாம் நேரடியாக உள்ளிட வேண்டிய அவசியமில்லை. Databaseல் தானியங்கியாக அடுத்தடுத்த எண்களை இந்த AddressIDல் Input செய்துவிடும்.&lt;br /&gt;&lt;br /&gt;மேலே உள்ள Table Structureல் AddressLine2 க்கு மட்டும் Allow Nulls ஆனது tick செய்யப்பட்டு இருக்கிறது. ஆகவே AddressLine2க்கு உரிய தகவல் நம்மிடம் தற்சமயம் இல்லையென்றால் அதை நாம் உள்ளீடு செய்யாமல் அப்படியே விட்டுவிட்டு அடுத்த Columnக்கு உரிய தகவலை உள்ளீடு செய்யலாம். பிறகு எப்போது வேண்டுமானாலும் AddressLine2க்கு உரிய Dataவைக் கொடுக்கலாம். பிழைச்செய்தி எதுவும் வராது.&lt;br /&gt;&lt;br /&gt;rowguid என்பதற்கு நேராக uniqueidentifier  என Data Type இருக்கிறது.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;அது என்ன Unique Identifier?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8DD27D89-6AE7-4316-B3B8-0CCEF0924F60 இது போன்ற ஒரு hexadecimal மதிப்பு.&lt;br /&gt;இது ஒவ்வொரு முறையும் வேறு வேறு மதிப்புகளைக் கொடுக்கும். கணினிக்குக் கணினி வித்தியாசமான மதிப்பையும், ஒரே கணினியில் ஒவ்வொரு முறையும் இயக்கும்போது வேறு வேறு மதிப்புகளைக் கொடுக்கும்.&lt;br /&gt;&lt;br /&gt;நாம் இந்த Unique Identifier Data Type ஐக் கொண்ட Column க்கு எந்த தகவலையும் உள்ளீடு செய்யவேண்டாம். இது தானியங்கியாக கணினியே உருவாக்கும் ஒரு மதிப்பாகும்.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு row வையும் பிரித்துக் காட்ட UniqueIdentifierஐப் பயன்படுத்தலாம்.&lt;br /&gt;&lt;br /&gt;உதாரணம் :&lt;br /&gt;&lt;br /&gt;declare @a uniqueidentifier&lt;br /&gt;set @a =  newid()&lt;br /&gt;print @a&lt;br /&gt;&lt;br /&gt;இதன் விடை.&lt;br /&gt;&lt;br /&gt;F94771ED-8405-4C30-893E-0325FA0A394C&lt;br /&gt;&lt;br /&gt;மேலே கொடுத்துள்ள ஒரு சிறிய நிரல் ஆனது T-SQL programming ல் எழுதப்பட்டது.&lt;br /&gt;&lt;br /&gt;T-SQL என்றால் Transact SQL என்ற விரிவைக் கொண்டது. இது ஒரு கணினி மொழி.&lt;br /&gt;&lt;br /&gt;மேலே @a என்பது ஒரு variable. இதன் மதிப்பு ஒவ்வொரு முறையும் மாறிக்கொண்டே இருக்கும்.&lt;br /&gt;&lt;br /&gt;set @a = newid() ---&gt; என்றால் ஒரு கணினியால் அந்த நேரத்தில் உருவாக்கப்பட்ட ஒரு புதிய hexadecimal based மதிப்பை அந்த variable @a ல் பதிகிறோம்.&lt;br /&gt;&lt;br /&gt;print @a --&gt; திரையில் @a என்பதன் மதிப்பைக் காண்பி. உடனே திரையில் தெரியும் மதிப்பானது F94771ED-8405-4C30-893E-0325FA0A394C இப்படி இருக்கலாம். எனக்கு இந்த மதிப்பு வந்தது. உங்களுக்கு வேறு மதிப்பு வரும். ஒவ்வொருவருக்கும் வேறுவேறு மதிப்புகளை இந்த நிரல் உருவாக்கித் தரும்.&lt;br /&gt;&lt;br /&gt;AddressLine1, AddressLine2, City, PostalCode ஆகிய Columnகளின் DataType ஆனது nVarchar வகையைச் சேர்ந்தது.&lt;br /&gt;&lt;br /&gt;அதாவது இந்த Columnகளில் நாம் unicode வகையைச் சேர்ந்த எண்கள், எழுத்துக்கள், பிற அடையாளங்கள் ஆகியவற்றை உள்ளிடலாம்.&lt;br /&gt;&lt;br /&gt;AddressLine1 க்காக நாம் அதிகபட்சமாக 60 எழுத்துக்களை ஒதுக்கியுள்ளோம். ஆனால் நாம் 20 எழுத்துக்களை மட்டுமே உள்ளிட்டால், மீதியுள்ள 40 காலியிடங்கள் trim செய்யப்பட்டு 20 எழுத்துக்கள் மாத்திரமே table ல் பதிவாகும். இதுவே varcharன் சிறப்பு.&lt;br /&gt;&lt;br /&gt;இதுவே char என இருந்தால் ஒட்டுமொத்தமாக நாம் எவ்வளவு எழுத்துக்களை ஏற்கனவே ஒதுக்கியுள்ளோமோ அத்தனை இடங்களுமே வீணடிக்கப்பட்டுவிடும்.&lt;br /&gt;&lt;br /&gt;AddressID, StateProvinceID இவையிரண்டின் DataType ஆனது int வகையைச் சேர்ந்தது. அதனால் இந்த இரண்டுக்கும் நாம் எண்களை உள்ளீடு செய்யலாம். ஆனால் AddressID ஆனது Identity Column வகையைச் சேர்ந்ததால் (அது auto increment வகைப்பட்டது) அதற்குத் தகவலை உள்ளிட வேண்டாம். StateProviceIDக்கு மட்டும் அதற்குரிய எண்ணைப் பதிவிட்டால் போதும்.&lt;br /&gt;&lt;br /&gt;Modified Date என்பதில் அதற்குரிய DataType ஆனது DateTime ஆகக் குறிப்பிடப்பட்டுள்ளது.அதனால் அந்த Modified Date க்கு உரிய columnன் மதிப்பில் ஒரு குறிப்பிட்ட தேதியை உள்ளிடவேண்டும்.&lt;br /&gt;&lt;br /&gt;ஒரு சிறிய T-SQL நிரல்.&lt;br /&gt;&lt;br /&gt;declare @a datetime&lt;br /&gt;set @a =  getdate()&lt;br /&gt;print @a&lt;br /&gt;&lt;br /&gt;@a என்பது datetime எனப்படும் DataTypeஐச் சேர்ந்தது.&lt;br /&gt;getdate() எனப்படும் ஒரு function  நடப்புத் தேதியையும், நேரத்தையும் தரவல்லது.&lt;br /&gt;&lt;br /&gt;print @a என்றவுடன் கிடைத்த விடை.&lt;br /&gt;Jan 26 2009 11:00AM&lt;br /&gt;&lt;br /&gt;இங்கே ஒரு சில இடங்களில் புதியவர்களுக்காக சில குறிப்பிட்ட பதங்களை ஒவ்வொரு முறையும் விளக்கியிருப்பேன். Primary key, Identity Column போன்றவற்றை மீண்டும் சுருக்கமாகக் கூறியிருப்பேன். ஒரு புரிதலுக்காகத்தான் அவ்வாறு மீண்டும் கூறியிருக்கிறேனே தவிர வேறெதுவும் இல்லை. இதற்கு முன்னர் வெளியிட்ட 3 பதிவுகளில் அவற்றை விளக்கியிருந்தாலும், அதே பதங்களை இங்கே 4வது பதிவுகளில் பயன்படுத்தும்போது புரியாமல் போகிவிடக்கூடாது மீண்டும் குறுவிளக்கமாகக் குறிப்பிட்டிருக்கிறேன்.&lt;br /&gt;&lt;br /&gt;நன்றிகளுடன்,&lt;br /&gt;தமிழ்நெஞ்சம்.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-1652715991342036309?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/1652715991342036309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=1652715991342036309' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1652715991342036309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1652715991342036309'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-4.html' title='எளிய தமிழில் SQL - பாகம் 4'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-5Cl9WHU-Uo/SX1CUbm2NpI/AAAAAAAADCs/BGnI-VefvHE/s72-c/tablestructure.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-1526670280271093073</id><published>2009-01-25T03:00:00.000-08:00</published><updated>2009-01-25T03:54:53.957-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 3</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Identity Column என்றால் என்ன?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ஒரு குறிப்பிட்ட Column ன் மதிப்பானது, அதற்குரிய மதிப்பை நாம் கொடுக்காமலேயே,  அதுவாகவே தானியங்கித்தனமாக உயர்ந்துகொண்டு வருவதை Auto Increment எனலாம். இப்படி ஒரு Column ன் மதிப்பை தானாக உயர்த்துவதால், இந்த Column க்கு Identity Column என்போம்.&lt;br /&gt;&lt;br /&gt;இந்த Column ன் Data Type ஆனது numeric ஆக இருத்தல் வேண்டும். இதன் உயர்வு விகிதம் (Identity Increment), எந்த எண்ணிக்கையில் இருந்து ஆரம்பிக்கவேண்டும் (Identity Seed) போன்றவற்றை நாமே தீர்மாணிக்கலாம்.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு Rowக்கும், இந்த குறிப்பிட்ட Identity Column ன்  மதிப்பு அதுவாகவே உயர்ந்துகொண்டிருக்கும். அடுத்தடுத்த Rowக்களின் தகவல்களை உள்ளீடு செய்யும்போது, இந்த Identity Columnன் மதிப்பை நாம் உள்ளீடு செய்யத் தேவையில்லை.&lt;br /&gt;&lt;br /&gt;Primary key என்பது என்னவென்று இதற்கு முந்தைய பதிவில் பார்த்தோம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Foreign Key என்றால் என்ன?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Table என்றால் என்னவென்று நமக்குத் தெரியும். அதில் பல தகவல்களை ஒவ்வொரு Rowவாக உள்ளீடு செய்து வைத்திருப்போம். ஒன்றுக்கு மேற்பட்ட Tableகளில் இருக்கும் தகவல்களை ஒரே திரையில் காண்பதற்கு உதவுவதே Foreign key ஆகும்.&lt;br /&gt;&lt;br /&gt;ஒரு குறிப்பிட்ட Table ல் ஒவ்வொரு Rowவையும் பிரித்துத் தனிமைப்படுத்துவதற்கு, அடையாளம் காண்பதற்கு Primary key உதவுகிறது.&lt;br /&gt;&lt;br /&gt;இந்தக் கட்டுமானத்தை Master - Detail என்று கூறுவோம்.&lt;br /&gt;Master Tableல் ஒரு குறிப்பிட்ட Column ஆனது Primary key ஆக இருக்கும். (இது முதலாவது Table). Primary key ன் மதிப்பு ஒவ்வொரு Rowக்கும் மாறிக்கொண்டே இருக்கும். உதாரணமாக Person#. ஒவ்வொரு நபருக்கும் ஒரு தனிப்பட்ட எண்ணைக் கொண்டு வித்தியாசப்படுத்துவதற்கு Primary key உதவும்.&lt;br /&gt;&lt;br /&gt;Master Table ல் ஒரு முறை மட்டும் வந்த Person# ஆனது, Detail Table ல் பலமுறை திரும்பத் திரும்ப வரும். இந்த இரண்டு எண்ணும் ஒரே எண்ணாக இருக்கும்.&lt;br /&gt;இரண்டின் Data Type ம் ஒன்றாகவே இருக்கும். இரண்டும் ஒன்றுக்கொன்று தொடர்புடையதாக இருக்கும்.&lt;br /&gt;&lt;br /&gt;இந்த Primary - Foreign key மூலம் இரண்டு Tableகளின் மதிப்புகளை ஒரே திரையில் காணலாம். இதை join என்போம்.&lt;br /&gt;&lt;br /&gt;இந்த இரண்டு keyகளின் Columnல் ஏற்றப்பட்ட மதிப்புகளை அடையாளப்படுத்தியே Master-Detail Table மையப்படுத்தப்படுகிறது.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Unique என்றால் என்ன?&lt;/span&gt;&lt;br /&gt;ஒரு குறிப்பிட்ட Columnல் உள்ள மதிப்பு ஒவ்வொரு Rowக்கும் வித்தியாசமானதாக இருப்பதை Unique எனலாம்.&lt;br /&gt;&lt;br /&gt;Person# எனப்படுவதை Unique Column எனலாம். ஒவ்வொரு நபரின் பெயரும் வித்தியாசமானதாக இருக்கத் தேவையில்லை (காரணம்  : பெயர்ப் பற்றாக்குறை). ஆனால் ஒவ்வொரு நபருக்கும் நாம் அளிக்கும் குறிப்பிட்ட எண் (Person#) ஆனது Unique ஆகும்.&lt;br /&gt;&lt;br /&gt;ஆகவே Primary key ஆனது Unique தான். ஆனால் Primary keyஆனது NULL ஆக இருக்கவே முடியாது. Unique Column ஆனது ஒரே ஒருமுறை மட்டும், NULL மதிப்பை ஏற்றுக்கொள்ளும். இதுவே இவை இரண்டுக்கும் உள்ள ஒரே வித்தியாசம்.&lt;br /&gt;&lt;br /&gt;NULL என்பது எந்த மதிப்பும் இல்லாதது. அதன் மதிப்பு பூஜ்யமோ / எதோ ஒரு எழுத்தோ / எழுத்துத் தொகுப்போ இல்லை. அது மதிப்பே இல்லாதது.&lt;br /&gt;&lt;br /&gt;Primary key ஆனது NULL ஐ ஏற்றுக்கொள்ளாது. ஆனால் Unique Column ஆனது ஒரே ஒருமுறை மட்டும் NULLஐ ஏற்றுக்கொள்ளூம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DataType களின் வகைகள் யாவை?&lt;/span&gt;&lt;br /&gt;SQL Server 2005ல் நாம் பயன்படுத்தும் Data Typesகளின் வகைகள் கீழே:&lt;br /&gt;&lt;br /&gt;user-defined data types (highest)&lt;br /&gt;sql_variant&lt;br /&gt;xml&lt;br /&gt;datetime&lt;br /&gt;smalldatetime&lt;br /&gt;float&lt;br /&gt;real&lt;br /&gt;decimal&lt;br /&gt;money&lt;br /&gt;smallmoney&lt;br /&gt;bigint&lt;br /&gt;int&lt;br /&gt;smallint&lt;br /&gt;tinyint&lt;br /&gt;bit&lt;br /&gt;ntext&lt;br /&gt;text&lt;br /&gt;image&lt;br /&gt;timestamp&lt;br /&gt;uniqueidentifier&lt;br /&gt;nvarchar&lt;br /&gt;nchar&lt;br /&gt;varchar&lt;br /&gt;char&lt;br /&gt;varbinary&lt;br /&gt;binary (lowest)&lt;br /&gt;&lt;br /&gt;Data Types  என்பது, ஒவ்வொரு Columnலும் நாம் உள்ளீடு செய்யப்போகும் தகவலின் வகையைக் குறிக்கிறது.எண், எழுத்து, தேதி - போன்ற Data Type ஐ நாம் அதிகம் பயன்படுத்துவோம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Character க்கும் Variable Characterக்கும் என்ன வித்தியாசம்?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NAME    CHARACTER(50) ---&gt; இது ஒரு Column எனக் கொண்டால், இதில் Field name ஆனது NAME ஆகும். இதில் நாம் உள்ளீடு செய்யவிருக்கிற தகவலின் வகை character எனப்படும் DataType ஐச் சார்ந்தது. அதில் நாம் அதிகபட்சமாக 50 தனித்தனி எழுத்துகளை (இடைவெளி Space) ஐயும் சேர்த்து உள்ளிடலாம்.&lt;br /&gt;&lt;br /&gt;உதாரணமாக&lt;br /&gt;NAME = "Raja" எனக் கொடுத்தால், இதில் 4 எழுத்துக்களை உள்ளிட்டு இருக்கிறோம். ஆனால் அதிகபட்சமாக நாம் 50 எழுத்துக்களை உள்ளிட அனுமதிக்கிறது. அடைப்புக்குறிக்குள் இருக்கும் (50) என்பது இதைக் குறிக்கிறது.&lt;br /&gt;&lt;br /&gt;நாம் கொடுத்துள்ள Rajaவில் 4 எழுத்துக்கள் மட்டுமே உள்ளன. ஆனால் மீதியுள்ள 46 எழுத்துக்களின் மதிப்பை நாம் உள்ளீடு செய்யாமல் விட்டுவிட்டோம். ஆனால் ஒட்டுமொத்த 50 எழுத்துக்களுமே வன்வட்டு (hard disk) ல் பதிவாகும்.மீதியுள்ள 46 எழுத்துக்களுக்கு Space மூலம் நிரப்பப்பட்டு அதன் ஒட்டுமொத்த 50 மதிப்புகளும் வீணாக்கப்பட்டுவிடும்.&lt;br /&gt;&lt;br /&gt;ஆனால் variable character என்பதில், Babu என உள்ளிட்டால் 4 எழுத்துக்கள் மட்டுமே கணக்கில் எடுத்துக்கொள்ளப்படும். மீதியுள்ள 46 எழுத்துக்களில் இருக்கும் Space கணக்கில் எடுத்துக்கொள்ளப்படாமல் அவற்றின் Space எல்லாம் நிராகரிக்கப்பட்டு 4 எழுத்துக்கள் மாத்திரமே hard disk ல் எழுதப்படும். இதனால் நம் நினைவகம் வீணாவது தவிர்க்கப்படும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UniCode எழுத்துக்களைப் பதிவு செய்வதற்கு எந்த Data Types ஐப் பயன்படுத்துவது?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;பெரும்பாலும் ஆங்கிலத்தில் உள்ள தகவல்களை character, varchar முதலிய Data Type மூலம் உள்ளீடு செய்யலாம்.&lt;br /&gt;&lt;br /&gt;ஆனால் ஆங்கிலம் அல்லாத பிற மொழிகளான தமிழ், மலையாள மொழிகளை உள்ளீடு செய்ய நாம் nvarchar,  nchar போன்ற Data Type ஐப் பயன்படுத்தலாம்.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-1526670280271093073?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/1526670280271093073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=1526670280271093073' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1526670280271093073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/1526670280271093073'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-3.html' title='எளிய தமிழில் SQL - பாகம் 3'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-6293728310632835106</id><published>2009-01-24T06:58:00.000-08:00</published><updated>2009-01-24T06:59:22.269-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 2</title><content type='html'>நேற்று Table, Column, Data Type பற்றிப் பார்த்தோம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RDBMS என்பது என்ன?&lt;/span&gt;&lt;br /&gt;RDBMS என்பதன் விரிவு : Relational Database Management System.&lt;br /&gt;&lt;br /&gt;SQL ஐப் பயன்படுத்தும் நவீன மென்பொருட்கள் சில :&lt;br /&gt;MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Table என்பது என்ன?&lt;/span&gt;&lt;br /&gt;Database ல் தகவல்களை எங்கே பதிவு செய்திருக்கிறோமோ அந்த அமைப்பு Table எனப்படும்.&lt;br /&gt;&lt;br /&gt;ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்களின் தொகுப்பு Table.&lt;br /&gt;&lt;br /&gt;Table ஆனது எந்தவிதமான கட்டமைப்பில் அமைந்திருக்கும்?.&lt;br /&gt;&lt;br /&gt;ஒரு Table ல் பல Column / Field இருக்கும். பல Column களின் தொகுப்பே Table.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு Column மும் ஒரு குறிப்பிட்ட வகையான தகவலைக் கையகப்படுத்தி இருக்கும். ஆகவே ஒவ்வொரு Columnம் அதற்குரிய Data Type ஐக் கொண்டே அனுசரிக்கப்படுகிறது.&lt;br /&gt;&lt;br /&gt;ஒரு Databaseல் நிறைய Tableகள் இருக்கும். பல்வேறு Tableகளின் தொகுப்பை Database எனலாம்.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SXsqodg1x6I/AAAAAAAADCg/cdJXZrykwlQ/s1600-h/table.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SXsqodg1x6I/AAAAAAAADCg/cdJXZrykwlQ/s320/table.jpg" alt="" id="BLOGGER_PHOTO_ID_5294872661509654434" border="0" /&gt;&lt;/a&gt;மேலே ஒரு Tableன் மாதிரி வடிவத்தைக் கொடுத்துள்ளேன். (படத்தின் மேல் சொடுக்கினால் பெரிதாகப் பார்க்கலாம்).&lt;br /&gt;&lt;br /&gt;இதில் Person#,LastName,FirstName,Address,City ஆகியவற்றை Column/Field எனலாம்.&lt;br /&gt;&lt;br /&gt;Person# என்பது எண்களால் குறிப்பிடப்படுகிறது. இதன் Data Type ஆனது numeric.&lt;br /&gt;LastName,FirstName,City ஆகியவை எழுத்தால் குறிப்பிடப்படுவதால் இவற்றின் Data Type ஆனது character, variable character ஆகும்.&lt;br /&gt;&lt;br /&gt;Address என்கிற Columnல் எண்ணாலும், எழுத்தாலும் குறிப்பிடப்பட்டாலும் இது character அல்லது variable character என்கிற வகைக்குள்ளேயே வைத்து விடலாம்.&lt;br /&gt;&lt;br /&gt;PinCode என்று ஒரு column இருந்தால் அதையும் Character வகைக்குள்ளே வைத்துவிடலாம். PinCode பயன்படுத்தி நாம் எந்தவிதமான கூட்டல்,கழித்தல்,வகுத்தல்,பெருக்கல் முதலிய கணக்கீடுகளைச் செய்யப்போவதில்லை. அதனால் அதை numeric வகைக்குள் வைப்பதற்குப் பதிலாக character வகைக்குள்ளேயே வைத்துவிடலாம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ஒரு Table ல் Row அல்லது Tuple என்றால் என்ன?&lt;/span&gt;&lt;br /&gt;மேலே உள்ள Table ல் மொத்தம் 3 row க்கள் இருக்கின்றன.&lt;br /&gt;&lt;br /&gt;முதலில் இருப்பது தலைப்பாக இருப்பதால் அதை விடுத்து, அதன் கீழ் உள்ள 3 row மட்டுமே கருத்தில் எடுத்துக்கொள்ளப்படுகின்றன.&lt;br /&gt;&lt;br /&gt;Row என்பது Columnகளின் தொகுப்பு. ஒன்றுக்கொன்று தொடர்புடைய தகவல்களை ஒரு Row ல் எழுதி வைப்பது வழக்கம்.&lt;br /&gt;&lt;br /&gt;உதாரணமாக : 3,Karthik,The Hero,Space, Erode : இவை அனைத்தும் ஒரு குறிப்பிட்ட நபரின் தகவல்களே. ஒன்றுக்கு ஒன்று தொடர்புடைய தகவல்கள்.&lt;br /&gt;&lt;br /&gt;3 என்பது நபரின் எண்&lt;br /&gt;Karthik : First Name&lt;br /&gt;The Hero : Last Name&lt;br /&gt;Space : Address&lt;br /&gt;Erode : City&lt;br /&gt;&lt;br /&gt;இந்த Row ல் Address பகுதி மட்டும் Space விட்டுவிட்டோம். அதாவது ஏதேனும் Columnல் நிரப்பப்பட வேண்டிய தகவல் தற்சமயத்துக்குத் தெரியவில்லையெனில் அதை நிரப்பாமல் விட்டுவிடலாம். பிறகு நிரப்பிக்கொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;Karthik என்பவரின் Address தற்சமயம் நமக்குத்தெரிந்திருக்கவில்லை. அதனால் அதை அப்படியே நிரப்பாமல் விட்டுவிட்டு, அடுத்த Field ஆகிய City ல் Erode என எழுதிவிட்டோம்.&lt;br /&gt;&lt;br /&gt;இவ்வாறு ஒரு குறிப்பிட்ட Columnல் நிரப்பப்பட வேண்டிய தகவலானது தற்சமயம் நிரப்பப்பட அவசியம் இல்லை என்பதை Allow Null என்பதே தீர்மாணிக்கும்.&lt;br /&gt;&lt;br /&gt;A = 0,          ----&gt; இது எண் வகையைச் சேர்ந்தது (numeric)&lt;br /&gt;B = "Karthik"   ----&gt; இது எழுத்து வகையைச் சேர்ந்தது (character)&lt;br /&gt;C = NULL        ----&gt; தகவல் தற்சமயம் கைவசம் இல்லை (NULL)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NULL என்பதன் அர்த்தம்&lt;/span&gt; யாதெனில், தற்போது அந்தக் குறிப்பிட்ட தகவலின் மதிப்பு எதுவும் இல்லை. அது பூஜ்யமும் இல்லை. அதில் எந்த மதிப்பும் இல்லை. அது NULL - அவ்வளவுதான்.&lt;br /&gt;&lt;br /&gt;Allow NULL - இதன் மதிப்பை ஆமாம் (true), இல்லை (false) என்கிற கட்டுக்குள் கொண்டு வரலாம். true / false.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு நபருக்கும் தனித்தனிப் பெயர் இருப்பதுபோல, இங்கே அவரவர்க்கும் தனித்தனி எண்கள் தரப்படும்.&lt;br /&gt;&lt;br /&gt;ஒன்றுக்கு மேற்பட்டவர்களுக்கு ஒரே பெயர்கள் இருக்கலாம் (பெயர்ப் பற்றாக்குறை!).&lt;br /&gt;&lt;br /&gt;எனக்கு Karthik என்கிற பெயர்கள் உடைய 6 நண்பர்கள் இருக்கிறார்கள். அவர்களை வித்தியாசப்படுத்த ஒவ்வொருவருக்கும் ஒரு எண்கள் தரப்படுகின்றன. அதுவே Person#.&lt;br /&gt;&lt;br /&gt;இதற்கு Primary Key என்று பெயர்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;அது என்ன Primary Key?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ஒன்றுக்கு மேற்பட்டவர்களின் பெயர்கள் ஒரே மாதிரியாக இருக்கும்போது, ஒவ்வொருவரையும் தனித்தனியாக அடையாளம் காண்பிப்பதற்கு உதவும் மாற்று உறுப்புதான் Primary Key ஆகும்.&lt;br /&gt;&lt;br /&gt;ஒரு Tableல் பல Rowக்கள் இருக்கலாம். ஒரு Rowல் பல Column இருக்கலாம்.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு Rowவையும் மற்ற Row க்களில் இருந்து பிரித்து தனித்து அடையாளம் காண்பதற்கு Primary key பயன்படுத்துகிறோம்.&lt;br /&gt;&lt;br /&gt;சற்று முன்னர் NULL பற்றிப் பார்த்தோம். ஒரு குறிப்பிட்ட தகவலின் மதிப்பு, தற்சமயம் கையில் இல்லாமல் இருந்தால் அதை NULL என்று தீர்மானித்து அப்படியே விட்டுவிடலாம்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Primary key ஆனது NULL ஆக இருக்க வாய்ப்பு உள்ளதா?&lt;/span&gt;&lt;br /&gt;கண்டிப்பாக இல்லை. Primary key ஆனது எந்த ஒரு சமயத்திலும் NULL ஆக இருக்கவே இருக்காது.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-6293728310632835106?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/6293728310632835106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=6293728310632835106' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/6293728310632835106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/6293728310632835106'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-2.html' title='எளிய தமிழில் SQL - பாகம் 2'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-5Cl9WHU-Uo/SXsqodg1x6I/AAAAAAAADCg/cdJXZrykwlQ/s72-c/table.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7482343037980624810.post-585069002710000251</id><published>2009-01-23T18:40:00.000-08:00</published><updated>2009-01-23T19:12:32.366-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Self Learning Series'/><title type='text'>எளிய தமிழில் SQL - பாகம் 1</title><content type='html'>&lt;span style="font-weight: bold;"&gt;SQL என்பதன் விரிவு என்ன?&lt;/span&gt;&lt;br /&gt;Structured Query Language&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SQLன் பயன்கள் யாவை?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Databaseன் தகவல்களைத் தேடி எடுப்பது,&lt;br /&gt;புதிய தகவலை ஏற்றுவதற்கு,&lt;br /&gt;பழைய விவரங்களை மாற்றுவதற்கு,&lt;br /&gt;அழிப்பதற்கு மற்றும் இன்னும் நிறைய விசயங்களுக்கு SQL பயன்படுகிறது.&lt;br /&gt;Database களில் இருக்கும் தகவல்களை எடுக்க / கொடுக்க SQL உதவுகிறது.&lt;br /&gt;&lt;br /&gt;Query என்றால் கேள்வி, விசாரணை, தேடுதல் என அர்த்தம் கொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;சரி எடுத்த எடுப்பில் Database என ஆரம்பித்துவிட்டேன்.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;அது என்ன Database?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;பாய்ஸ் படத்தில் நடிகர் செந்தில், மணிகண்டனுடன் ஒரு கையடக்க நோட்டுப்புத்தகத்தை வைத்துக்கொண்டு ”எந்தக் கோவிலில் எந்த நேரத்தில் என்ன கொடுப்பார்கள்”? என புள்ளிவிவர அறிக்கை விடுவார்.&lt;br /&gt;&lt;br /&gt;ஒரு வசனம் பேசுவார் - &lt;span style="font-weight: bold;"&gt;Information, Information is Wealth &lt;/span&gt;என்பார். அது யாரோ எழுதிக்கொடுத்த வசனம் அல்ல. எழுத்தாளர் சுஜாதா பாய்ஸ் படத்துக்காக எழுதிக்கொடுத்த வசனம்தான்.  இது ஒரு நகைச்சுவை உதாரணம்.&lt;br /&gt;&lt;br /&gt;கீழே ஒரு எளிய Table வடிவம் ஒன்றைத் தருகிறேன்.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு வகுப்பறைக்கும், ஒரு வருகைப்பதிவேடு வைத்திருப்பார்கள்.&lt;br /&gt;அதில் மாணவர் பெயர், தேதி போன்றவை இருக்கும். அதில் தினமும் மாணவர் வந்திருக்கிறாரா? இல்லையா எனக் குறித்துக்கொள்வார்கள்.&lt;br /&gt;&lt;br /&gt;மாத இறுதியில் ஒரு குறிப்பிட்ட மாணவர் எத்தனை நாட்கள் வந்திருந்தார்? அல்லது எத்தனை நாட்கள் வரவில்லை எனக் கணக்கிட்டுக்கொள்ளலாம்.&lt;br /&gt;&lt;br /&gt;இதில் மாணவர் பெயர், தேதி முதலியவற்றை Field அல்லது Column எனலாம்.&lt;br /&gt;மாணவரின் பெயர் எழுத்து வடிவில் இருக்கும்.&lt;br /&gt;அதனை String / Character / Variable character என்போம்.&lt;br /&gt;&lt;br /&gt;தேதி என்பது month-date-year அல்லது date/month/year போன்ற ஒரு வடிவில் அமைந்திருக்கும். இது இரண்டாவது Field ஆகும்.&lt;br /&gt;&lt;br /&gt;மாணவர் பெயர்  ---&gt; character(50)&lt;br /&gt;தேதி            ---&gt; datetime&lt;br /&gt;&lt;br /&gt;ஒரு மாணவருக்காக எவ்வளவு எழுத்துகளை அதிகபட்சமாக ஒதுக்குகிறோம் என்பதே அடைப்புக்குறிக்குள் தரப்படுகிறது.&lt;br /&gt;&lt;br /&gt;உதாரணமாக மாணவரின் பெயர் ‘Babu’ எனக் கொண்டால் அவருடைய பெயரின் எழுத்துக்களின் எண்ணிக்கை 4.&lt;br /&gt;’valpaiyan @ Arun The Hero’  எனக் கொண்டால் அவருடைய பெயரின் ஒட்டுமொத்த எழுத்துக்களின் எண்ணிக்கை 25.&lt;br /&gt;&lt;br /&gt;இப்படி ஒவ்வொருவரின் பெயரில் உள்ள எழுத்துக்களின் எண்ணிக்கை வித்தியாசப்படுகிறது. ஆகவே நாமாகவே ஒரு உச்சமதிப்பு ஒன்றை கொடுத்துவிடவேண்டும். இங்கே character(50) எனக் கொடுத்தால் Name என்கிற Field / Column ல் அதிகபட்சமாக 50 எழுத்துக்களைப் பதிவுசெய்ய இயலும் எனக் கொள்க.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;மாணவர் பெயர்  ---&gt; character(50)&lt;br /&gt;தேதி            ---&gt; datetime  இவை இரண்டும் இரண்டு Column எனக் கொண்டால், இவற்றினை ஒட்டுமொத்தமாக ஒரு Table எனலாம்.&lt;br /&gt;&lt;br /&gt;ஒரு Table என்பது பல Field களின் தொகுப்பு.&lt;br /&gt;&lt;br /&gt;ஒரு Field என்பது குறிப்பிட்ட ஒரே மாதிரியான தகவலின் தொகுப்பு.&lt;br /&gt;&lt;br /&gt;ஒவ்வொரு Fieldலும் நாம் பதிவு செய்யப்போகிற தகவலின் அடிப்படையில், எந்த மாதிரியான தகவலைப் பதிவு செய்யப் போகிறோம் என்பதை அதன்  Data Type மூலம் நிர்ணயிக்கலாம்.&lt;br /&gt;&lt;br /&gt;மாணவரின் பெயரை character(50) என்றோம். இங்கே 50 என்பது எத்தனை எழுத்துக்கள் என்பதைக் குறிக்கிறது. character என்பது ஒரு Data Type ஆகும்.&lt;br /&gt;&lt;br /&gt;தேதி --&gt; datetime இங்கு datetime என்பது மற்றொரு வகை Data Type ஆகும்.&lt;br /&gt;&lt;br /&gt;எழுத்துக்களைப் பதியும்போது character, எண்களைப்பதியும்போது numbers (int,bigint,decimal,float). தேதியைக் குறிக்கும்போது datetime என ஒவ்வொரு வகையான தகவலுக்கும் ஒவ்வொரு DataType உள்ளது.&lt;br /&gt;&lt;br /&gt;ஆகவே Data Type என்பது தகவலின் வகையைக் குறிப்பதாகும்.&lt;br /&gt;&lt;br /&gt;SQL வாயிலாக ஒரு Table ஐ உருவாக்க / மாற்ற / அழிக்க / தகவலைத் தேட இயலும்.&lt;br /&gt;&lt;br /&gt;Table என்பதில் பல Columns இருக்கும். ஒவ்வொரு Columnன் தகவலின் வகையை DataType மூலம் நிர்ணயிக்கலாம். எவ்வளவு எழுத்துகள் என்பதை அடைப்புக்குறிக்குள் சொல்கிறோம்.&lt;br /&gt;&lt;br /&gt;உங்கள் கணினியில் SQL கட்டளைகளை இயக்கிப் பார்ப்பதற்காக &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&amp;amp;DisplayLang=en" target="_blank"&gt;Microsoft SQL Server 2005 Express Edition&lt;/a&gt; மென்பொருளை இலவசமாகத் தரவிறக்கி உங்கள் கணினியில் நிறுவிக்கொள்ளவும்.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;பின் குறிப்பு :&lt;/span&gt; வாரத்திற்கு 2 முறையாவது இந்த எளிய தமிழில் SQL என்கிற தொடர் பதிவுகளை அளிக்கலாம் என முன்வந்துள்ளேன். உங்கள் ஆதரவு தேவை.&lt;br /&gt;&lt;br /&gt;பல பதிவுகளை பிற ஆங்கில வலைப்பூக்களில் இருந்து மொழிபெயர்த்துப் போட்டிருக்கிறேன். அதற்கு ஆதரவளித்த அன்புள்ளங்களுக்கு நன்றி. அதுபோல இந்தத் தொடரின் வெற்றி உங்கள் கையில்தான் உள்ளது.&lt;br /&gt;&lt;br /&gt;முதலில் சில terms உங்களுக்குக் குழப்பமாக இருப்பினும் தொடர்ந்து படியுங்கள். இங்கே குறிப்பிடும் உதாரணங்களை கணினியில் செய்து பாருங்கள். வித்தியாசத்தை நீங்களே உணர்வீர்கள்.&lt;br /&gt;&lt;br /&gt;இங்கே இனிவரும் காலங்களில் நான் கொடுக்கப்போகும் உதாரணங்களை இயக்கிப் பார்க்க இந்த இலவச மென்பொருளை உங்கள் கணினியில் நிறுவிக்கொள்ளவும்.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&amp;amp;DisplayLang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&amp;amp;DisplayLang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;எனது நோக்கம் என்னவெனில் இந்தத் தொடரின் மூலம் புதியவர்களுக்கு Database பற்றியும், SQL பற்றியும் அறிந்துகொள்ளும் ஒரு வாய்ப்பை உருவாக்கித் தருவதே.&lt;br /&gt;&lt;br /&gt;நன்றிகளுடன்,&lt;br /&gt;&lt;br /&gt;தமிழ்நெஞ்சம்.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482343037980624810-585069002710000251?l=tamilsql.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tamilsql.blogspot.com/feeds/585069002710000251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7482343037980624810&amp;postID=585069002710000251' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/585069002710000251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7482343037980624810/posts/default/585069002710000251'/><link rel='alternate' type='text/html' href='http://tamilsql.blogspot.com/2009/01/sql-1.html' title='எளிய தமிழில் SQL - பாகம் 1'/><author><name>Tech Shankar</name><uri>http://www.blogger.com/profile/09609449920454683115</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_aOVUVB-gmBA/ShvHUkOo0lI/AAAAAAAADxg/ttJjjGMX0Rw/s400/internet2_logo.jpg'/></author><thr:total>36</thr:total></entry></feed>
