关于数据库删除列等

今天在SQLite数据库中添加了一列,后来发现列名写错了,于是使用SQL语句来修改列名,可是根本不管用。

首先,请放弃alter吧。

sqlite官方说明如下:

SQLite supports a limited subset of ALTER TABLE. The ALTER TABLE command in SQLite allows the user to rename a table or to add a new column to an existing table. It is not possible to rename a column, remove a column, or add or remove constraints from a table.

大概意思是sqlite的alter功能只是alter table的一个子集,只有部分功能,比如重命名表名,新增列到现有表中。

不支持现有列的重命名,删除和修改。

查了N多资料,貌似只能通过一种间接的办法去做了,不管是重命名列还是删除列。

比如说你要修改的表名是A,方法步骤如下:

1.新建一个临时表T,这个T和表A具有相同的列。

2.把A中所有的数据都通过insert语句插入到T中

3.删除表A

4.新建表A,这时表A的列名就是你想要的结果,以前想修改的列名是什么,这时候就定义成什么,以前要删除的某个列,那么在定义的时候就不定义它。

5.恢复数据,把数据通过insert语句插入A,结构是insert into A select ... from tablen T

6.删除临时表T。

这个办法太笨拙了,但是目前还没有更好的办法啊,啊,啊,啊,啊,啊,啊 ,啊, 啊, 啊,啊, 啊,




ALTER TABLE:添加,修改,删除表的列,约束等表的定义。
  查看列:desc 表名;
  修改表名:alter table t_book rename to bbb;
  添加列:alter table 表名 add column 列名 varchar(30);
  删除列:alter table 表名 drop column 列名;
  修改列名MySQL: alter table bbb change nnnnn hh int;
  修改列名SQLServer:exec sp_rename't_student.name','nn','column';
  修改列名Oracle:lter table bbb rename column nnnnn to hh int;
  修改列属性:alter table t_book modify name varchar(22);
  sp_rename:SQLServer 内置的存储过程,用与修改表的定义。
  mysql修改、删除数据记录
  mysql数据库相信很多人都接触过,在进行mysql数据库的操作的时候,有人就希望删除或者修改mysql数据库中的一些数据记录。
  mysql数据库相信很多人都接触过,在进行mysql数据库的操作的时候,有人就希望删除或者修改mysql数据库中的一些数据记录。DELETE 和UPDATE 语句令我们能做到这一点。
  用update修改记录
  UPDATE tbl_name SET 要更改的列
  WHERE 要更新的记录
  这里的 WHERE 子句是可选的,因此如果不指定的话,表中的每个记录都被更新。
  例如,在pet表中,我们发现宠物Whistler的性别没有指定,因此我们可以这样修改这个记录:
  mysql> update pet set sex=’f’ where name=” Whistler”;
  用delete删除记录
  DELETE 语句有如下格式:
  DELETE FROM tbl_name WHERE 要删除的记录
  WHERE 子句指定哪些记录应该删除。它是可选的,但是如果不选的话,将会删除所有的记录。这意味 着最简单的 DELETE 语句也是最危险的。
  这个查询将清除表中的所有内容。一定要当心!
  为了删除特定的记录,可用 WHERE 子句来选择所要删除的记录。这类似于 SELECT 语句中的 WHERE 子句。
  mysql> delete from pet where name=”Whistler”;
  可以用下面的语句清空整个表:
  mysql>delete from pet;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值