The DROP
statement in SQL is used to permanently remove an entire database, table, or column from the system. Unlike DELETE
, which removes specific rows, DROP
completely deletes the structure and data.
Syntax for DROP
1. Drop a Table
DROP TABLE table_name;
table_name
: The name of the table to be removed.This deletes all data and the table structure permanently.
2. Drop a Database
DROP DATABASE database_name;
database_name
: The name of the database to be deleted.This removes the entire database, including all tables.
3. Drop a Column (MySQL, PostgreSQL, SQL Server)
ALTER TABLE table_name
DROP COLUMN column_name;
- Removes a specific column from the table but keeps the table itself.
4. Drop a Constraint
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
- Removes a unique, foreign key, or other constraint.
Basic Examples
1. Drop a Table
DROP TABLE Students;
This deletes the Students
table and all its data.
2. Drop a Database
DROP DATABASE SchoolDB;
This deletes the entire SchoolDB
database, including all tables.
3. Drop a Column
ALTER TABLE Students
DROP COLUMN Age;
This removes the Age
column from the Students
table.
4. Drop a Foreign Key Constraint
ALTER TABLE Orders
DROP CONSTRAINT fk_customer;
This removes the foreign key fk_customer
from the Orders
table.
Explaining the Statement
How DROP Works
Identifies the database, table, column, or constraint to be removed.
Deletes the structure and all associated data permanently.
Cannot be rolled back unless a backup is available.
What Happens Behind the Scenes?
All relationships linked to the table or database are also deleted.
Indexes and constraints associated with the object are removed.
The operation is irreversible (unlike
DELETE
, which can be rolled back with transactions).
Common Errors and Solutions
Error | Cause | Solution |
Table doesn’t exist | The table you’re trying to drop is missing. | Verify with SHOW TABLES; before running DROP . |
Cannot drop due to foreign key | Another table references this table. | Remove foreign key constraints first. |
Database is in use | The database is currently active. | Use DROP DATABASE only after switching to another database. |
SQL Representation
Create Table
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100) NOT NULL,
Age INT,
Class VARCHAR(10)
);
Drop Table
DROP TABLE Students;
Deletes the Students
table and its data.
Drop Database
DROP DATABASE SchoolDB;
Removes the SchoolDB
database completely.
Drop Column
ALTER TABLE Students
DROP COLUMN Age;
Removes the Age
column from Students
.
Key Points
DROP
permanently deletes data and structure—it cannot be undone.Use
DROP
carefully, especially in production databases.If you only need to remove data but keep the structure, use
DELETE
instead.For resetting a table without deleting it, consider
TRUNCATE TABLE
instead.