Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL स्केलर सबक्वेरी द्वारा किस प्रकार का आउटपुट दिया जाता है? MySQL क्वेरी के साथ इसका उपयोग करने पर क्या प्रतिबंध हैं?


MySQL स्केलर सबक्वेरी एक पंक्ति से ठीक एक कॉलम मान देता है और हम इसका उपयोग कर सकते हैं जहां एक एकल कॉलम की अनुमति है। निम्नलिखित मामले हैं जब अदिश उपश्रेणियाँ एक पंक्ति के अलावा अन्य मान लौटाती हैं -

Case1 - जब यह 0 पंक्तियाँ लौटाता है

यदि सबक्वेरी 0 पंक्तियाँ लौटाती है तो स्केलर सबक्वेरी एक्सप्रेशन का मान NULL होगा।

Case2 − जब यह एक से अधिक पंक्तियाँ लौटाता है

यदि सबक्वेरी एक से अधिक पंक्ति लौटाती है, तो स्केलर सबक्वेरी की संपत्ति के कारण, MySQL एक त्रुटि देता है।

इसे एक उदाहरण की सहायता से समझा जा सकता है जो निम्न तालिका से डेटा का उपयोग करता है -

mysql> ग्राहकों में से * चुनें;+---------------+----------+| Customer_Id | नाम |+---------------+----------+| 1 | राहुल || 2 | यशपाल || 3 | गौरव || 4 | वीरेंदर |+---------------+----------+4 पंक्तियों में सेट (0.00 सेकंड)mysql> आरक्षण से * चुनें; +------ +---------------+---------------+| आईडी | Customer_id | दिन |+------+-------------+-----------+| 1 | 1 | 2017-12-30 || 2 | 2 | 2017-12-28 || 3 | 2 | 2017-12-29 || 4 | 1 | 2017-12-25 || 5 | 3 | 2017-12-26 |+----------+-------------+---------------+5 पंक्तियाँ सेट में (0.00 सेकंड) 

अब, निम्न क्वेरी एक पंक्ति के लिए ठीक एक कॉलम मान लौटाएगी -

mysql> ग्राहकों से नाम चुनें जहां ग्राहक_आईडी =(आरक्षण से ग्राहक_आईडी चुनें जहां आईडी =3);+---------+| नाम |+------------+| यशपाल |+-----------+1 पंक्ति में सेट (0.00 सेकंड)

अब, मान लें कि यदि सबक्वेरी 0 रो देता है तो इसका मतलब है कि स्केलर सबक्वेरी एक्सप्रेशन का मान NULL है। यह निम्नलिखित क्वेरी में दिखाया गया है -

mysql> ग्राहकों से नाम चुनें जहां ग्राहक_आईडी =(आरक्षण से ग्राहक_आईडी चुनें जहां आईडी =10);खाली सेट (0.00 सेकंड)

उपरोक्त परिणाम सेट से हम देख सकते हैं कि MySQL खाली सेट यानी 0 पंक्तियों को लौटाता है क्योंकि स्केलर सबक्वेरी एक्सप्रेशन का मान यदि NULL (कोई आईडी जो 10 के बराबर नहीं है)।

MySQL क्वेरी के साथ स्केलर सबक्वेरी का उपयोग करने में प्रतिबंध यह है कि हम एक स्केलर सबक्वेरी का उपयोग स्टेटमेंट्स के साथ कर सकते हैं जो केवल शाब्दिक मूल्य की अनुमति देता है। उदाहरण के लिए, जैसा कि हम जानते हैं कि LIMIT को शाब्दिक पूर्णांक तर्कों की आवश्यकता होती है, इसलिए हम इन मानों की आपूर्ति के लिए अदिश उपश्रेणियों का उपयोग नहीं कर सकते।


  1. MySQL क्वेरी का उपयोग करके 'ए' या 'बी' या 'सी' अक्षर से शुरू होने वाले सभी नाम खोजें?

    ए या बी या सी से शुरू होने वाले सभी नामों को खोजने के लिए आपको LIKE with OR ऑपरेटर का उपयोग करना होगा। वाक्य रचना इस प्रकार है: चुनें *अपनेटेबलनाम से जहां आपका कॉलमनाम ए% जैसा है या आपका कॉलमनाम बी% जैसा है या आपका कॉलमनाम सी% जैसा है; उपरोक्त क्वेरी उन सभी नामों को ढूंढती है जो केवल ए या बी या सी

  1. जावा JDBC का उपयोग करके MySQL के विरुद्ध "गिनती" क्वेरी का रिटर्न प्रकार क्या है?

    वापसी प्रकार की गिनती लंबी है। जावा स्टेटमेंट इस प्रकार है rs.next();long result=rs.getLong(anyAliasName); सबसे पहले, हमारे सैंपल डेटाबेस टेस्ट3 में कुछ रिकॉर्ड्स के साथ एक टेबल बनाएं। तालिका बनाने की क्वेरी इस प्रकार है );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.60 सेकंड) इंसर्ट कमांड का उपयोग करके ट

  1. MySQL में LIKE का उपयोग करके किसी विशेष वर्ण से शुरू होने वाले नाम प्राप्त करें

    किसी विशेष वर्ण से नाम शुरू करने के लिए, आपको LIKE का उपयोग करना होगा। आइए पहले एक टेबल बनाएं: टेबल बनाएं DemoTable(StudentFirstName varchar(20));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.01 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालने के लिए क्वेरी निम्नलिखित है: डेमोटेबल मानों में डाल