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

MySQL में सिंपल फंक्शन (CREATE FUNCTION) कैसे बनाएं: पूर्ण उदाहरण

MySQL में यूजर-डिफाइंड फंक्शन (UDF) बनाना: CREATE FUNCTION सिंटैक्स और उदाहरण

सिंटैक्स:

DELIMITER //
DROP FUNCTION IF EXISTS yourFunctionName;
CREATE FUNCTION yourFunctionName(Parameter1 type, ...) RETURNS return_type
BEGIN
    -- वेरिएबल घोषित करें
    -- SQL स्टेटमेंट्स
    RETURN value;
END //
DELIMITER ;

महत्वपूर्ण: लॉग बिन ट्रस्ट सेटिंग

MySQL में फंक्शन बनाने के लिए (बाइनरी लॉगिंग सक्षम होने पर):

SET GLOBAL log_bin_trust_function_creators = 1;

व्यावहारिक उदाहरण: ID से नाम खोजने वाला फंक्शन

1. टेबल बनाएं और डेटा डालें:

mysql> CREATE TABLE ViewDemo (Id INT, Name VARCHAR(200), Age INT);
mysql> INSERT INTO ViewDemo VALUES(1,'John',23);
mysql> INSERT INTO ViewDemo VALUES(2,'Sam',24);

2. फंक्शन बनाएं:

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> DROP FUNCTION IF EXISTS searchRecord;
mysql> CREATE FUNCTION searchRecord(yourId INT) RETURNS CHAR(100)
    -> BEGIN
    -> DECLARE Name1 CHAR(100) DEFAULT 'No Name Found For This Id';
    -> SELECT Name INTO Name1 FROM ViewDemo WHERE Id = yourId;
    -> RETURN Name1;
    -> END //
Query OK, 0 rows affected (0.33 sec)
mysql> DELIMITER ;

3. फंक्शन टेस्ट करें:

केस 1: मौजूदा ID (2)

mysql> SELECT searchRecord(2) AS Found;
+-------+ 
| Found | 
+-------+ 
| Sam   | 
+-------+ 
1 row in set (0.00 sec)

केस 2: गैर-मौजूद ID (100)

mysql> SELECT searchRecord(100) AS Found;
+---------------------------+ 
| Found                     | 
+---------------------------+ 
| No Name Found For This Id | 
+---------------------------+ 
1 row in set (0.00 sec)

फंक्शन के प्रकार:

प्रकारविवरणउदाहरण
स्केलर फंक्शनएकल मान लौटाता हैऊपर का उदाहरण
टेबल-वैल्यूड फंक्शनMySQL में समर्थित नहीं (SQL Server में है)—
एग्रीगेट फंक्शनउपयोगकर्ता-परिभाषित एग्रीगेट नहीं बना सकते—

फंक्शन vs स्टोर्ड प्रोसीजर:

विशेषताफंक्शनस्टोर्ड प्रोसीजर
RETURN मानआवश्यक (एक)वैकल्पिक (OUT पैरामीटर)
SELECT में उपयोगहांनहीं (CALL से)
ट्रांजैक्शननहींहां
टेबल बदलनानहीं (केवल पढ़ें)हां

सर्वोत्तम अभ्यास:

  • फंक्शन नाम में स्पेस न रखें
  • डिटरमिनिस्टिक फंक्शन के लिए DETERMINISTIC कीवर्ड जोड़ें (प्रदर्शन)
  • READS SQL DATA या NO SQL विशेषता घोषित करें
  • जटिल लॉजिक के लिए स्टोर्ड प्रोसीजर प्राथमिकता दें
CREATE FUNCTION func_name(...) RETURNS type
DETERMINISTIC READS SQL DATA
BEGIN ... END
  1. कमांड लाइन में MySQL डेटाबेस कैसे बनाएं? कमांड लाइन में MySQL डेटाबेस कैसे बनाएं?

    सबसे पहले, आपको कमांड प्रॉम्प्ट खोलना होगा। आप शॉर्टकट Windows+R की का उपयोग करके खोल सकते हैं। स्क्रीनशॉट इस प्रकार है: अब CMD टाइप करें और OK बटन दबाएं: अब निम्न कमांड प्रॉम्प्ट दिखाई देगा: अब MySQL bin डायरेक्टरी तक पहुंचें। स्क्रीनशॉट इस प्रकार है: कमांड लाइन में MySQL चलाकर डेटाबेस बनाने का

  1. - MySQL व्यू कैसे बनाएं?

    MySQL व्यू बनाने के लिए, नीचे दिए गए सिंटैक्स में CREATE VIEW का उपयोग करें: create view yourViewName as select * from yourTableName; आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1802 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमा

  1. - MySQL सीक्वेंस कैसे बनाएं?

    MySQL में सीक्वेंस क्या है? MySQL में, एक सीक्वेंस इंटीजर्स की एक सूची को संदर्भित करता है जो आरोही क्रम में 1 से शुरू होकर या 0 से यदि निर्दिष्ट किया गया हो, उत्पन्न होती है। कई एप्लिकेशन को सीक्वेंस की आवश्यकता होती है जिनका उपयोग विशेष रूप से पहचान के लिए अद्वितीय संख्या उत्पन्न करने के लिए किया