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

MySQL फंक्शन्स और प्रोसीजर्स के बीच सबसे महत्वपूर्ण अंतर क्या हैं?


प्रोसीजर और फंक्शन्स के बीच सबसे महत्वपूर्ण अंतर यह है कि उन्हें अलग-अलग तरीके से इनवोक किया जाता है और अलग-अलग उद्देश्यों के लिए। इसके अलावा प्रोसीजर और फंक्शन्स के बीच निम्न अंतर हैं:

  • एक प्रोसीजर कोई मान वापस नहीं करता। इसके बजाय, इसे एक ऑपरेशन करने के लिए CALL स्टेटमेंट के साथ इनवोक किया जाता है जैसे टेबल को संशोधित करना या पुनर्प्राप्त रिकॉर्ड्स को संसाधित करना।

    दूसरी ओर, एक फंक्शन एक एक्सप्रेशन के भीतर इनवोक किया जाता है और कॉलर को सीधे एक एकल मान वापस करता है जिसे एक्सप्रेशन में उपयोग किया जाता है। अर्थात, एक फंक्शन का उपयोग एक्सप्रेशन में उसी तरह किया जाता है जैसे एक स्थिरांक, एक बिल्ट-इन फंक्शन, या एक टेबल कॉलम का संदर्भ।

  • हम एक फंक्शन को CALL स्टेटमेंट के साथ इनवोक नहीं कर सकते। हम एक प्रोसीजर को एक्सप्रेशन में इनवोक नहीं कर सकते।

  • प्रोसीजर और फंक्शन्स के लिए रूटीन निर्माण सिंटैक्स कुछ हद तक भिन्न होता है:

CREATE [DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body

CREATE [DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body

proc_parameter: [ IN | OUT | INOUT ] param_name type
func_parameter: param_name type
type: Any valid MySQL data type
characteristic: COMMENT 'string' | LANGUAGE SQL | [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body: Valid SQL routine statement
  • प्रोसीजर पैरामीटर्स को इनपुट-ओनली, आउटपुट-ओनली, या इनपुट और आउटपुट दोनों के लिए परिभाषित किया जा सकता है। इसका अर्थ है कि एक प्रोसीजर आउटपुट पैरामीटर्स का उपयोग करके कॉलर को मान वापस पास कर सकता है। इन मानों को CALL स्टेटमेंट के बाद आने वाले स्टेटमेंट्स में एक्सेस किया जा सकता है।

    दूसरी ओर, फंक्शन्स में केवल इनपुट पैरामीटर्स होते हैं। परिणामस्वरूप, हालांकि दोनों प्रोसीजर और फंक्शन्स में पैरामीटर्स हो सकते हैं, प्रोसीजर पैरामीटर घोषणा सिंटैक्स फंक्शन्स से भिन्न होता है।

  • फंक्शन्स एक मान वापस करते हैं, इसलिए फंक्शन परिभाषा में रिटर्न मान के डेटा प्रकार को इंगित करने के लिए एक RETURNS क्लॉज होना चाहिए। साथ ही, फंक्शन बॉडी के भीतर कम से कम एक RETURN स्टेटमेंट होना चाहिए जो कॉलर को मान वापस करे।

    दूसरी ओर, प्रोसीजर परिभाषाओं में RETURNS और RETURN प्रकट नहीं होते।


  1. MySQL में BLOB और TEXT डेटाटाइप में क्या अंतर है? MySQL में BLOB और TEXT डेटाटाइप में क्या अंतर है?

    BLOB का मतलब Binary Large Objects होता है और जैसा कि नाम से पता चलता है, इसका उपयोग बाइनरी डेटा स्टोर करने के लिए किया जाता है, जबकि TEXT का उपयोग बड़ी संख्या में स्ट्रिंग्स स्टोर करने के लिए किया जाता है। BLOB का उपयोग बाइनरी डेटा स्टोर करने के लिए किया जा सकता है, यानी हम पिक्चर्स, वीडियो, साउंड

  1. Wi-Fi 6 और 5G नेटवर्क में क्या अंतर है? Wi-Fi 6 और 5G नेटवर्क में क्या अंतर है?

    5G नेटवर्क एक ऐसा विषय है जिस पर बहुत चर्चा हुई है और इसका कार्यान्वयन सोशल नेटवर्क पर बातचीत का विषय बना हुआ है। Wi-Fi 6 को लेकर भी ऐसी ही उम्मीदें हैं, जो एक अलग तकनीक है। Wi-Fi 6 और 5G नेटवर्क के बीच अंतर को पहचानना सीखें। Wi-Fi 6 क्या है? Wi-Fi 6, IEEE 802.11ax मानक पर आधारित एक नया प्रमाणीकरण ह

  1. विंडोज 10 बनाम विंडोज 11: प्रमुख अंतर और आपके लिए कौन सा सही है विंडोज 10 बनाम विंडोज 11: प्रमुख अंतर और आपके लिए कौन सा सही है

    माइक्रोसॉफ्ट ने कई नई सुविधाओं और सुधारों के साथ नवीनतम विंडोज 11 जारी किया है। और बहुत सारे पैच और अपडेट के साथ, विंडोज 10 अब नए विंडोज 11 की तुलना में अधिक स्थिर OS है। कंपनी के अनुसार, यह 2025 के बाद विंडोज 10 पर अपना समर्थन बंद कर देगा, इसलिए हमारे पास यह तय करने के लिए पर्याप्त समय है कि विंडोज