Free tutorials & notes in Hindi & English · Clean code examples · Mobile friendly learning
MySQL + SQL · Lesson 42

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: --

MySQL – मानक single-line comment
-- केवल active students दिखाएँ
SELECT roll_no, name
FROM students
WHERE status = 'Active';

MySQL का महत्त्वपूर्ण नियम: दोनों hyphen के बाद whitespace दें। -- explanation सही है, जबकि --explanation सुरक्षित नहीं है। यह नियम credit--1 जैसे arithmetic expression को गलती से comment मानने से रोकता है।

2. Hash sign: #

MySQL – Hash comment
# कक्षा 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: /* ... */

MySQL – Multi-line 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 जाँचा जा सके।

MySQL – Sample data
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');
Result:
Query OK, 3 rows affected

उदाहरण 1: अलग पंक्ति में comment

MySQL – SELECT के साथ comment
-- केवल विद्यालय में पढ़ रहे विद्यार्थी report में आएँ
SELECT roll_no, name
FROM students
WHERE status = 'Active'
ORDER BY roll_no;
Result:
roll_no | name
1 | Aarav
2 | Meera

-- से आरंभ होने वाला वाक्य database अनदेखा कर देता है। Kabir को result से comment नहीं, बल्कि WHERE condition हटाती है।

उदाहरण 2: Inline block comment

MySQL – Inline comment
SELECT name, /* ID card पर दिखाया जाएगा */ class_name
FROM students
WHERE roll_no = 2;
Result:
name | class_name
Meera | X-A

/* ... */ SQL tokens के बीच आ सकता है। इसलिए यह बाकी statement को रोके बिना किसी एक column का उद्देश्य स्पष्ट करता है।

उदाहरण 3: एक condition को अस्थायी रूप से रोकना

MySQL – Filter की testing
SELECT roll_no, name, class_name
FROM students
WHERE status = 'Active'
/* AND class_name = 'X-A' */
ORDER BY roll_no;
Result:
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पंक्ति के अंत तककेवल MySQLMySQL-only script और command line
/* comment */एक या अनेक पंक्तियाँव्यापक supportHeader, विस्तृत note और inline explanation
⚠️ MySQL का advanced अपवाद

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 न देना: --wrong MySQL 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 नहीं बदलता।

  1. Report से inactive students हटाने का कारण बताते हुए single-line comment लिखें।
  2. AND city = 'Khurja' को delete किए बिना अस्थायी रूप से रोकें।
  3. समझाएँ कि --comment MySQL में असुरक्षित, पर -- comment सही क्यों है।
  4. अलग-अलग 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 संदर्भ

References 14 August 2026 को review किए गए। Queries, outputs और explanations original teaching material हैं।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

MySQL में comment कैसे लिखते हैं?
मानक single-line comment के लिए -- के बाद खाली स्थान दें, MySQL के विशेष single-line comment के लिए # लिखें, और एक या अनेक पंक्तियों के लिए /* ... */ का प्रयोग करें।
MySQL में दो hyphen के बाद खाली स्थान क्यों आवश्यक है?
MySQL में -- तभी comment आरंभ करता है जब उसके बाद whitespace या control character हो। इसलिए --text के स्थान पर -- text लिखना सुरक्षित है।
MySQL में -- और # comments में क्या अंतर है?
MySQL में दोनों वर्तमान पंक्ति के अंत तक comment बनाते हैं। -- मानक SQL है और अधिक databases में चलता है, जबकि # MySQL का विशेष तरीका है।
क्या SQL block comment अनेक पंक्तियों में लिखा जा सकता है?
हाँ। /* और */ के बीच लिखा पाठ block comment होता है और अनेक पंक्तियों तक फैल सकता है। एक block comment के भीतर दूसरा block comment न लिखें।
क्या SQL comments query के result को बदलते हैं?
सामान्य comments को SQL parser अनदेखा करता है, इसलिए वे result नहीं बदलते। उनका उद्देश्य query का कारण, नियम और सावधानी समझाना है। MySQL executable comments एक advanced अपवाद हैं।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.