sqlite更改字段名

Keep Open and Learning
Post Reply
星际浪子
Posts: 3597
Joined: 01 May 2009 23:45

sqlite更改字段名

Post by 星际浪子 » 28 Dec 2011 11:46

Sqlite 不支持直接修改字段的名称。
我们可以使用别的方法来实现修改字段名。
1、修改原表的名称
ALTER TABLE table RENAME TO tableOld;
2、新建修改字段后的表
CREATE TABLE table(ID INTEGER PRIMARY KEY AUTOINCREMENT, Modify_Username text not null);
3、从旧表中查询出数据 并插入新表
INSERT INTO table SELECT ID,Username FROM tableOld;
4、删除旧表
DROP TABLE tableOld;

星际浪子
Posts: 3597
Joined: 01 May 2009 23:45

Re: sqlite更改字段名

Post by 星际浪子 » 28 Dec 2011 11:48

1. 创建索引: 就是在原有表(table_name)字段(field)上建立索引,以便加快查询和其它操作速度,数据量小的时候看不出这样有什么好处,如果数据量很大,你就知道索引的强大了。
sqlite> CREATE INDEX table_name_index ON table_name(field);
利用上面的语句,就在表table_name的field字段建立了索引。

2. 修改字段:如果想在表建立后增加一个字段,或者删除一个字段,或者修改字段,需要用到ALTER语句
增加字段
sqlite> ALTER TABLE table_name
ADD COLUMN email datatype ;
删除字段
sqlite> ALTER TABLE table_name
drop COLUMN column_name ;
修改字段数据类型
sqlite>ALTER TABLE table_name
ALTER COLUMN column_name datatype

3. 更新数据
sqlite> update table_name set field='new_data' where field='old_data';
不要忘记使用where语句来有针对性的更新某一条记录,否则忘了加where的话,整个字段的所有值都被改为new_data了,我就犯过这个错误,当时不小心把某一列全都更新为一个值了,幸亏本人备份有道,才没造成多大损失,否则你就后悔吧!

4. 删除数据
sqlite> delete from table_name where id=23;
如写成下面这样,则相当于把表清空了,但表的结构还存在。
sqlite> delete from table_name;

Post Reply