Lesson 03 � Filter
SAB DATA NAHI,
SIRF ZARURI DATA.
SELECT se saara data aa jaata hai�lekin kabhi kabhi sirf woh chahiye jo condition match kare. WHERE clause se aap table ke rows ko filter kar sakte ho, bilkul Excel ke filter jaisa.
WHY: WHERE kyun zaruri hai?
Socho ek school database hai jisme 500 students hain. Aapko sirf un students ka naam chahiye jinke marks 80 se zyada hain. Bina WHERE ke aapko saare 500 records milenge�phir manually dekhna padega. WHERE ek logical gate hai jo sirf woh rows deta hai jo aapki condition satisfy karein.
Row-level filter lagana. Har row par condition check hoti hai�jo true hai, woh result mein aata hai.
Multiple conditions ek saath lagana. AND mein dono true chahiye; OR mein koi ek bhi kaafi hai.
Special operators�range check (BETWEEN), list check (IN), aur pattern match (LIKE).
HOW: WHERE ka syntax
WHERE SELECT ya DELETE/UPDATE ke saath use hota hai. Condition ke baad comparison operator lagta hai: =, >, <, >=, <=, != ya <>.
1. Basic WHERE
Sirf woh students dikhao jinke marks 80 se zyada hain:
SELECT * FROM students WHERE marks > 80;2. AND � dono conditions true honi chahiye
Marks 80 se zyada HO AUR course Python HO:
SELECT * FROM students WHERE marks > 80 AND course = 'Python';3. OR � koi ek condition true ho
Python ya SQL ya Data Science wale students:
SELECT * FROM students WHERE course = 'Python' OR course = 'SQL';4. BETWEEN � range check
Marks 80 se 95 ke beech:
SELECT * FROM students WHERE marks BETWEEN 80 AND 95;5. IN � list mein check
Teen courses mein se koi ek ho:
SELECT * FROM students WHERE course IN ('Python', 'SQL', 'Data Science');6. LIKE � pattern match
Naam ka pattern match karo. % koi bhi characters ka wildcard hai:
SELECT * FROM students WHERE name LIKE 'A%'; -- A se start
SELECT * FROM students WHERE name LIKE '%a'; -- a se end
SELECT * FROM students WHERE name LIKE '%man%'; -- man beech mein7. IS NULL � empty value check
Jin students ke marks abhi enter nahi hue:
SELECT * FROM students WHERE marks IS NULL;= ya != kaam nahi karta. Hamesha IS NULL ya IS NOT NULL use karo.8. NOT � condition ko reverse karo
SELECT * FROM students WHERE course NOT IN ('Python');Operators ka quick reference
-- Comparison
= -- equal
!= or <> -- not equal
> -- greater than
< -- less than
>= -- greater or equal
<= -- less or equal
-- Logical
AND -- both true
OR -- either true
NOT -- reverse
-- Special
BETWEEN a AND b -- range (inclusive)
IN (v1, v2, v3) -- list match
LIKE 'pattern' -- pattern match
IS NULL -- empty checkTry it: apne conditions lagao
Neeche diye gaye SQL queries ko editor mein modify karo aur dekho output kaise badalta hai. Pehle basic WHERE try karo, phir AND/OR add karo.
Exercise
WHERE clause likho jo marks 80 se zyada aur course 'Python' ho.
Dono conditions ko AND se join karo: marks > 80 aur course = 'Python'.
Common beginner mistakes
- Single quotes bhoolna:
WHERE course = Pythongalat hai�strings hamesha single quotes mein honi chahiye:'Python'. - NULL mein = use karna:
WHERE marks = NULLkaam nahi karta. HameshaIS NULLuse karo. - LIKE mein % na lagana:
LIKE 'A'sirf exact 'A' match karega.LIKE 'A%'se 'Ankit', 'Aman' sab aayenge. - AND/OR ki priority: Jab dono ho, brackets lagao taaki reading clear rahe:
WHERE (marks > 80) AND (course = 'Python').
Ab data ko sort karna seekho�ORDER BY se rows ko ascending ya descending order mein arrange karo.