Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2017 में एक क्वेरी बनाएं

SQL सर्वर 2017 डेटाबेस में क्वेरी कैसे बनाएं।

सबसे बुनियादी प्रश्नों में से एक जो आप कर सकते हैं वह इस प्रकार है:

SELECT * 
FROM TableName;

यह क्वेरी किसी दिए गए तालिका से सभी डेटा लौटाती है। TableName उस तालिका का नाम है जिसे आप क्वेरी करना चाहते हैं। आपको बस इतना करना है कि इसे अपने डेटाबेस में किसी तालिका के नाम से बदल दें, क्वेरी चलाएँ, और उस तालिका की सामग्री प्रदर्शित की जाएगी।

हमारे डेटाबेस में तीन टेबल होते हैं। प्रत्येक में डेटा होता है। आइए देखें कि प्रत्येक तालिका में क्या है।

Artists तालिका:

SELECT * 
FROM Artists;
परिणाम
ArtistId  ArtistName              ActiveFrom              
--------  ----------------------  ------------------------
1         Iron Maiden             1975-12-25T00:00:00.000Z
2         AC/DC                   1973-01-11T00:00:00.000Z
3         Allan Holdsworth        1969-01-01T00:00:00.000Z
4         Buddy Rich              1919-01-01T00:00:00.000Z
5         Devin Townsend          1993-01-01T00:00:00.000Z
6         Jim Reeves              1948-01-01T00:00:00.000Z
7         Tom Jones               1963-01-01T00:00:00.000Z
8         Maroon 5                1994-01-01T00:00:00.000Z
9         The Script              2001-01-01T00:00:00.000Z
10        Lit                     1988-06-26T00:00:00.000Z
11        Black Sabbath           1968-01-01T00:00:00.000Z
12        Michael Learns to Rock  1988-03-15T00:00:00.000Z
13        Carabao                 1981-01-01T00:00:00.000Z
14        Karnivool               1997-01-01T00:00:00.000Z
15        Birds of Tokyo          2004-01-01T00:00:00.000Z
16        Bodyjar                 1990-01-01T00:00:00.000Z

16 row(s) returned

Executed in 1 ms

Albums तालिका:

SELECT * 
FROM Albums;
परिणाम
AlbumId  AlbumName                 ReleaseDate               ArtistId  GenreId
-------  ------------------------  ------------------------  --------  -------
1        Powerslave                1984-09-03T00:00:00.000Z  1         1      
2        Powerage                  1978-05-05T00:00:00.000Z  2         1      
3        Singing Down the Lane     1956-01-01T00:00:00.000Z  6         3      
4        Ziltoid the Omniscient    2007-05-21T00:00:00.000Z  5         1      
5        Casualties of Cool        2014-05-14T00:00:00.000Z  5         1      
6        Epicloud                  2012-09-18T00:00:00.000Z  5         1      
31       Somewhere in Time         1986-09-29T00:00:00.000Z  1         1      
32       Piece of Mind             1983-05-16T00:00:00.000Z  1         1      
33       Killers                   1981-02-02T00:00:00.000Z  1         1      
34       No Prayer for the Dying   1990-10-01T00:00:00.000Z  1         1      
35       No Sound Without Silence  2014-09-12T00:00:00.000Z  9         4      
36       Big Swing Face            1967-06-01T00:00:00.000Z  4         2      
37       Blue Night                2000-11-01T00:00:00.000Z  12        4      
38       Eternity                  2008-10-27T00:00:00.000Z  12        4      
39       Scandinavia               2012-06-11T00:00:00.000Z  12        4      
40       Long Lost Suitcase        2015-10-09T00:00:00.000Z  7         4      
41       Praise and Blame          2010-06-26T00:00:00.000Z  7         4      
42       Along Came Jones          1965-05-21T00:00:00.000Z  7         4      
43       All Night Wrong           2002-05-05T00:00:00.000Z  3         2      
44       The Sixteen Men of Tain   2000-03-20T00:00:00.000Z  3         2      

20 row(s) returned

Executed in 1 ms

Genres तालिका:

SELECT * 
FROM Genres;
परिणाम
GenreId  Genre  
-------  -------
1        Rock   
2        Jazz   
3        Country
4        Pop    
5        Blues  
6        Hip Hop
7        Rap    
8        Punk   

8 row(s) returned

Executed in 1 ms

तीनों मामलों में हमारा सवाल एक ही था। केवल एक चीज जो बदली वह थी टेबल का नाम।

यह सबसे बुनियादी प्रश्नों में से एक है जो हम कर सकते हैं। यह केवल एक ही तालिका से सभी पंक्तियों और सभी स्तंभों को लौटाता है।

हम केवल उस डेटा को वापस करने के लिए इस क्वेरी को कई तरीकों से संशोधित कर सकते हैं जिसे हम देखना चाहते हैं। नीचे कुछ सामान्य तरीके दिए गए हैं जिनसे हम किसी क्वेरी को संशोधित कर सकते हैं ताकि हमें ठीक वही परिणाम मिले जो हमें चाहिए।

कॉलम निर्दिष्ट करें

तारक का उपयोग करने के बजाय (* ) सभी स्तंभों को वापस करने के लिए, आप केवल उन स्तंभों को स्पष्ट रूप से बता सकते हैं जिन्हें आप वापस करना चाहते हैं।

SELECT AlbumId, AlbumName, ArtistId 
FROM Albums;
परिणाम
AlbumId  AlbumName                 ArtistId
-------  ------------------------  --------
1        Powerslave                1       
2        Powerage                  2       
3        Singing Down the Lane     6       
4        Ziltoid the Omniscient    5       
5        Casualties of Cool        5       
6        Epicloud                  5       
31       Somewhere in Time         1       
32       Piece of Mind             1       
33       Killers                   1       
34       No Prayer for the Dying   1       
35       No Sound Without Silence  9       
36       Big Swing Face            4       
37       Blue Night                12      
38       Eternity                  12      
39       Scandinavia               12      
40       Long Lost Suitcase        7       
41       Praise and Blame          7       
42       Along Came Jones          7       
43       All Night Wrong           3       
44       The Sixteen Men of Tain   3       

20 row(s) returned

Executed in 1 ms

मानदंड को छोटा करें

आप एक WHERE जोड़ सकते हैं क्लॉज केवल उन्हीं पंक्तियों को वापस करने के लिए है जो आपके द्वारा प्रदान किए गए मानदंड से मेल खाते हैं।

SELECT AlbumId, AlbumName, ArtistId 
FROM Albums 
WHERE ArtistId = 1;
परिणाम
AlbumId  AlbumName                ArtistId
-------  -----------------------  --------
1        Powerslave               1       
31       Somewhere in Time        1       
32       Piece of Mind            1       
33       Killers                  1       
34       No Prayer for the Dying  1       

5 row(s) returned

Executed in 1 ms

किसी अन्य तालिका में शामिल हों

आप डेटा साझा करने वाली कई तालिकाओं से परिणाम वापस करने के लिए शामिल होने का उपयोग कर सकते हैं। यही सब रिश्ते हैं। विशेष रूप से, एक जॉइन का आमतौर पर उपयोग किया जाता है जहां एक टेबल की विदेशी कुंजी दूसरे की प्राथमिक कुंजी से मेल खाती है।

SELECT AlbumId, AlbumName, ArtistName 
FROM Albums 
	INNER JOIN Artists 
	ON Albums.ArtistId = Artists.ArtistId 
WHERE ReleaseDate < '1980-01-01';
परिणाम
AlbumId  AlbumName              ArtistName
-------  ---------------------  ----------
2        Powerage               AC/DC     
3        Singing Down the Lane  Jim Reeves
36       Big Swing Face         Buddy Rich
42       Along Came Jones       Tom Jones 

4 row(s) returned

Executed in 1 ms

आप देखेंगे कि WHERE क्लॉज अभी भी उन स्तंभों पर काम करता है जो वास्तव में आउटपुट में शामिल नहीं हैं। इस मामले में, इसे ReleaseDate . पर लागू किया गया था कॉलम, भले ही हम उस कॉलम को परिणामों में शामिल न करें।

आप यह भी देखेंगे कि हम दो ArtistId . के योग्य हैं तालिका के नाम वाले स्तंभ (अर्थात Albums.ArtistId और Artists.ArtistId ) SQL सर्वर को यह जानने के लिए हमें यह करना चाहिए कि उस कॉलम को संदर्भित करते समय हम किस तालिका का उल्लेख कर रहे हैं। कुछ डेटाबेस डेवलपर्स सभी SQL प्रश्नों में सभी कॉलम नामों को योग्य बनाने के लिए इसे अच्छा अभ्यास मानते हैं, हालांकि यह व्यक्तिगत वरीयता या प्रोजेक्ट-विशिष्ट कोडिंग सम्मेलन का मामला है।

उपनाम जोड़ें

कोड को अधिक संक्षिप्त बनाने के लिए आप अपने प्रश्नों में तालिका उपनाम भी जोड़ सकते हैं। उदाहरण के लिए, आप Artists दे सकते हैं ar . का एक उपनाम और Albums al . का एक उपनाम (या कोई अन्य स्ट्रिंग जो आपको पसंद हो)।

कॉलम नामों को योग्य बनाने के लिए आप इन उपनामों का उपयोग कर सकते हैं। यहां ऊपर की तरह ही क्वेरी दी गई है, लेकिन सभी कॉलम नामों के साथ टेबल एलियासेस के साथ योग्यता प्राप्त की गई है:

SELECT al.AlbumId, al.AlbumName, ar.ArtistName 
FROM Albums al
	INNER JOIN Artists ar
	ON al.ArtistId = ar.ArtistId 
WHERE al.ReleaseDate < '1980-01-01';
परिणाम
AlbumId  AlbumName              ArtistName
-------  ---------------------  ----------
2        Powerage               AC/DC     
3        Singing Down the Lane  Jim Reeves
36       Big Swing Face         Buddy Rich
42       Along Came Jones       Tom Jones 

4 row(s) returned

Executed in 1 ms

आप कॉलम के लिए उपनाम भी निर्दिष्ट कर सकते हैं (न केवल टेबल)। हम इसे अगले उदाहरण में करते हैं।

दिनांक प्रारूपित करें

ऐसे कई अलग-अलग तरीके हैं जिनसे डेटाबेस में दिनांक और समय का इलाज किया जा सकता है। SQL सर्वर में दिनांक संग्रहीत करने के लिए विभिन्न डेटा प्रकार होते हैं (जैसे date , time , datetime , smalldatetime , आदि) और तिथियों से निपटने के लिए कई अलग-अलग कार्य हैं (उदाहरण के लिए SYSDATETIME() , GETDATE( ) , CURRENT_TIMESTAMP , आदि)।

इस उदाहरण में, हम YEAR() . का प्रयोग करेंगे दिनांक के केवल वर्ष भाग को वापस करने के लिए कार्य करता है।

SELECT AlbumName, YEAR(ReleaseDate) AS Year 
FROM Albums;
परिणाम
AlbumName                 Year
------------------------  ----
Powerslave                1984
Powerage                  1978
Singing Down the Lane     1956
Ziltoid the Omniscient    2007
Casualties of Cool        2014
Epicloud                  2012
Somewhere in Time         1986
Piece of Mind             1983
Killers                   1981
No Prayer for the Dying   1990
No Sound Without Silence  2014
Big Swing Face            1967
Blue Night                2000
Eternity                  2008
Scandinavia               2012
Long Lost Suitcase        2015
Praise and Blame          2010
Along Came Jones          1965
All Night Wrong           2002
The Sixteen Men of Tain   2000

20 row(s) returned

Executed in 1 ms

इस उदाहरण में हम एक कॉलम के लिए एक उपनाम भी निर्दिष्ट करते हैं। अधिक विशेष रूप से, हम YEAR() . के परिणाम के लिए एक उपनाम निर्दिष्ट करते हैं फ़ंक्शन, जिसमें से हम ReleaseDate . पास करते हैं एक तर्क के रूप में स्तंभ।

इस उदाहरण के बारे में एक और बात यह है कि हमने AS . का उपयोग किया है उपनाम निर्दिष्ट करते समय कीवर्ड। यह वैकल्पिक है, और हम AS . का भी उपयोग कर सकते थे पिछले उदाहरण में किसी तालिका को उपनाम निर्दिष्ट करते समय कीवर्ड।

एसक्यूएल और ट्रांजैक्ट-एसक्यूएल के बारे में

उपरोक्त प्रश्न (और इस ट्यूटोरियल में अन्य प्रश्न) संरचित क्वेरी भाषा (एसक्यूएल) में लिखे गए हैं। अधिक विशेष रूप से, SQL सर्वर Transact-SQL का उपयोग करता है (कभी-कभी छोटा करके T-SQL ), जो कि माइक्रोसॉफ्ट और साइबेस का एसक्यूएल का मालिकाना विस्तार है।

SQL अधिकांश रिलेशनल डेटाबेस प्रबंधन प्रणालियों पर उपयोग की जाने वाली मानक क्वेरी भाषा है। यह अमेरिकी राष्ट्रीय मानक संस्थान (एएनएसआई) और अंतर्राष्ट्रीय मानकीकरण संगठन (आईएसओ) का मानक है।

जबकि अधिकांश बुनियादी प्रश्न अधिकांश रिलेशनल डेटाबेस में काम करेंगे, एक डेटाबेस सिस्टम और दूसरे के बीच पोर्ट करते समय कुछ प्रश्नों को थोड़ा संशोधित करने की आवश्यकता हो सकती है। उदाहरण के लिए, आपके पास एक स्क्रिप्ट हो सकती है जो SQL सर्वर में चलती है। आप उस स्क्रिप्ट का उपयोग MySQL में भी कर सकते हैं, हालाँकि, आप पा सकते हैं कि इसके सफलतापूर्वक चलने से पहले आपको कुछ चीजों को बदलने की आवश्यकता है।

इस ट्यूटोरियल में SQL स्क्रिप्ट उन चीजों का एक छोटा सा नमूना प्रदर्शित करती है जो आप SQL के साथ कर सकते हैं। अधिक जानकारी के लिए मेरा SQL ट्यूटोरियल देखें या Microsoft Transact-SQL संदर्भ पर जाएँ।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर प्रबंधन स्टूडियो (SSMS) में क्लिपबोर्ड रिंग के माध्यम से साइकिल - SQL सर्वर / TSQL ट्यूटोरियल भाग 8

  2. आप उसी सर्वर पर प्रतिलिपि के रूप में डेटाबेस का बैकअप और पुनर्स्थापना कैसे करते हैं?

  3. SQL सर्वर में "अंकगणित अतिप्रवाह त्रुटि को डेटा प्रकार संख्यात्मक में परिवर्तित करना" को ठीक करें

  4. टी-एसक्यूएल:स्ट्रिंग कॉन्सटेनेशन के विपरीत - स्ट्रिंग को एकाधिक रिकॉर्ड में कैसे विभाजित करें

  5. SQL सर्वर इंस्टेंस से सभी डेटाबेस में प्राथमिक कुंजी बाधा के साथ या बिना तालिकाओं की सूची प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 61