SQL ALTER TABLE
Once a table is created in the database, there are many occasions where one may wish to change the structure of the table. Typical cases include the following:
Add a column
Drop a column
Change a column name
Change the data type for a column
Please note that the above is not an exhaustive list. There are other instances where ALTER TABLE
is used to change the table structure, such as changing the primary key
specification.
The SQL syntax for ALTER TABLE
is
ALTER TABLE “table_name”
[alter specification]
[alter specification] is dependent on the type of alteration we wish to perform. For the uses cited above, the [alter specification] statements are:
Add a column: ADD “column 1” “data type for column 1”
Drop a column: DROP “column 1”
Change a column name: CHANGE “old column name” “new column name” “data type for new column name”
Change the data type for a column: MODIFY “column 1” “new data type”
Let’s run through examples for each one of the above, using the “customer” table created in the CREATE TABLE
section:
Table customer
1 2 3 4 5 6 7 | Column Name Data Type First_Name char(50) Last_Name char(50) Address char(50) City char(50) Country char(25) Birth_Date date |
First, we want to add a column called “gender” to this table. To do this, we key in:
ALTER table customer add Gender char(1)
Resulting table structure:
Table customer
1 2 3 4 5 6 7 8 | Column Name Data Type First_Name char(50) Last_Name char(50) Address char(50) City char(50) Country char(25) Birth_Date date Gender char(1) |
Next, we want to rename “Address” to “Addr”. To do this, we key in,
ALTER table customer change Address Addr char(50)
Resulting table structure:
Table customer
1 2 3 4 5 6 7 8 | Column Name Data Type First_Name char(50) Last_Name char(50) Addr char(50) City char(50) Country char(25) Birth_Date date Gender char(1) |
Then, we want to change the data type for “Addr” to char(30). To do this, we key in,
ALTER table customer modify Addr char(30)
Resulting table structure:
Table customer
1 2 3 4 5 6 7 8 | Column Name Data Type First_Name char(50) Last_Name char(50) Addr char(30) City char(50) Country char(25) Birth_Date date Gender char(1) |
Finally, we want to drop the column “Gender”. To do this, we key in,
ALTER table customer drop Gender
Resulting table structure:
Table customer
1 2 3 4 5 6 7 | Column Name Data Type First_Name char(50) Last_Name char(50) Addr char(30) City char(50) Country char(25) Birth_Date date |