English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite ALTER TABLE Command

The SQLite ALTER TABLE command can modify existing tables without the need to perform a complete data dump and reload. You can use the ALTER TABLE statement to rename a table and use the ALTER TABLE statement to add other columns to an existing table.

In addition to renaming tables and adding columns to existing tables, the ALTER TABLE command in SQLite does not support other operations.

Syntax

The following isALTER TABLEBasic syntax for renaming an existing table.

ALTER TABLE database_name.table_name RENAME TO new_table_name;

The following isALTER TABLEBasic syntax for adding a new column to an existing table.

ALTER TABLE database_name.table_name ADD COLUMN column_def...;

Online Example

The COMPANY table with the following records-

ID          NAME        AGE          ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Now, let's try to rename the table using the ALTER TABLE statement as follows:

sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;

The above SQLite statement will rename the COMPANY table to OLD_COMPANY. Now, let's try to add a new column to the OLD_COMPANY table as follows:

sqlite> ALTER TABLE OLD_COMPANY ADD COLUMN SEX char(1);

COMPANY has been changed, and the following will be the output of the SELECT statement.

ID          NAME        AGE         ADDRESS     SALARY      SEX
----------  ----------  ----------  ----------  ----------  ---
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Note that the newly added columns are filled with NULL values.