SQLite ALTER TABLE 命令
SQLite 的 ALTER TABLE 命令用来重命名表,或者在已有的表中添加额外的列
注意
如果你会其它的数据库,比如 MySQL,那么要注意 SQLite 中的
ALTER
命名只支持重命名表和在已有的表中添加列
语法
使用 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...;
添加列的语法和创建列的语法相同,默认情况下会使用设置的 DEFAULT
来设置,如果没有设置 DEFALUT
,那么会使用 NULL
里填充
范例
先运行下面的 SQLite SQL 语句创建测试数据
DROP TABLE tbl_employee; CREATE TABLE tbl_employee ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, name CHAR(64) NOT NULL, age INTEGER NOT NULL, city CHAR(64), salary REAL ); INSERT INTO tbl_employee (name,age,city,salary) VALUES ('张三', 25, 'pek', 102400.00 ), ('李四', 18, 'shanghai', 88888.00 ), ('王五', 22, 'hangzhou', 22000.00 ), ('孙六', 32, 'pek', 32000.00 ), ('钱七', 25, 'shanghai', 25000.00 ), ('赵二', 45, 'pek', 45800.00 ), ('冯九', 37, 'chengdu', 15000.00 );
我们先使用 SELECT * FROM tbl_employee;
看一下表中的数据
id name age city salary ---------- ---------- ---------- ---------- ---------- 1 张三 25 pek 102400.0 2 李四 18 shanghai 88888.0 3 王五 22 hangzhou 22000.0 4 孙六 32 pek 32000.0 5 钱七 25 shanghai 25000.0 6 赵二 45 pek 45800.0 7 冯九 37 chengdu 15000.0
然后使用 .table
命令看看有当前数据库中有多少表
sqlite> .table tbl_employee
紧接着使用下面的语句将表 tbl_employee
重命名为 tbl_employee_old
ALTER TABLE tbl_employee RENAME TO tbl_employee_old;
再使用 .table
命令看看有当前数据库中有多少表
sqlite> .table tbl_employee_old
现在,使用 ALTER TABLE
命令尝试在表 tbl_employee_old
中添加一个新的列性别 gender
ALTER TABLE tbl_employee_old ADD COLUMN SEX char(1);
最后使用下面的语句查看表中的数据
SELECT * FROM tbl_employee_old;
输出结果如下
id name age city salary SEX ------- -------- ---------- ---------- ---------- ---- 1 张三 25 pek 102400.0 2 李四 18 shanghai 88888.0 3 王五 22 hangzhou 22000.0 4 孙六 32 pek 32000.0 5 钱七 25 shanghai 25000.0 6 赵二 45 pek 45800.0 7 冯九 37 chengdu 15000.0