📖 Scenario: You are managing a small library database. You want to learn how to remove all books from a table quickly and how to completely delete the table itself.
🎯 Goal: Build SQL commands to create a table, add a helper variable for table name, use TRUNCATE to clear all rows, and finally DROP the table.
📋 What You'll Learn
Create a table named books with columns id (integer) and title (varchar 100).
Create a variable table_name holding the string 'books'.
Write a TRUNCATE statement using the table_name variable to remove all rows from the table.
Write a DROP TABLE statement using the table_name variable to delete the table.
💡 Why This Matters
🌍 Real World
Database administrators often need to clear data quickly or remove tables entirely during maintenance or development.
💼 Career
Knowing how to safely and efficiently remove data or tables is essential for database management roles.
Progress0 / 4 steps
1
Create the books table
Write a SQL statement to create a table called books with two columns: id as an integer and title as a varchar of length 100.
MySQL
Hint
Use CREATE TABLE books (id INT, title VARCHAR(100)); to create the table.
2
Create a variable for the table name
Create a SQL variable called @table_name and set it to the string 'books'.
MySQL
Hint
Use SET @table_name = 'books'; to create the variable.
3
Use TRUNCATE to remove all rows
Write a SQL statement to truncate the table using the variable @table_name. Use prepared statements to execute the TRUNCATE command.
MySQL
Hint
Use PREPARE, EXECUTE, and DEALLOCATE PREPARE with a CONCAT of 'TRUNCATE TABLE ' and @table_name.
4
Use DROP TABLE to delete the table
Write a SQL statement to drop the table using the variable @table_name. Use prepared statements to execute the DROP TABLE command.
MySQL
Hint
Use the same prepared statement pattern as TRUNCATE but with 'DROP TABLE ' and @table_name.
Practice
(1/5)
1. What is the main difference between DROP and TRUNCATE commands in MySQL?
easy
A. DROP only deletes data, TRUNCATE deletes the table structure.
B. TRUNCATE deletes the entire table and its data, DROP deletes only the data but keeps the table.
C. DROP deletes the entire table and its data, TRUNCATE deletes only the data but keeps the table.
D. DROP and TRUNCATE do exactly the same thing.
Solution
Step 1: Understand DROP behavior
DROP removes the entire table including its structure and data permanently.
Step 2: Understand TRUNCATE behavior
TRUNCATE removes all rows but keeps the table structure for future use.
Final Answer:
DROP deletes the entire table and its data, TRUNCATE deletes only the data but keeps the table. -> Option C
Quick Check:
DROP removes table, TRUNCATE empties table [OK]
Hint: DROP removes table, TRUNCATE empties data only [OK]
Common Mistakes:
Confusing which command deletes the table structure
Thinking TRUNCATE deletes the table itself
Assuming DROP only deletes data
2. Which of the following is the correct syntax to remove all rows from a table named employees without deleting the table itself?
easy
A. DROP TABLE employees;
B. TRUNCATE TABLE employees;
C. DELETE TABLE employees;
D. REMOVE TABLE employees;
Solution
Step 1: Identify command to remove all rows but keep table
TRUNCATE TABLE removes all rows quickly without deleting the table.
Step 2: Check syntax correctness
TRUNCATE TABLE employees; is the correct syntax. DROP TABLE deletes the table, DELETE TABLE and REMOVE TABLE are invalid.
Final Answer:
TRUNCATE TABLE employees; -> Option B
Quick Check:
TRUNCATE syntax correct for emptying table [OK]
Hint: Use TRUNCATE TABLE to empty without deleting [OK]
Common Mistakes:
Using DROP instead of TRUNCATE to empty table
Using DELETE TABLE which is invalid syntax
Confusing REMOVE TABLE as a valid command
3. Given a table products with 1000 rows, what will be the result after running TRUNCATE TABLE products;?
medium
A. All rows are removed but the table structure remains.
B. The table products is deleted completely.
C. Only half of the rows are deleted.
D. Syntax error occurs.
Solution
Step 1: Understand effect of TRUNCATE on data
TRUNCATE TABLE removes all rows from the table quickly.
Step 2: Understand effect on table structure
The table structure remains intact and ready for new data.
Final Answer:
All rows are removed but the table structure remains. -> Option A
4. You want to remove a table named orders completely, but accidentally run TRUNCATE orders;. What is the problem with this command?
medium
A. It will cause a syntax error because TABLE keyword is missing.
B. It will delete the table and all its data.
C. It will only delete some rows, not all.
D. It will rename the table instead of deleting.
Solution
Step 1: Check syntax of TRUNCATE command
The correct syntax requires the keyword TABLE: TRUNCATE TABLE orders;.
Step 2: Identify error from missing keyword
Omitting TABLE causes a syntax error in MySQL.
Final Answer:
It will cause a syntax error because TABLE keyword is missing. -> Option A
Quick Check:
TRUNCATE requires TABLE keyword [OK]
Hint: Always include TABLE keyword in TRUNCATE [OK]
Common Mistakes:
Omitting TABLE keyword in TRUNCATE
Expecting TRUNCATE to delete table structure
Confusing TRUNCATE with DROP syntax
5. You have a table customers with foreign key constraints referencing it from other tables. Which command should you use to quickly remove all data from customers without dropping the table and without breaking foreign key constraints?
hard
A. ALTER TABLE customers DROP;
B. TRUNCATE TABLE customers;
C. DROP TABLE customers;
D. DELETE FROM customers;
Solution
Step 1: Understand foreign key constraints effect
TRUNCATE TABLE cannot be used if foreign keys reference the table; it will cause an error.
Step 2: Choose command that removes data safely
DELETE FROM customers; removes all rows and respects foreign key constraints.
Step 3: Confirm other options
DROP TABLE deletes the table, breaking references; ALTER TABLE DROP is invalid syntax.
Final Answer:
DELETE FROM customers; -> Option D
Quick Check:
DELETE respects foreign keys, TRUNCATE does not [OK]
Hint: Use DELETE when foreign keys exist, not TRUNCATE [OK]
Common Mistakes:
Using TRUNCATE despite foreign key constraints
Using DROP which deletes the table
Trying invalid ALTER TABLE DROP syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.