MySQL उदाहरण सहित SELECT कथन

⚡ स्मार्ट सारांश

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

  • 🔎 मूल मकसद: SELECT कमांड प्रॉम्प्ट या PHP से, किसी मानदंड से मेल खाने वाली संग्रहीत पंक्तियों को प्राप्त करता है। Python, और अन्य भाषाएँ।
  • 🧩 वाक्यविन्यास क्रम: SELECT, FROM, WHERE, GROUP BY, HAVING और ORDER BY को उसी निश्चित क्रम में प्रकट होना चाहिए।
  • स्टार शॉर्टकट: SELECT * FROM `members`; प्रत्येक कॉलम को लौटाता है, जबकि कॉलम को स्पष्ट रूप से नाम देने से परिणाम सेट छोटे और तेज़ रहते हैं।
  • 🔗 भाव: Concat() कॉलम के मानों को जोड़ता है, और LEFT() वर्णों को हटाता है, इसलिए परिकलित फ़ील्ड सीधे परिणाम सेट में दिखाई देते हैं।
  • कॉलम उपनाम: वैकल्पिक AS कीवर्ड किसी भी अभिव्यक्ति का नाम बदल देता है, और Concat(`title`) जैसे अपठनीय हेडर को स्पष्ट लेबल से बदल देता है।
  • वर्कबेंच की तुलना: MySQL वर्कबेंच क्वेरी को दृश्य रूप से उत्पन्न करता है, फिर भी जटिल और सटीक परिणाम प्राप्त करने के लिए हाथ से लिखे गए SELECT कथन आवश्यक रहते हैं।

SELECT क्वेरी क्या है? MySQL?

SELECT क्वेरी इसका उपयोग डेटा प्राप्त करने के लिए किया जाता है। MySQL डेटाबेस। डेटाबेस बाद में पुनः प्राप्ति के लिए डेटा संग्रहीत करते हैं। MySQL SELECT क्वेरी डेटाबेस टेबल से दी गई शर्तों से मेल खाने वाली एक या अधिक पंक्तियों को लौटाने के लिए उपयोग की जाती है। SELECT क्वेरी का उपयोग PHP या Ruby जैसी स्क्रिप्टिंग भाषा में किया जा सकता है, या आप इसे कमांड प्रॉम्प्ट से भी चला सकते हैं।

SELECT क्वेरी में MySQL

क्योंकि 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. क्वेरी के परिणाम संपादक के नीचे ग्रिड में दिखाए जाते हैं।

SQL का उपयोग MySQL कार्यक्षेत्र

जैसा कि स्क्रीनशॉट में दिखाया गया है, हमने SELECT स्टेटमेंट खुद नहीं लिखा है। MySQL वर्कबेंच ने इसे हमारे लिए जनरेट किया।

जब हमारे पास पहले से ही विकल्प मौजूद हैं तो SELECT SQL कमांड का उपयोग क्यों करें? MySQL कार्यक्षेत्र?

आप सोच रहे होंगे कि जब SQL SELECT कमांड जैसे टूल मौजूद हैं, तो आपको ये कमांड क्यों सीखनी चाहिए? MySQL वर्कबेंच SQL भाषा के किसी भी ज्ञान के बिना समान परिणाम देता है। यह शॉर्टकट संभव है, लेकिन SELECT कमांड सीखना आपको अधिक देता है लचीलापन और नियंत्रण अपने ऊपर SQL चयन कथन.

MySQL वर्कबेंच “ की श्रेणी में आता हैउदाहरण द्वारा प्रश्नयह "क्यूबीई" टूल है। इसका उद्देश्य SQL स्टेटमेंट को तेजी से उत्पन्न करना और उपयोगकर्ता की उत्पादकता बढ़ाना है।

SQL SELECT कमांड सीखने से आप बना सकते हैं जटिल प्रश्न जिसे क्वेरी बाय एग्जांपल यूटिलिटीज जैसे कि द्वारा आसानी से उत्पन्न नहीं किया जा सकता है। MySQL कार्यक्षेत्र.

उत्पादकता बढ़ाने के लिए, आप ये कर सकते हैं: कोड जनरेट करें MySQL कार्यक्षेत्र, तो अनुकूलित यह करने के लिए अपनी आवश्यकताओं को पूरा करेंयह तभी संभव है जब आप SQL स्टेटमेंट की कार्यप्रणाली को समझ लें।

समझ MySQL चयन कथन

अक्सर पूछे जाने वाले प्रश्न

आमतौर पर हाँ। SELECT * हर कॉलम को पढ़ता है, जिसमें बड़े टेक्स्ट और ऐसे ब्लब फ़ील्ड भी शामिल हैं जिनकी आपको ज़रूरत नहीं हो सकती है, और यह कवरिंग इंडेक्स को ब्लॉक कर देता है। कॉलम को नाम देने से परिणाम सेट छोटा रहता है और क्वेरी तेज़ होती है।

SELECT और FROM जैसे कीवर्ड केस सेंसिटिव नहीं होते हैं। स्ट्रिंग तुलना कॉलम के कोलेशन का अनुसरण करती है, इसलिए utf8mb4_0900_ai_ci जैसे केस-इनसेसिटिव कोलेशन "Janet" और "janet" को समान मानते हैं।

इंडेक्स का न होना आमतौर पर इसका कारण होता है। यह देखने के लिए कि क्या कोई इंडेक्स मौजूद है, क्वेरी से पहले EXPLAIN चलाएँ। MySQL यह पूरी टेबल को स्कैन करता है, फिर फ़िल्टर किए गए या जॉइन किए गए कॉलम को इंडेक्स करता है और केवल वही पंक्तियाँ लौटाता है जिनकी आपको आवश्यकता है।

जी हां। टेक्स्ट-टू-एसक्यूएल सहायक आपके स्कीमा को जानने के बाद एक साधारण अनुरोध को SELECT स्टेटमेंट में परिवर्तित कर देते हैं। Revउत्पन्न किए गए जॉइन और फ़िल्टर की जाँच करें, क्योंकि एक एआई मॉडल ऐसे कॉलम नाम बना सकता है जो मौजूद नहीं हैं।

नहीं। एआई क्वेरी को जल्दी तैयार कर लेता है, लेकिन फिर भी आपको लॉजिक, जॉइन और परफॉर्मेंस की जांच करनी होगी। MySQL कार्यक्षेत्रSELECT फ़ंक्शन को जानने से ही आप उत्पादन तक पहुँचने से पहले ही गलत परिणाम को पहचान सकते हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: