Stored Procedures In MySQL In Hindi

📔 : MySQL 🔗

normally किसी table से data fetch करने के लिए हम query run करते हैं , और जितनी बार हम data fetch करते हैं query भी उतनी बार run करनी पड़ती है।

लेकिन MySQL हमें Stored Procedures के रूप एक facility provide करता है कि है हम एक particular query को एक function के रूप में define कर दें और जब जरूरत हो उस function को call कर लें।

MySQL Stored Procedures

MySQL में Stored Procedures एक तरह से functions होते हैं , जिसमे हम किसी query को define करके उसे बार बार call करते हैं ताकि वो query हमें हर बार न लिखनी पड़े।

जैसे नीचे दिए गए users table से data fetch करने के लिए कुछ इस तरह से query run की गयी है -

SELECT name, mobileno, address, salary FROM users ORDER BY name ASC;

Output

+------------+------------+---------------+--------+
| name       | mobileno   | address       | salary |
+------------+------------+---------------+--------+
| John Quill | 9100021334 | India         |    200 |
| Rohan      | NULL       | ROhan Address |  34231 |
| Tom Cruise | 9043907889 | India         |   1200 |
| Wick       | NULL       | Address       |    231 |
+------------+------------+---------------+--------+

अब जितनी बार भी मुझे इस तरह से result चाहिए उतनी बार मुझे ये query लिखनी पड़ेगी , जो कि काफी काफी boring और time wasting भी है। इससे अच्छा है हम एक procedure बना लेंगे और उसे call करते रहेंगे जब भी जरूरत पड़ेगी।

MySQL Create Procedure

procedure बनाने के लिए CREATE PROCEDURE syntax का use use किया जाता है , जैसे कि नीचे example में दिखाया गया है -

DELIMITER $$ CREATE PROCEDURE get_users() BEGIN SELECT name, mobileno, address, salary FROM users ORDER BY name ASC; END$$ DELIMITER;

Output

Query OK, 0 rows affected (0.073 sec)

Query OK है , means procedure create हो चुका है।

MySQL Procedure Example

अब जब किसी procedure को call करना हो तो CALL procedure_name() syntax follow कर सकते हैं।

For Example

CALL get_users();

Output

+------------+------------+---------------+--------+
| name       | mobileno   | address       | salary |
+------------+------------+---------------+--------+
| John Quill | 9100021334 | India         |    200 |
| Rohan      | NULL       | ROhan Address |  34231 |
| Tom Cruise | 9043907889 | India         |   1200 |
| Wick       | NULL       | Address       |    231 |
+------------+------------+---------------+--------+

Output में आप देख सकते हैं कि same result हमें मिल रहा है जो query run करने से मिल रहा था।

About Stored Procedure

  1. query को execute करने के लिए MySQL database server में ही query को save करता है।

  2. जब पहली बार किसी procedure को call किया जाता है तो , MySQL सबसे पहले database catalog में उस procedure को check करता है फिर procedure query को compile करके cache memory में रखता है इसके बाद execute करके result return करता है।

  3. अब अगर same session में फिर से उसी procedure को call करते हो तो MySQL इस बार cache memory से compiled query को execute करके result return करता है।

  4. Procedure में आप control flow statements जैसे If , Else भी use कर सकते हैं।

  5. अब हालाँकि procedure , functions की तरह होते हैं तो किसी procedure में normally किसी programming language की तरह ही parameters भी define किये जा सकते हैं और call करते time values pass की जा सकती हैं।

MySQL stored procedures advantages

stored procedures use करने के कई advantages हैं -

  1. इसका use करके आप applications और MySQL Server के बीच Network Traffic को reduce करते हैं , क्योंकि एक query सारे statements की जगह एक compiled query run होती है।

  2. इससे database को और secure करने में help मिलती है क्योंकि बिना किसी table को permission दिए आप सिर्फ procedure को permission देकर data manage कर सकते हैं।

MySQL stored procedures Disadvantages

  1. सबसे बड़ा disadvantage है Resource Usage का , जितने ज्यादा procedure होंगे resources भी उतने ज्यादा use होंगे जिससे आपके database server पर load बढ़ने लगेगा।

  2. दूसरा stored procedures को Debug करना बहुत मुश्किल है।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook