bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/SQL/SQL Database
SQL•SQL Database

SQL ALTER TABLE Statement

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind SQL ALTER TABLE Statement?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ datatype
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Alter Table - Drop Column
ALTER TABLE - ADD Column
SQL ALTER TABLE Statement

The ALTER TABLE statement is used to add, delete, or modify columns in an existing table.

The ALTER TABLE statement is also used to add and drop various constraints on an existing table.

Common ALTER TABLE operations are

  • Add column - Adds a new column to a table
  • Drop column - Deletes a column in a table
  • Rename column - Renames a column
  • Modify column - Changes the data type, size, or constraints of a column
  • Add constraint - Adds a new constraint
  • Rename table - Renames a table

ALTER TABLE - ADD Column

To add a column in a table, use the following syntax:

Syntax

ALTER TABLE
table_name
ADD
column_name datatype
;

The following SQL adds an "Email" column to the "Customers" table:

Example

ALTER TABLE Customers
ADD Email varchar(255);

Alter Table - Drop Column

To delete a column in a table, use the following syntax (notice that some database systems don't allow deleting a column):

Syntax

ALTER TABLE
table_name
DROP COLUMN
column_name
;

The following SQL deletes the "Email" column from the "Customers" table:

Example

ALTER TABLE Customers
DROP COLUMN Email;

Alter Table - Rename Column

To rename a column in a table, use the following syntax:

Syntax

ALTER TABLE
table_name
RENAME COLUMN
old_name
 to
new_name
;

To rename a column in a table in SQL Server, use the following syntax:

Syntax for SQL Server

EXEC sp_rename '
table_name.old_name
', '
new_name
', 'COLUMN';

ALTER TABLE - MODIFY Datatype

To modify the data type, size or constraints of a column in a table, use the following syntax:

Syntax for SQL Server / MS Access:

ALTER TABLE
table_name
ALTER COLUMN
column_name new_datatype constraint
;

Syntax for MySQL / Oracle

ALTER TABLE
table_name
MODIFY
column_name new_datatype constraint
;

The following SQL modifies the size of the "Email" column to varchar(100), and we also add a NOT NULL constraint:

Example

ALTER TABLE Customers
MODIFY Email varchar(100) NOT NULL;

Alter Table - Add Constraint

To add a constraint to an existing table, use the following syntax:

Syntax

ALTER TABLE
table_name
ADD CONSTRAINT
constraint_name constraint_definition
;

The following SQL adds a constraint named "CHK_Age" that is a CHECK constraint that ensures that the "Age" column has a value of 18 and above:

Example

ALTER TABLE Members
ADD CONSTRAINT CHK_Age CHECK (Age >= 18);

ALTER TABLE - Rename table

To rename a table, use the following syntax:

Syntax

ALTER TABLE
table_name
RENAME TO
new_table_name
;

The following SQL renames the "Customers" table to "Clients":

Example

ALTER TABLE Customers
RENAME TO Clients;

SQL ALTER TABLE Example

Assume we have a "Persons" table, that looks like this:

IDLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Now we want to add a column named "DateOfBirth" in the "Persons" table.

Example

ALTER TABLE Persons
ADD DateOfBirth date;

Notice that the new column, "DateOfBirth", is of type date and is going to hold a date. The data type specifies what type of data the column can hold. For a complete reference of all the data types available in MS Access, MySQL, and SQL Server, go to our complete Data Types reference .

The "Persons" table will now look like this:

IDLastNameFirstNameAddressCityDateOfBirth
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Change Data Type Example

Now we want to change the data type of the column named "DateOfBirth" in the "Persons" table.

Example

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;

Notice that the "DateOfBirth" column is now of type year and is going to hold a year in a two- or four-digit format.

DROP COLUMN Example

Example

ALTER TABLE Persons
DROP COLUMN DateOfBirth;

The "Persons" table will now look like this:

IDLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Previous

SQL DROP TABLE Statement

Next

SQL Constraints