11. MySQL Part 2: UPDATE, ALTER, DELETE, Keys, Constraints and Users
11.3 ALTER TABLE: Add, Modify, Rename and Drop Columns
Table banavlyavar requirement badalte – navin column, mothi size, naav badal. Tyasathi ALTER TABLE.
ALTER TABLE students ADD COLUMN phone VARCHAR(15); -- add at the end
ALTER TABLE students ADD COLUMN gender CHAR(1) AFTER name; -- add after a column
ALTER TABLE students ADD COLUMN batch VARCHAR(20) FIRST; -- add as first column
ALTER TABLE students MODIFY COLUMN phone VARCHAR(20) NOT NULL DEFAULT ''; -- change type/rules
ALTER TABLE students CHANGE COLUMN phone mobile VARCHAR(20); -- rename + redefine
ALTER TABLE students RENAME COLUMN mobile TO contact_no; -- rename only (MySQL 8 / MariaDB 10.5+)
ALTER TABLE students DROP COLUMN batch; -- remove column and its data
ALTER TABLE students ADD INDEX idx_city (city); -- add an index
ALTER TABLE courses RENAME TO course_list; -- rename table
RENAME TABLE course_list TO courses; -- same, other syntax
DESCRIBE students;
| Want to | Use |
|---|---|
| New column | ADD COLUMN |
| Change type, size, NULL, DEFAULT | MODIFY COLUMN |
| Rename and change definition | CHANGE COLUMN old new type |
| Rename only | RENAME COLUMN old TO new |
| Remove column | DROP COLUMN |
Ravindra Bagale's Tip
If you shrink a column with MODIFY (VARCHAR(100) → VARCHAR(10)), long data gets cut off or you get an error – many students only find this out later. Before shrinking a column, check the longest value with SELECT MAX(LENGTH(name)) FROM students;. And take a backup before running ALTER on a live table!
Ravindra Bagale's Tip – मराठी
MODIFY ने column छोटा केला (VARCHAR(100) → VARCHAR(10)) तर मोठा data कापला जातो किंवा error येतो – बऱ्याच students ना हे नंतर कळतं. Column कमी करण्यापूर्वी SELECT MAX(LENGTH(name)) FROM students; ने सगळ्यात लांब value बघा. आणि live table वर ALTER करण्यापूर्वी backup!
Ravindra Bagale's Tip – हिंदी
MODIFY से column छोटा किया (VARCHAR(100) → VARCHAR(10)) तो लंबा data कट जाता है या error आता है – बहुत से students को यह बाद में पता चलता है. Column छोटा करने से पहले SELECT MAX(LENGTH(name)) FROM students; से सबसे लंबी value देखो. और live table पर ALTER करने से पहले backup!
Practice task
Add phone after email, change it to VARCHAR(20), rename it to mobile, then drop it. Run DESCRIBE after each step.