MySQL उदाहरण सहित SELECT कथन
⚡ स्मार्ट सारांश
RSI MySQL SELECT स्टेटमेंट एक या अधिक तालिकाओं से पंक्तियों को पुनर्प्राप्त करता है, और नीचे दिए गए प्रत्येक उदाहरण को myflix नमूना डेटाबेस के विरुद्ध चलाया जाता है, जिसमें साधारण स्टार क्वेरी से लेकर एक्सप्रेशन, कॉलम उपनाम और स्ट्रिंग फ़ंक्शन तक का उपयोग किया जाता है।

SELECT क्वेरी क्या है? MySQL?
SELECT क्वेरी इसका उपयोग डेटा प्राप्त करने के लिए किया जाता है। MySQL डेटाबेस। डेटाबेस बाद में पुनः प्राप्ति के लिए डेटा संग्रहीत करते हैं। MySQL SELECT क्वेरी डेटाबेस टेबल से दी गई शर्तों से मेल खाने वाली एक या अधिक पंक्तियों को लौटाने के लिए उपयोग की जाती है। SELECT क्वेरी का उपयोग PHP या Ruby जैसी स्क्रिप्टिंग भाषा में किया जा सकता है, या आप इसे कमांड प्रॉम्प्ट से भी चला सकते हैं।
क्योंकि SELECT वह कमांड है जिसे आप सबसे अधिक बार चलाएंगे, इसलिए नमूना डेटा को छूने से पहले इसके सिंटैक्स को सीखना फायदेमंद होता है।
SQL SELECT स्टेटमेंट सिंटैक्स
SELECT सबसे अधिक उपयोग किया जाने वाला SQL कमांड है, और इसका सामान्य सिंटैक्स निम्नलिखित है:
SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];
यहाँ
- चुनते हैं SQL कीवर्ड है जो डेटाबेस को यह बताता है कि आप डेटा पुनर्प्राप्त करना चाहते हैं।
- [अलग-अलग | सभी] ये वैकल्पिक कीवर्ड हैं जो SQL SELECT स्टेटमेंट से प्राप्त परिणामों को बेहतर बनाने में मदद करते हैं। यदि कुछ भी निर्दिष्ट नहीं किया जाता है, तो डिफ़ॉल्ट रूप से ALL मान लिया जाता है।
- {*| [फ़ील्डएक्सप्रेशन [AS newName]} कम से कम एक भाग निर्दिष्ट किया जाना चाहिए। “*” निर्दिष्ट तालिका नाम से सभी फ़ील्ड का चयन करता है; fieldExpression निर्दिष्ट फ़ील्ड पर गणनाएँ करता है, जैसे संख्याओं को जोड़ना या दो स्ट्रिंग फ़ील्ड को एक में जोड़ना।
- से tableName अनिवार्य है और इसमें कम से कम एक टेबल होनी चाहिए। एकाधिक टेबलों को अल्पविराम से अलग किया जाना चाहिए या JOIN कीवर्ड का उपयोग करके जोड़ा जाना चाहिए।
- कहां यह शर्त वैकल्पिक है। यह क्वेरी से प्राप्त परिणाम सेट में मानदंड निर्दिष्ट करती है।
- समूह द्वारा इसका उपयोग समान फ़ील्ड मान वाले रिकॉर्ड को एक साथ रखने के लिए किया जाता है।
- होने GROUP BY कीवर्ड के साथ काम करते समय मानदंड निर्दिष्ट करने के लिए condition का उपयोग किया जाता है।
- द्वारा आदेश परिणाम सेट के सॉर्ट क्रम को निर्दिष्ट करने के लिए उपयोग किया जाता है।
*
स्टार चिह्न किसी टेबल के सभी कॉलम को चुनता है। एक साधारण SELECT स्टेटमेंट नीचे दिखाए गए उदाहरण जैसा दिखता है।
SELECT * FROM `members`;
उपरोक्त कथन सदस्यों की तालिका से सभी फ़ील्ड का चयन करता है। अर्धविराम कथन का समापन चिह्न है। यह अनिवार्य नहीं है, लेकिन कथनों को इस प्रकार समाप्त करना उचित माना जाता है।
SELECT DISTINCT और LIMIT में MySQL
वाक्य संरचना में दो वैकल्पिक कीवर्ड पर बारीकी से ध्यान देना आवश्यक है, क्योंकि शुरुआती लोगों का सामना तालिका के बढ़ने के साथ ही हो जाता है।
DISTINCT यह परिणाम सेट से डुप्लिकेट पंक्तियों को हटाता है। मूवीज़ टेबल में 2007 में रिलीज़ हुई कई फ़िल्में संग्रहीत हैं, इसलिए एक सामान्य क्वेरी उस वर्ष को दोहराती है। DISTINCT प्रत्येक मान को एक बार लौटाता है।
SELECT DISTINCT `year_released` FROM `movies`;
सीमा यह लौटाई जाने वाली पंक्तियों की संख्या को सीमित करता है, जो क्लाइंट को ऐसे क्वेरी से बचाता है जो अन्यथा लाखों रिकॉर्ड खींच लेगा।
SELECT * FROM `movies` LIMIT 5;
| खोजशब्द | यह क्या करता है | इसका उपयोग कब करें |
|---|---|---|
| सभी (डिफ़ॉल्ट) | यह डुप्लिकेट सहित सभी मेल खाने वाली पंक्तियों को लौटाता है। | कच्चे रिकॉर्डों की गिनती या सूची बनाना |
| DISTINCT | डुप्लिकेट पंक्तियों को एक में समेकित करता है | अद्वितीय मानों की सूची बनाना |
| सीमा | केवल पहली N पंक्तियाँ लौटाता है | डेटा का पूर्वावलोकन करना या परिणामों को पेजों में देखना |
वाक्य संरचना तय हो जाने के बाद, नमूना डेटाबेस इन वाक्यों को जीवंत बना देता है।
SELECT स्टेटमेंट के व्यावहारिक उदाहरण
डाउनलोड करने के लिए क्लिक करें व्यावहारिक उदाहरणों के लिए myflix डेटाबेस का उपयोग किया गया।
आप .sql फ़ाइल को आयात करने का तरीका सीख सकते हैं। MySQL कार्यक्षेत्र.
उदाहरणों को निम्नलिखित दो तालिकाओं पर लागू किया गया है।
टेबल 1: सदस्य तालिका
| सदस्यता_ संख्या | पूरे नाम | लिंग | जन्म_तिथि | भौतिक_ पता | डाक का पता | संपर्क_नंबर | ईमेल |
|---|---|---|---|---|---|---|---|
| 1 | जेनेट जोन्स | महिला | 21-07-1980 | फर्स्ट स्ट्रीट प्लॉट नं 4 | निजी बैग | 0759 253 542 | janetjones@yagoo.cm |
| 2 | जेनेट स्मिथ जोन्स | महिला | 23-06-1980 | मेलरोज़ 123 | नल | नल | jj@fstreet.com |
| 3 | रॉबर्ट फिल | नर | 12-07-1989 | तीसरी स्ट्रीट 3 | नल | 12345 | rm@tstreet.com |
| 4 | ग्लोरिया विलियम्स | महिला | 14-02-1984 | 2nd स्ट्रीट 23 | नल | नल | नल |
टेबल 2: फिल्में तालिका
| मूवी_आईडी | शीर्षक | निदेशक | वर्ष_रिलीज़ | श्रेणी_आईडी |
|---|---|---|---|---|
| 1 | कैरिबियन के समुद्री डाकू 4 | रॉब मार्शल | 2011 | 1 |
| 2 | सारा मार्शल को भूलना | निकोलस Stoller | 2008 | 2 |
| 3 | एक्स पुरुष | नल | 2008 | नल |
| 4 | Code नाम ब्लैक | एडगर जिम्ज़ | 2010 | नल |
| 5 | डैडीज लिटिल गर्ल्स | नल | 2007 | 8 |
| 6 | स्वर्गदूत और राक्षस | नल | 2007 | 6 |
| 7 | दा विंची Code | नल | 2007 | 6 |
| 9 | Honey moonनेताओं | जॉन शुल्त्ज़ | 2005 | 8 |
| 16 | 67% दोषी | नल | 2012 | नल |
सदस्यों की सूची प्राप्त करना
मान लीजिए कि हमें अपने डेटाबेस से सभी पंजीकृत पुस्तकालय सदस्यों की सूची चाहिए। इसके लिए हम नीचे दिखाए गए स्क्रिप्ट का उपयोग करेंगे।
SELECT * FROM `members`;
स्क्रिप्ट को निष्पादित करना MySQL वर्कबेंच से निम्नलिखित परिणाम प्राप्त होते हैं।
| सदस्यता_ संख्या | पूरे नाम | लिंग | जन्म_तिथि | भौतिक_ पता | डाक का पता | संपर्क_नंबर | ईमेल |
|---|---|---|---|---|---|---|---|
| 1 | जेनेट जोन्स | महिला | 21-07-1980 | फर्स्ट स्ट्रीट प्लॉट नं 4 | निजी बैग | 0759 253 542 | janetjones@yagoo.cm |
| 2 | जेनेट स्मिथ जोन्स | महिला | 23-06-1980 | मेलरोज़ 123 | नल | नल | jj@fstreet.com |
| 3 | रॉबर्ट फिल | नर | 12-07-1989 | तीसरी स्ट्रीट 3 | नल | 12345 | rm@tstreet.com |
| 4 | ग्लोरिया विलियम्स | महिला | 14-02-1984 | 2nd स्ट्रीट 23 | नल | नल | नल |
क्वेरी ने मेंबर्स टेबल से सभी पंक्तियाँ और स्तंभ लौटा दिए।
विशिष्ट कॉलम का चयन करना
मान लीजिए कि हमें केवल पूर्ण नाम, लिंग, भौतिक पता और ईमेल फ़ील्ड में ही रुचि है। निम्नलिखित स्क्रिप्ट यही कार्य करती है।
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
स्क्रिप्ट को निष्पादित करना MySQL वर्कबेंच से निम्नलिखित परिणाम प्राप्त होते हैं।
| पूरे नाम | लिंग | भौतिक_पता | ईमेल |
|---|---|---|---|
| जेनेट जोन्स | महिला | फर्स्ट स्ट्रीट प्लॉट नं 4 | janetjones@yagoo.cm |
| जेनेट स्मिथ जोन्स | महिला | मेलरोज़ 123 | jj@fstreet.com |
| रॉबर्ट फिल | नर | तीसरी स्ट्रीट 3 | rm@tstreet.com |
| ग्लोरिया विलियम्स | महिला | 2nd स्ट्रीट 23 | नल |
भावों के साथ फिल्मों की सूची प्राप्त करना
एक्सप्रेशन का उपयोग SELECT स्टेटमेंट में भी किया जा सकता है। मान लीजिए कि हमें फिल्मों की एक सूची चाहिए जिसमें एक फ़ील्ड में शीर्षक और निर्देशक का नाम हो, ब्रैकेट में निर्देशक का नाम हो, और साथ ही फिल्म के रिलीज़ होने का वर्ष भी हो। निम्नलिखित स्क्रिप्ट यही करती है।
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
यहाँ
- Concat() MySQL यह फ़ंक्शन कॉलम के मानों को आपस में जोड़ता है।
- “Concat(`title`, ' (', `director`, ')')” वाली पंक्ति शीर्षक लेती है, उसमें एक शुरुआती ब्रैकेट जोड़ती है जिसके बाद निर्देशक का नाम आता है, और फिर समापन ब्रैकेट जोड़ती है।
- Concat() फ़ंक्शन के अंदर स्ट्रिंग के हिस्सों को अल्पविराम का उपयोग करके अलग किया जाता है।
स्क्रिप्ट को निष्पादित करना MySQL वर्कबेंच निम्नलिखित परिणाम सेट उत्पन्न करता है।
| Concat(`शीर्षक`, ' (', `निर्देशक`, ')') | वर्ष_रिलीज़ |
|---|---|
| पाइरेट्स ऑफ द कैरेबियन 4 (रॉब मार्शल) | 2011 |
| फॉरगेटिंग सारा मार्शल (निकोलस स्टोलर) | 2008 |
| नल | 2008 |
| Code नाम ब्लैक (एडगर जिमज़) | 2010 |
| नल | 2007 |
| नल | 2007 |
| नल | 2007 |
| Honey moonएआरएस (जॉन शुल्त्स) | 2005 |
| नल | 2012 |
नोट: Concat() फ़ंक्शन NULL लौटाता है जब कोई भी आर्गुमेंट NULL होता है, यही कारण है कि ऊपर निर्देशक के बिना फिल्मों में NULL दिखाया गया है।
उपनाम फ़ील्ड नाम
ऊपर दिए गए उदाहरण में फ़ील्ड नाम के रूप में संयोजन कोड दिखाया गया है। परिणाम सेट में अधिक वर्णनात्मक फ़ील्ड नाम का उपयोग करने के लिए, कॉलम उपनाम लागू करें। मूल वाक्य संरचना इस प्रकार है।
SELECT `column_name|value|expression` [AS] `alias_name`;
यहाँ
- “SELECT `column_name|value|expression`” यह एक सामान्य SELECT स्टेटमेंट है, जो कॉलम का नाम, मान या एक्सप्रेशन हो सकता है।
- "[जैसा]" यह उपनाम से पहले आने वाला वैकल्पिक कीवर्ड है।
- “`उपनाम_नाम`” यह वह उपनाम है जो परिणाम सेट में फ़ील्ड नाम के रूप में लौटाया जाता है।
अधिक सार्थक कॉलम नाम के साथ वही क्वेरी:
SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;
हमें निम्नलिखित परिणाम प्राप्त होता है।
| concat | वर्ष_रिलीज़ |
|---|---|
| पाइरेट्स ऑफ द कैरेबियन 4 (रॉब मार्शल) | 2011 |
| फॉरगेटिंग सारा मार्शल (निकोलस स्टोलर) | 2008 |
| नल | 2008 |
| Code नाम ब्लैक (एडगर जिमज़) | 2010 |
| नल | 2007 |
| नल | 2007 |
| नल | 2007 |
| Honey moonएआरएस (जॉन शुल्त्स) | 2005 |
| नल | 2012 |
सदस्यों की सूची में जन्म वर्ष दर्शाना
मान लीजिए कि हमें सभी सदस्यों की एक सूची चाहिए जिसमें सदस्यता संख्या, पूरा नाम और जन्म वर्ष शामिल हो। हम इसके लिए LEFT स्ट्रिंग फ़ंक्शन का उपयोग कर सकते हैं।tracजन्म तिथि वाले फ़ील्ड से जन्म का वर्ष निकालें।
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
यहाँ
- “बाएं(`जन्म_तिथि`,4)” la बायाँ स्ट्रिंग फ़ंक्शन यह जन्मतिथि को पैरामीटर के रूप में स्वीकार करता है और बाईं ओर से केवल 4 अक्षर लौटाता है।
- “AS `year_of_birth`” विश्व का सबसे लोकप्रिय एंव स्तंभ उपनाम नाम हमारे परिणामों में वापस आ गया। AS कीवर्ड वैकल्पिक हैआप इसे छोड़ सकते हैं और क्वेरी फिर भी काम करेगी।
क्वेरी को निष्पादित करना MySQL myflixdb के विरुद्ध वर्कबेंच चलाने पर हमें नीचे दिखाए गए परिणाम प्राप्त होते हैं।
| सदस्यता_संख्या | पूरे नाम | जन्म का साल |
|---|---|---|
| 1 | जेनेट जोन्स | 1980 |
| 2 | जेनेट स्मिथ जोन्स | 1980 |
| 3 | रॉबर्ट फिल | 1989 |
| 4 | ग्लोरिया विलियम्स | 1984 |
हाथ से लिखी गई क्वेरी परिणाम प्राप्त करने का केवल एक तरीका है। वर्कबेंच आपके लिए स्टेटमेंट भी तैयार कर सकता है।
SQL का उपयोग करके MySQL कार्यक्षेत्र
अब हम इसका प्रयोग करने जा रहे हैं MySQL हमारी श्रेणियों की तालिका से सभी फ़ील्ड नामों को प्रदर्शित करने वाली स्क्रिप्ट उत्पन्न करने के लिए वर्कबेंच का उपयोग करें।
1. कैटेगरी टेबल पर राइट-क्लिक करें। "पंक्तियाँ चुनें - सीमा 1000" पर क्लिक करें।
2. MySQL वर्कबेंच स्वचालित रूप से एक SQL क्वेरी बनाता है और उसे एडिटर में पेस्ट कर देता है।
3. क्वेरी के परिणाम संपादक के नीचे ग्रिड में दिखाए जाते हैं।
जैसा कि स्क्रीनशॉट में दिखाया गया है, हमने SELECT स्टेटमेंट खुद नहीं लिखा है। MySQL वर्कबेंच ने इसे हमारे लिए जनरेट किया।
जब हमारे पास पहले से ही विकल्प मौजूद हैं तो SELECT SQL कमांड का उपयोग क्यों करें? MySQL कार्यक्षेत्र?
आप सोच रहे होंगे कि जब SQL SELECT कमांड जैसे टूल मौजूद हैं, तो आपको ये कमांड क्यों सीखनी चाहिए? MySQL वर्कबेंच SQL भाषा के किसी भी ज्ञान के बिना समान परिणाम देता है। यह शॉर्टकट संभव है, लेकिन SELECT कमांड सीखना आपको अधिक देता है लचीलापन और नियंत्रण अपने ऊपर SQL चयन कथन.
MySQL वर्कबेंच “ की श्रेणी में आता हैउदाहरण द्वारा प्रश्नयह "क्यूबीई" टूल है। इसका उद्देश्य SQL स्टेटमेंट को तेजी से उत्पन्न करना और उपयोगकर्ता की उत्पादकता बढ़ाना है।
SQL SELECT कमांड सीखने से आप बना सकते हैं जटिल प्रश्न जिसे क्वेरी बाय एग्जांपल यूटिलिटीज जैसे कि द्वारा आसानी से उत्पन्न नहीं किया जा सकता है। MySQL कार्यक्षेत्र.
उत्पादकता बढ़ाने के लिए, आप ये कर सकते हैं: कोड जनरेट करें MySQL कार्यक्षेत्र, तो अनुकूलित यह करने के लिए अपनी आवश्यकताओं को पूरा करेंयह तभी संभव है जब आप SQL स्टेटमेंट की कार्यप्रणाली को समझ लें।



