SQLite 的 ALTER TABLE 命令不通过执行一个完整的转储和数据的重载来修改已有的表。您可以使用 ALTER TABLE 语句重命名表,使用 ALTER TABLE 语句还可以在已有的表中添加额外的列。
在 SQLite 中,除了重命名表和在已有的表中添加列,ALTER TABLE 命令不支持其他操作。
语法
用来重命名已有的表的 ALTER TABLE 的基本语法如下:
ALTER TABLE database_name.table_name RENAME TO new_table_name;
用来在已有的表中添加一个新的列的 ALTER TABLE 的基本语法如下:
ALTER TABLE database_name.table_name ADD COLUMN column_def...;
实例
假设我们的 COMPANY 表有如下记录:
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 |
现在,让我们尝试使用 ALTER TABLE 语句重命名该表,如下所示:
sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;
上面的 SQLite 语句将重命名 COMPANY 表为 OLD_COMPANY。现在,让我们尝试在 OLD_COMPANY 表中添加一个新的列,如下所示:
sqlite> ALTER TABLE OLD_COMPANY ADD COLUMN SEX char(1);
现在,COMPANY 表已经改变,使用 SELECT 语句输出如下:
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 |
请注意,新添加的列是以 NULL 值来填充的。
注意
drop column 暂时是不支持的,想要删除列,参见 http://blog.csdn.net/stan1989/article/details/8570187
【参考文档】
http://www.runoob.com/sqlite/sqlite-alter-command.html