Lesson 07 � Data Manipulation
DATA DELETE
KARO SAFALTA SE.
Database mein se purane records, duplicate entries, ya galat data hatana zaroori hai. DELETE aur TRUNCATE dono data hatane ke tareeke hain � lekin dono mein fark hai. Yeh seekho ki kab kya use karna hai.
WHY: data delete kyun?
Har database mein kuch aisa data hota hai jo ab zaroori nahi hai � purane customer records, test entries, duplicate rows. Inhe time pe clean karna padta hai warna database bloat hota hai aur queries slow hoti hain.
Specific rows delete karna using WHERE clause. Har row individually log hota hai � slow but safe kyunki rollback ho sakta hai.
Bataata hai ki kaunsi rows delete karni hain. WHERE ke bina sab rows delete ho jayengi � bahut khatarnak!
Poora table ek saath khaali karna. Fast hai, minimal logging hoti hai, aur auto-increment reset ho jaata hai.
HOW: DELETE kaise karte hain
DELETE statement ka syntax simple hai � DELETE FROM table WHERE condition. WHERE lagana bahut zaroori hai, warna saara data ud jayega!
-- Delete single row
DELETE FROM students WHERE id = 5;
-- Delete with condition
DELETE FROM students WHERE marks < 50;
-- Delete all rows (DANGER!)
DELETE FROM students;
-- TRUNCATE (faster, resets auto-increment)
TRUNCATE TABLE students;
-- DROP table (table bhi delete)
DROP TABLE students;DELETE vs TRUNCATE vs DROP
Teeno commands data hatate hain lekin bahut alag tareeke se. Galat command se poora table ja sakta hai � isliye samajh lo pehle.
Slow � har row individually logged. WHERE lagake specific rows hata sakte ho. Rollback ho sakta hai. Auto-increment reset nahi hota.
Fast � minimal logging. WHERE nahi lagta, saari rows ud jaati hain. Rollback mushkil hota hai. Auto-increment reset hota hai.
Poora table hi delete � structure bhi jaata hai. Data aur schema dono khatam. Rollback possible nahi.
-- DELETE: logged, rollback possible
BEGIN TRANSACTION;
DELETE FROM students WHERE marks < 50;
ROLLBACK; -- data wapas aa jayega
-- TRUNCATE: minimal logging, hard to rollback
TRUNCATE TABLE students;
-- DROP: table gone forever
DROP TABLE students;Safe deletion tips
- Pehle SELECT karo:
DELETE FROM students WHERE marks < 50likhne se pehleSELECT * FROM students WHERE marks < 50chalao � dekho ki kitni rows affect hongi. - Transaction use karo:
BEGIN TRANSACTIONke baad DELETE karo, check karo, phirCOMMITkaro. Galat hua tohROLLBACK. - LIMIT lagao: Badi table mein LIMIT se batch mein delete karo � memory bachegi.
- Backup lo: Bade delete se pehle data ka backup le lo.
Try it: SQL query likho
Neeche ka editor SQL jaisa hai. Yahan apni query likho aur "Run Query" dabao. Screen par sample results dikhenge � yeh browser-based simulation hai, real database nahi.
Syntax variations
DELETE mein kuch useful variations hain jo different scenarios ke liye kaam aate hain.
-- Delete with subquery
DELETE FROM students WHERE id IN (
SELECT id FROM students WHERE marks < 50
);
-- Delete with JOIN (MySQL specific)
DELETE s FROM students s
JOIN courses c ON s.course = c.name
WHERE c.expired = 1;
-- Delete with LIMIT
DELETE FROM students WHERE marks < 50 LIMIT 100;Quick check
Ek DELETE query likho jo marks 50 se kam wale sab students delete kare.
DELETE FROM se shuru karo, table name likho, aur phir WHERE clause mein condition do � marks 50 se kam.
Common beginner mistakes
- WHERE bhoolna:
DELETE FROM studentslikhne se saari rows delete ho jayengi � WHERE lagana mat bhoolo! - TRUNCATE ka galat use: TRUNCATE WHERE support nahi karta. Agar specific rows hatani hain toh DELETE use karo.
- DROP vs DELETE: DELETE rows hatata hai, DROP poora table. Table chahiye toh DROP mat karo.
- Backup na lena: Bade delete se pehle hamesha backup lo � baad mein regret hoga.
Ab Aggregate Functions par chalo � COUNT, SUM, AVG jaise powerful tools seekho data analyze karne ke liye.