# LIKE, IN, BETWEEN आणि NULL

Source: https://ravindrabagale.com/mr/cyber/part-05/ch10-mysql-part-1-install-create-insert-and-select/10-7-like-in-between-and-null.html
Language: mr (Marathi with English technical terms)

Pattern, choices चा set, range आणि missing values यांसाठी वेगवेगळे operators वापरू.

SELECT name FROM students WHERE name LIKE 'R%';          -- starts with R
SELECT name FROM students WHERE name LIKE '%Bagale';     -- ends with Bagale
SELECT name FROM students WHERE email LIKE '%a%@%';      -- 'a' before @
SELECT name FROM students WHERE name LIKE '_a%';         -- second letter a (_ = one char)
SELECT name, city FROM students WHERE city IN ('Pune', 'Nashik', 'Solapur');
SELECT name, city FROM students WHERE city NOT IN ('Pune');
SELECT name, age FROM students WHERE age BETWEEN 22 AND 25;          -- inclusive
SELECT name, joined_on FROM students WHERE joined_on BETWEEN '2026-03-01' AND '2026-03-31';
SELECT name FROM students WHERE email IS NULL;           -- not "= NULL"! → Raja
SELECT name FROM students WHERE age IS NOT NULL;

 | Wildcard
 | Meaning
 | Example

 | %
 | Zero or more characters
 | 'Pu%' → Pune

 | _
 | Exactly one character
 | 'R_ja' → Raja

LIKE: % शून्य किंवा अनेक characters; _ नेमका एक character. त्यामुळे R% म्हणजे R ने सुरू, %Bagale म्हणजे Bagale ने शेवट आणि _a% म्हणजे दुसरं अक्षर a. Case sensitivity collation वर अवलंबून असते.

IN: दिलेल्या list मधली value; NOT IN उलट. BETWEEN: दोन्ही endpoints सहित range. Source चं joined_on हे DATE असल्याने March 1–31 example सोपा आहे; DATETIME साठी दिवसाच्या शेवटचा time वेगळा विचारावा लागतो.

NULL: missing/unknown value. = NULL वापरून match होत नाही; IS NULL/IS NOT NULL वापरा. NULL म्हणजे रिकामी string किंवा zero नाही.

Practice

दुसरं अक्षर a असलेली नावं, age 21–24, Nagpur/Kolhapur मधले IN वापरून students आणि email नसलेले students शोधा.

रवींद्र बागले यांची tip

NULL सोबत साधी equality unknown result देते, म्हणून WHERE email = NULL अपेक्षित rows देत नाही. Missing value तपासताना IS NULL वापरा.
