SQL में Comments
SQL में Comments क्या हैं?
एक SQL query सही result दे सकती है, फिर भी कुछ महीनों बाद उसका कारण समझना कठिन हो सकता है। Developer को यह याद रह सकता है कि query क्या करती है, लेकिन यह भूल सकता है कि कोई विशेष condition क्यों लगाई गई थी। SQL comment इसी समस्या का समाधान है। यह मनुष्य के लिए explanation सुरक्षित रखता है, जबकि सामान्य execution के समय database इसे अनदेखा करता है।
SQL comments वे व्याख्यात्मक notes हैं जो script या query के भीतर लिखे जाते हैं। ये code को समझने, जाँचने और सँभालने में सहायता करते हैं, लेकिन query के result का भाग नहीं बनते।
अच्छा comment query का उद्देश्य, business rule या किसी असामान्य निर्णय का कारण बताता है। उदाहरण के लिए, -- परीक्षा से पहले विद्यालय छोड़ चुके विद्यार्थियों को हटाएँ उपयोगी है, क्योंकि इससे filter लगाने का कारण स्पष्ट होता है। केवल -- rows चुनें लिखना कोई विशेष जानकारी नहीं देता।
Comments का उपयोग database scripts को समझाने, testing के समय किसी statement को अस्थायी रूप से रोकने, बड़े script को भागों में बाँटने और UPDATE या DELETE query से पहले सावधानी लिखने के लिए किया जाता है।
MySQL में Comments लिखने के तीन तरीके
MySQL तीन उपयोगी comment forms स्वीकार करता है। पहले दो वर्तमान पंक्ति के अंत तक चलते हैं; तीसरा एक पंक्ति के छोटे भाग या अनेक पंक्तियों को comment बना सकता है।
1. दो hyphen: --
-- केवल active students दिखाएँ SELECT roll_no, name FROM students WHERE status = 'Active';
MySQL का महत्त्वपूर्ण नियम: दोनों hyphen के बाद whitespace दें। -- explanation सही है, जबकि --explanation सुरक्षित नहीं है। यह नियम credit--1 जैसे arithmetic expression को गलती से comment मानने से रोकता है।
2. Hash sign: #
# कक्षा XII की मासिक शुल्क रिपोर्ट SELECT student_id, amount FROM fee_payments WHERE payment_month = 'August';
Hash form MySQL में सुविधाजनक है, लेकिन यह standard SQL का भाग नहीं है। यदि script को भविष्य में PostgreSQL, SQL Server, Oracle या किसी अन्य database में चलाना हो, तो -- का प्रयोग बेहतर है।
3. Block comment: /* ... */
/* वार्षिक परीक्षा परिणाम रिपोर्ट कक्षा IX से XII के लिए तैयार 14 August 2026 को जाँच की गई */ SELECT class_name, AVG(percentage) AS class_average FROM results GROUP BY class_name;
Block comment /* से आरंभ और */ पर समाप्त होता है। यह file header, विस्तृत explanation या छोटे inline note के लिए उपयुक्त है। एक block comment के भीतर दूसरा block comment न लिखें; पहला closing marker comment को अपेक्षा से पहले समाप्त कर सकता है।
उदाहरण और वास्तविक परिणाम
नीचे एक छोटी school table प्रयोग की गई है, ताकि प्रत्येक query को चलाकर उसका result जाँचा जा सके।
CREATE TABLE students (
roll_no INT PRIMARY KEY,
name VARCHAR(50),
class_name VARCHAR(10),
status VARCHAR(10)
);
INSERT INTO students VALUES
(1, 'Aarav', 'X-A', 'Active'),
(2, 'Meera', 'X-A', 'Active'),
(3, 'Kabir', 'X-B', 'Inactive');Query OK, 3 rows affected
उदाहरण 1: अलग पंक्ति में comment
-- केवल विद्यालय में पढ़ रहे विद्यार्थी report में आएँ SELECT roll_no, name FROM students WHERE status = 'Active' ORDER BY roll_no;
roll_no | name
1 | Aarav
2 | Meera
-- से आरंभ होने वाला वाक्य database अनदेखा कर देता है। Kabir को result से comment नहीं, बल्कि WHERE condition हटाती है।
उदाहरण 2: Inline block comment
SELECT name, /* ID card पर दिखाया जाएगा */ class_name FROM students WHERE roll_no = 2;
name | class_name
Meera | X-A
/* ... */ SQL tokens के बीच आ सकता है। इसलिए यह बाकी statement को रोके बिना किसी एक column का उद्देश्य स्पष्ट करता है।
उदाहरण 3: एक condition को अस्थायी रूप से रोकना
SELECT roll_no, name, class_name FROM students WHERE status = 'Active' /* AND class_name = 'X-A' */ ORDER BY roll_no;
roll_no | name | class_name
1 | Aarav | X-A
2 | Meera | X-A
यहाँ class filter अस्थायी रूप से अनदेखा होता है, जबकि active-status filter चलता रहता है। Debugging में यह उपयोगी है, पर production release से पहले पुराने commented-out code को हटा देना चाहिए।
Comment Syntax की तुलना
| Syntax | सीमा | अन्य databases में उपयोग | सबसे अच्छा उपयोग |
|---|---|---|---|
-- comment | पंक्ति के अंत तक | Standard SQL | छोटी explanation और safety note |
# comment | पंक्ति के अंत तक | केवल MySQL | MySQL-only script और command line |
/* comment */ | एक या अनेक पंक्तियाँ | व्यापक support | Header, विस्तृत note और inline explanation |
MySQL /*!80000 SQL_CODE */ जैसे version-specific executable comments को भी पहचानता है। सामान्य comments के विपरीत, सही MySQL version इनके भीतर का SQL चला सकता है। शुरुआती विद्यार्थी इसे साधारण documentation comment न समझें।
व्यावहारिक उपयोग और अच्छी आदतें
- कारण समझाएँ: कोई filter, join या calculation क्यों आवश्यक है, यह लिखें—विशेषकर जब कारण तुरंत स्पष्ट न हो।
- मान्यताएँ लिखें: बताएँ कि marks में absent विद्यार्थी शामिल हैं या नहीं, fee में late charge जुड़ा है या dates किस time zone में हैं।
- Safe execution बताएँ: data बदलने से पहले matching
SELECTचलाकर target rows जाँचने का note लिखें। - लंबे script को बाँटें:
-- 1. Tables बनाएँऔर-- 2. Master data डालेंजैसे स्पष्ट headings navigation आसान बनाते हैं। - Comments updated रखें: पुराना और गलत comment, बिना comment से अधिक हानिकारक हो सकता है।
- Secrets न लिखें: password, API key और विद्यार्थियों का निजी data comments में न रखें; script share या Git में commit हो सकता है।
Data बदलने वाली query लिखते समय Safe UPDATE and DELETE Practices में दिए safeguards भी अपनाएँ।
MySQL Comments में सामान्य गलतियाँ
--के बाद whitespace न देना:--wrongMySQL comment आरंभ नहीं कर सकता।-- सही explanationलिखें।- Line comment को अगली पंक्ति तक मान लेना:
--और#newline पर समाप्त हो जाते हैं। हर पंक्ति पर marker लगाएँ या block comment प्रयोग करें। */भूल जाना: अधूरा block comment बाकी script को छिपा सकता है या syntax error दे सकता है।- Block comments को nest करना: MySQL मनचाहे nested
/* ... */comments को सुरक्षित रूप से support नहीं करता। - Portable SQL में
#लिखना: दूसरा DBMS file को reject कर सकता है। Standard double-hyphen form चुनें। - Code को ही दोहराना: प्रत्येक SQL keyword का अर्थ लिखने के स्थान पर rule, decision या risk समझाएँ।
अभ्यास प्रश्न
books नाम की table बनाएँ। एक SELECT query में standard single-line comment, एक inline block comment और multi-line file header लिखें। प्रत्येक comment हटाकर statement फिर चलाएँ और पुष्टि करें कि output नहीं बदलता।
- Report से inactive students हटाने का कारण बताते हुए single-line comment लिखें।
AND city = 'Khurja'को delete किए बिना अस्थायी रूप से रोकें।- समझाएँ कि
--commentMySQL में असुरक्षित, पर-- commentसही क्यों है। - अलग-अलग database systems में चलने वाले script के लिए कौन-सा comment form चुनेंगे और क्यों?
त्वरित सारांश
- SQL comments query को समझाते हैं और सामान्य execution में अनदेखे किए जाते हैं।
--portable single-line syntax है; MySQL में hyphens के बाद whitespace अवश्य दें।#MySQL का विशेष single-line comment है।/* ... */inline या multi-line block comment बनाता है।- उपयोगी comments उद्देश्य, नियम और खतरे समझाते हैं; वे स्पष्ट SQL को दोहराते नहीं हैं।
- Comments को सही और updated रखें; उनमें password या sensitive data कभी न लिखें।
Official संदर्भ
- Comments — MySQL 8.4 Reference Manual
- Comments में optimizer hints — MySQL 8.4 Reference Manual
- MySQL 8.4 Reference Manual
References 14 August 2026 को review किए गए। Queries, outputs और explanations original teaching material हैं।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
MySQL में comment कैसे लिखते हैं?
-- के बाद खाली स्थान दें, MySQL के विशेष single-line comment के लिए # लिखें, और एक या अनेक पंक्तियों के लिए /* ... */ का प्रयोग करें।MySQL में दो hyphen के बाद खाली स्थान क्यों आवश्यक है?
-- तभी comment आरंभ करता है जब उसके बाद whitespace या control character हो। इसलिए --text के स्थान पर -- text लिखना सुरक्षित है।MySQL में -- और # comments में क्या अंतर है?
-- मानक SQL है और अधिक databases में चलता है, जबकि # MySQL का विशेष तरीका है।क्या SQL block comment अनेक पंक्तियों में लिखा जा सकता है?
/* और */ के बीच लिखा पाठ block comment होता है और अनेक पंक्तियों तक फैल सकता है। एक block comment के भीतर दूसरा block comment न लिखें।