Lesson 04 � Sort & Limit
DATA SORT KARO,
SIRF ZARURI DIKHAO.
SELECT se data aa gaya�lekin kya order sahi hai✓ Kabhi top performers dikhne hain, kabhi latest records chahiye. ORDER BY se rows ko sort karo, LIMIT se sirf top N results rakho.
WHY: ORDER BY kyun zaruri hai?
Socho ek school database hai jisme 500 students hain. Aapko top 10 students dikhane hain marks ke hisaab se. Bina ORDER BY ke aapko saare records milenge kisi order mein�koi meaning nahi. ORDER BY aapko control deta hai ki data kaise sort ho, aur LIMIT ke saath sirf utne hi rows dikhao jitne chahiye.
Row-level sorting. Ascending (chhota se bada) ya descending (bada se chhota) � aap choose karo.
Sort direction. ASC = default (A?Z, 0?9). DESC = reverse (Z?A, 9?0).
Sirf top N rows return karo. OFFSET ke saath pagination bhi kar sakte ho.
HOW: ORDER BY ka syntax
ORDER BY SELECT ke baad aata hai, WHERE ke baad. Column name ke saath ASC ya DESC lagao�default ASC hota hai.
1. Basic ORDER BY � ascending
Marks ke hisaab se ascending order (chhota se bada):
SELECT * FROM students ORDER BY marks ASC;2. ORDER BY DESC � descending
Marks ke hisaab se descending order (bada se chhota):
SELECT * FROM students ORDER BY marks DESC;3. Multiple columns sort
Pehle course ascending, phir marks descending:
SELECT * FROM students ORDER BY course ASC, marks DESC;4. LIMIT � sirf top N rows
Top 3 students marks ke hisaab se:
SELECT * FROM students ORDER BY marks DESC LIMIT 3;5. LIMIT with OFFSET � pagination
5 rows chahiye, lekin pehle 2 chhod do (3rd se start):
SELECT * FROM students ORDER BY marks DESC LIMIT 5 OFFSET 2;6. Aliases in ORDER BY
Column ka alias use karke sort karo:
SELECT name, marks AS score FROM students ORDER BY score DESC;7. ORDER BY expression
Calculated column par sort karo � jaise double marks:
SELECT name, marks FROM students ORDER BY marks * 2 DESC;8. NULL handling
NULL values ko last mein ya first mein bhejo:
-- NULLs last (default in most databases)
SELECT * FROM students ORDER BY marks ASC NULLS LAST;
-- NULLs first
SELECT * FROM students ORDER BY marks ASC NULLS FIRST;ORDER BY + LIMIT ka quick reference
-- Sort order
ORDER BY column ASC -- ascending (default)
ORDER BY column DESC -- descending
-- Multiple columns
ORDER BY col1 ASC, col2 DESC
-- Limit results
LIMIT 10 -- sirf 10 rows
LIMIT 10 OFFSET 5 -- skip 5, phir 10
-- Aliases
SELECT col AS alias ORDER BY alias
-- NULL handling
ORDER BY col NULLS LAST
ORDER BY col NULLS FIRSTTry it: data ko sort karo
Neeche diye gaye SQL queries ko editor mein modify karo aur dekho output kaise badalta hai. Pehle basic ORDER BY try karo, phir LIMIT add karo.
Exercise
Top 3 students dikhao marks ke hisaab se (highest marks first).
Pehle ORDER BY marks DESC lagao taaki highest marks pehle aaye, phir LIMIT 3 se sirf teen rows lo.
Common beginner mistakes
- ASC/DESC bhoolna: Agar direction na likho, default ASC hota hai. DESC lagao jab largest value chahiye.
- LIMIT ke bina sort: ORDER BY ke bina LIMIT lagana matlab random rows milenge�hamesha ORDER BY pehle lagao.
- Wrong column name:
ORDER BY marksgalat hai agar column ka naamscorehai. Column name exactly match hona chahiye. - OFFSET ka confusion:
LIMIT 5 OFFSET 2ka matlab hai skip 2, take 5�total 7 rows process hoti hain, result mein 5 aate hain. - Aliases ka galat use: Sirf SELECT mein define kiya hua alias ORDER BY mein use kar sakte ho�table column nahi.
Ab data add karna seekho�INSERT se naye rows table mein daalo.