What is the main difference between DELETE and TRUNCATE in SQL?
DELETE removes rows one by one and logs each deletion, allowing WHERE conditions. TRUNCATE removes all rows quickly without logging individual row deletions and cannot use WHERE.
Click to reveal answer
beginner
Can you use a WHERE clause with TRUNCATE?
No, TRUNCATE removes all rows from a table and does not support a WHERE clause.
Click to reveal answer
intermediate
Which command, DELETE or TRUNCATE, can be rolled back in a transaction?
Both DELETE and TRUNCATE can be rolled back if used inside a transaction, but TRUNCATE behavior depends on the database system.
Click to reveal answer
intermediate
Does TRUNCATE reset identity (auto-increment) counters in a table?
Yes, TRUNCATE usually resets identity counters to the seed value, while DELETE does not reset them.
Click to reveal answer
beginner
Which command is generally faster for removing all rows: DELETE or TRUNCATE?
TRUNCATE is generally faster because it deallocates data pages instead of deleting rows one by one.
Click to reveal answer
Which SQL command allows you to delete specific rows using a condition?
AALTER
BTRUNCATE
CDELETE
DDROP
✗ Incorrect
DELETE supports WHERE clauses to remove specific rows; TRUNCATE removes all rows without conditions.
What happens to the identity counter when you use TRUNCATE on a table?
AIt increments by one
BIt is deleted
CIt remains unchanged
DIt resets to the initial seed value
✗ Incorrect
TRUNCATE resets identity counters to their seed value, unlike DELETE.
Which command is faster for removing all rows from a table?
ADELETE
BTRUNCATE
CUPDATE
DINSERT
✗ Incorrect
TRUNCATE is faster because it deallocates data pages instead of deleting rows individually.
Can TRUNCATE be rolled back in a transaction in all database systems?
ADepends on the database system
BNo, never
CYes, always
DOnly if used with WHERE clause
✗ Incorrect
Rollback support for TRUNCATE depends on the database system; some allow it inside transactions, others do not.
Which command logs each row deletion individually?
ADELETE
BTRUNCATE
CDROP
DCREATE
✗ Incorrect
DELETE logs each row deletion, which can slow down performance compared to TRUNCATE.
Explain the differences in behavior between DELETE and TRUNCATE commands in SQL.
Think about speed, logging, and conditions.
You got /5 concepts.
When would you choose DELETE over TRUNCATE in managing a database table?
Consider situations needing selective deletion or trigger activation.
You got /4 concepts.
Practice
(1/5)
1. Which statement correctly describes the difference between DELETE and TRUNCATE in SQL?
easy
A. TRUNCATE is slower than DELETE because it logs each row removal.
B. TRUNCATE removes rows one by one and can use a WHERE clause; DELETE removes all rows quickly without logging each row.
C. DELETE and TRUNCATE both remove rows one by one and support WHERE clauses.
D. DELETE removes rows one by one and can use a WHERE clause; TRUNCATE removes all rows quickly without logging each row.
Solution
Step 1: Understand DELETE behavior
DELETE removes rows individually and supports filtering with WHERE.
Step 2: Understand TRUNCATE behavior
TRUNCATE removes all rows quickly without logging each row, and does not support WHERE.
Final Answer:
DELETE removes rows one by one and can use a WHERE clause; TRUNCATE removes all rows quickly without logging each row. -> Option D
Quick Check:
DELETE = selective row removal, TRUNCATE = fast full clear [OK]
Hint: DELETE filters rows; TRUNCATE clears all fast [OK]
Common Mistakes:
Thinking TRUNCATE supports WHERE clause
Confusing which command logs each row
Believing DELETE is faster than TRUNCATE
2. Which of the following is the correct syntax to remove all rows from a table named Employees using TRUNCATE?
easy
A. DELETE FROM Employees;
B. TRUNCATE TABLE Employees;
C. TRUNCATE Employees WHERE id > 10;
D. REMOVE ALL FROM Employees;
Solution
Step 1: Recall TRUNCATE syntax
The correct syntax to remove all rows quickly is TRUNCATE TABLE table_name;.
Step 2: Check options for correctness
DELETE FROM Employees; uses DELETE; REMOVE ALL FROM Employees; is invalid SQL; TRUNCATE Employees WHERE id > 10; incorrectly adds WHERE to TRUNCATE; TRUNCATE TABLE Employees; matches the correct syntax.
Final Answer:
TRUNCATE TABLE Employees; -> Option B
Quick Check:
TRUNCATE syntax = TRUNCATE TABLE [OK]
Hint: TRUNCATE always uses TABLE keyword [OK]
Common Mistakes:
Adding WHERE clause to TRUNCATE
Using DELETE syntax for TRUNCATE
Using non-existent REMOVE command
3. Given a table Orders with 1000 rows, what will be the number of rows after executing DELETE FROM Orders WHERE OrderDate < '2023-01-01'; if 300 rows have OrderDate before 2023?
medium
A. 700 rows remain
B. 0 rows remain
C. 1000 rows remain
D. Syntax error
Solution
Step 1: Understand DELETE with WHERE clause
The DELETE command removes only rows matching the condition: OrderDate < '2023-01-01'.
Step 2: Calculate remaining rows
Since 300 rows match the condition, they are deleted. Remaining rows = 1000 - 300 = 700.
Final Answer:
700 rows remain -> Option A
Quick Check:
1000 - 300 = 700 rows left [OK]
Hint: DELETE with WHERE removes only matching rows [OK]
Common Mistakes:
Assuming DELETE removes all rows without WHERE
Confusing DELETE with TRUNCATE behavior
Thinking syntax error due to date format
4. You run the command TRUNCATE TABLE Customers WHERE Country = 'USA'; but get an error. What is the most likely cause?
medium
A. TRUNCATE does not support WHERE clauses.
B. The table Customers does not exist.
C. TRUNCATE requires a WHERE clause.
D. You must use DELETE instead of TRUNCATE for all tables.
Solution
Step 1: Check TRUNCATE command rules
TRUNCATE removes all rows and does not allow filtering with WHERE.
Step 2: Identify error cause
Using WHERE with TRUNCATE causes a syntax error because TRUNCATE does not support WHERE clauses.
Final Answer:
TRUNCATE does not support WHERE clauses. -> Option A
Quick Check:
TRUNCATE = no WHERE allowed [OK]
Hint: TRUNCATE never uses WHERE clause [OK]
Common Mistakes:
Assuming TRUNCATE supports WHERE
Thinking table absence causes this error
Believing DELETE must always replace TRUNCATE
5. You want to quickly remove all rows from a large table Logs but keep the table structure and reset identity counters. Which command should you use and why?
hard
A. Use DELETE FROM Logs WHERE 1=1; because it is faster than TRUNCATE.
B. Use DELETE FROM Logs; because it removes rows and resets identity counters.
C. Use TRUNCATE TABLE Logs; because it removes all rows fast and resets identity counters.
D. Use DROP TABLE Logs; to remove all rows and keep structure.
Solution
Step 1: Identify command for fast full table clearing
TRUNCATE TABLE removes all rows quickly and resets identity counters.
Step 2: Compare with DELETE and DROP
DELETE removes rows slowly and does not reset identity counters; DROP removes table structure.
Final Answer:
Use TRUNCATE TABLE Logs; because it removes all rows fast and resets identity counters. -> Option C
Quick Check:
TRUNCATE = fast clear + reset identity [OK]
Hint: TRUNCATE clears fast and resets identity counters [OK]
Common Mistakes:
Thinking DELETE resets identity counters
Using DROP when structure must be kept
Believing DELETE is faster than TRUNCATE
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.