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

SQL में Comparison और Logical Operators

Operators क्यों जरूरी हैं

Operators stored values को decisions में बदलते हैं। WHERE condition, JOIN condition, CHECK constraint और CASE expression सभी सही comparison तथा logical grouping पर depend करते हैं। Query syntax सही होते हुए भी गलत students लौटा सकती है यदि logic गलत group हुआ हो।

Common learning data: students में Aarav (X-A, 86.50, Active), Meera (X-A, 91.00, Active), Kabir (X-B, 74.00, Inactive) और Sana (X-B, 88.50, Active) हैं।
SELECT full_name, marks
FROM students
WHERE marks >= 85
ORDER BY marks DESC;
Result Meera | 91.00 Sana | 88.50 Aarav | 86.50

Comparison Operators

Operatorअर्थExample
=बराबरstatus = 'Active'
<>, !=बराबर नहींclass_name <> 'X-A'
>, >=बड़ा, कम से कमmarks >= 80
<, <=छोटा, अधिकतमmarks < 75
<=>MySQL NULL-safe equalitymarks <=> NULL

Compatible types compare करें। Quoted numeric strings implicit conversion कराके dirty data छिपा सकती हैं। Marks DECIMAL, dates DATE/TIMESTAMP में रखें और matching values से compare करें।

AND, OR और NOT

SELECT full_name, class_name, marks
FROM students
WHERE status = 'Active'
  AND (class_name = 'X-A' OR marks >= 90)
ORDER BY student_id;
Result Aarav | X-A | 86.50 Meera | X-A | 91.00
ABA AND BA OR B
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
FALSETRUEFALSETRUE
FALSEFALSEFALSEFALSE

NOT condition उलटता है, लेकिन positive form अधिक clear होता है: status = 'Inactive', NOT status = 'Active' से आसान है।

Precedence और Parentheses

MySQL comparison operators, फिर NOT, फिर AND और अंत में OR evaluate करता है। इसलिए ये समान नहीं हैं:

-- सभी X-A, साथ में active X-B
WHERE class_name = 'X-A'
   OR class_name = 'X-B' AND status = 'Active'

-- दोनों classes के केवल active students
WHERE (class_name = 'X-A' OR class_name = 'X-B')
  AND status = 'Active'
Faculty rule: AND और OR साथ हों तो spoken business rule के अनुसार parentheses लगाएँ। Reader की precedence memory पर depend न करें।

NULL का Three-Valued Logic

SQL condition TRUE, FALSE या UNKNOWN हो सकती है। NULL के साथ ordinary comparison सामान्यतः UNKNOWN देता है और WHERE केवल TRUE रखता है।

-- गलत: NULL marks नहीं मिलते
SELECT * FROM students WHERE marks = NULL;

-- सही
SELECT * FROM students WHERE marks IS NULL;

-- MySQL-specific NULL-safe comparison
SELECT * FROM students WHERE marks <=> NULL;

NOT (marks = 80) भी NULL marks शामिल नहीं करता, क्योंकि NOT UNKNOWN भी UNKNOWN रहता है। Missing data result में चाहिए या नहीं, explicitly तय करें।

गलतियाँ और अभ्यास

  • = NULL लिखना।
  • AND/OR को parentheses बिना मिलाना।
  • Numbers को formatted text की तरह compare करना।
  • UPDATE/DELETE को non-unique name से target करना।
  • Column collation जाँचे बिना text comparison assume करना।
  1. कम से कम 80 marks वाले active X-B students लौटाएँ।
  2. Same rule NOT से लिखकर clearer version बताएँ।
  3. ऊपर के precedence examples का difference predict करें।
  4. A = UNKNOWN वाली truth-table row बनाएँ।

त्वरित सारांश

  • Comparison operators values test और logical operators tests combine करते हैं।
  • AND की precedence OR से अधिक, पर parentheses safest हैं।
  • NULL UNKNOWN लाता और IS NULL/IS NOT NULL माँगता है।
  • Compatible data types तथा precise key conditions उपयोग करें।

Official संदर्भ

References 14 August 2026 को review किए गए। Examples common tutorial dataset उपयोग करते हैं।

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

SQL में comparison operators क्या हैं?
ये दो expressions compare करके TRUE, FALSE या NULL होने पर UNKNOWN देते हैं। सामान्य operators =, <>, !=, >, >=, < और <= हैं।
AND और OR में क्या अंतर है?
AND तभी TRUE है जब दोनों required conditions TRUE हों। OR में कम से कम एक condition TRUE होनी चाहिए। Mix करते समय parentheses लगाएँ।
AND और OR में किसकी precedence अधिक है?
MySQL में AND की precedence OR से अधिक है। फिर भी business intent स्पष्ट रखने के लिए parentheses recommended हैं।
column = NULL काम क्यों नहीं करता?
NULL unknown value है, इसलिए equality TRUE के बजाय UNKNOWN देती है। IS NULL या IS NOT NULL उपयोग करें।
क्या MySQL में != और <> समान हैं?
दोनों not equal दर्शाते हैं। <> standard SQL form है और portable SQL में अधिक उपयुक्त है।
🔗

Share this topic with a friend

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

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

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

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

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