Languages
[Edit]
EN

MySQL - Alter Table

0 points
Created by:
Lia-Perez
565

In this article, we would like to show you how to modify a table in MySQL.

Quick solution:

ALTER TABLE `table_name`
ADD `column_name` DATA_TYPE;
ALTER TABLE `table_name`
MODIFY `column_name` DATA_TYPE;
ALTER TABLE `table_name`
DROP `column_name`;

Note:

Go to the official documentation to see what you can use as DATA_TYPE.

Practical examples

To show how the ALTER TABLE statement works, we will use the following table:

MySQL - example data used with ALTER TABLE statement
MySQL - example data used with ALTER TABLE statement

Note:

At the end of this article you can find database preparation SQL queries.

ALTER TABLE - ADD COLUMN

In this example, we will add email column to the users table.

Query:

ALTER TABLE `users`
ADD `email` VARCHAR(255);

Output (SELECT * FROM `users`):

MySQL - ALTER TABLE result in HeidiSQL
MySQL - ALTER TABLE result in HeidiSQL

ALTER TABLE - DROP COLUMN

In this example, we will delete the department_id column.

Query:

ALTER TABLE `users`
DROP `department_id`;

Output (SELECT * FROM `users`):

MySQL - ALTER TABLE result in HeidiSQL
MySQL - ALTER TABLE result in HeidiSQL

ALTER TABLE - MODIFY COLUMN

In this example, we will modify salary column datatype from DECIMAL to VARCHAR.

Query:

ALTER TABLE `users`
MODIFY COLUMN `salary` VARCHAR(255);

Output:

MySQL - ALTER TABLE result in HeidiSQL (before)
MySQL - ALTER TABLE result in HeidiSQL (before)
MySQL - ALTER TABLE result in HeidiSQL (after)
MySQL - ALTER TABLE result in HeidiSQL (after)

 Database preparation

create_tables.sql file:

CREATE TABLE `users` (
	`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
	`name` VARCHAR(50) NOT NULL,
	`surname` VARCHAR(50) NOT NULL,
	`department_id` INT(10) UNSIGNED,
    `salary` DECIMAL(15,2) NOT NULL,
	PRIMARY KEY (`id`)
);

insert_data.sql file:

INSERT INTO `users`
	( `name`, `surname`, `department_id`, `salary`)
VALUES
	('John', 'Stewart', 1, '3512.00'),
	('Chris', 'Brown', 2, '1344.00'),
	('Kate', 'Lewis', 3, '6574.00'),
	('Ailisa', 'Gomez', NULL, '6500.00'),
	('Gwendolyn', 'James', 2, '4200.00'),
	('Simon', 'Collins', 4, '3320.00'),
	('Taylor', 'Martin', 2, '1500.00'),
	('Andrew', 'Thompson', NULL, '2100.00');
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

MySQL

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join