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.

? 16 min✓ Beginner✓ Prerequisite: UPDATE

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.

DELETE

Specific rows delete karna using WHERE clause. Har row individually log hota hai � slow but safe kyunki rollback ho sakta hai.

WHERE

Bataata hai ki kaunsi rows delete karni hain. WHERE ke bina sab rows delete ho jayengi � bahut khatarnak!

TRUNCATE

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!

sql
-- 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;
Mental model: DELETE jaise almirah se kuch cheezein nikalna � kuch rakhni hai, kuch hatani hai. TRUNCATE poori almirah khaali karna. DROP puri almirah hi utha ke fek dena.

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.

DELETE

Slow � har row individually logged. WHERE lagake specific rows hata sakte ho. Rollback ho sakta hai. Auto-increment reset nahi hota.

TRUNCATE

Fast � minimal logging. WHERE nahi lagta, saari rows ud jaati hain. Rollback mushkil hota hai. Auto-increment reset hota hai.

DROP

Poora table hi delete � structure bhi jaata hai. Data aur schema dono khatam. Rollback possible nahi.

sql
-- 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

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.

SQL playgroundSample data se results dikhenge
Run Query dabayein

Syntax variations

DELETE mein kuch useful variations hain jo different scenarios ke liye kaam aate hain.

sql
-- 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

DELETE & TRUNCATE complete?

Ab Aggregate Functions par chalo � COUNT, SUM, AVG jaise powerful tools seekho data analyze karne ke liye.