数据库:清空表中某列中的数据该如何 *** 作

数据库:清空表中某列中的数据该如何 *** 作,第1张

数据库:清空表中某列中的数据何 *** 作方法:

1、如果说清空表数据可以选择delete或者truncate命令。

2、但是针对某列,只能update 表名 set 列明=null。

3、或者alter table 表名 drop column 列名。

4、然后再alter table 表名 add 列名 类型 ,如果这个列没用的话可以不加回去。

删除多列的话,可以通过where条件筛选后删除

sql:

delete

from

tablename

where

id>50;

解释:上面语句的意思是删除tablename表中id字段大于50的所有记录。

多条删除的话,肯定删除的数据有一定的规则,可以通过where语句筛选出符合条件的,之后删除即可。

ALTER TABLE的SQLite SQLite支持ALTER TABLE的一个有限子集。

在ALTER SQLite中允许一个表或一个新列添加到现有表。删除列,或者添加或从表中删除约束。

sqlite中是不支持删除有值的列 *** 作的,所以alter table table_name drop column col_name这个语句在sqlite中是无效的,而替代的方法可以如下:

1根据原表创建一张新表

2删除原表

3将新表重名为旧表的名称

示例例子如下

1创建一张旧表Student,包含id(主码),name, tel

create table student (

id integer primary key,

name text,

tel text

)

2给旧表插入两个值

insert into student(id,name,tel) values(101,"Jack","110")

insert into student(id,name,tel) values(102,"Rose","119")

3接下来我们删除电话这个列,首先根据student表创建一张新表teacher

create table teacher as select id,name from student

4然后我们删除student这个表

drop table if exists student

5将teacher这个表重命名为student

alter table teacher rename to student

结果演示:

select  from student order by name desc(desc降序, asc升序)

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_studentname','nn','column';

修改列名Oracle:lter table bbb rename column nnnnn to hh int;

修改列属性:alter table t_book modify name varchar(22);

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。

删除语句:delete from fatie where id not in(select tid1 from ( (select max(aid) id1 from fatie a group by aname)as t));留下的是各组id号最大的,如果留的是最小的话换成min(aid)就行了

如果没有加上一个中间表t,即这句话 select tid from去掉直接写成delete from fatie where id not in(select max(id) aid1 from fatie a group by aname);mysql会提示错误:You can't specify target table 'fatie' for update in FROM clause (不能先select出同一表中的某些值,再update这个表(在同一语句中)。

参考资料

CSDNCSDN[引用时间2018-1-9]

删除表数据有两种方法:delete和truncate。具体语句如下:

一、RUNCATE TABLE name  :

删除表中的所有行,而不记录单个行删除 *** 作。 在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。

TRUNCATE TABLE 的语法:TRUNCATE TABLE name ,参数 name 是要截断的表的名称或要删除其全部行的表的名称。

二、Delete from tablename where 1=1

1、delete语法:

DELETE FROM 表名称 WHERE 列名称 = 值。

2、删除所有行:

可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:DELETE FROM table_name。

扩展资料:

truncate和delete的共同点及区别:

1、 truncate和 delete只删除数据不删除表的结构(定义) 。

2、delete语句是dml,这个 *** 作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发。

truncate是ddl, *** 作立即生效,原数据不放到rollback segment中,不能回滚 *** 作不触发trigger。

3、delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动 。truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始)。

4、速度,一般来说: truncate >delete 。

参考资料:

百度百科--Truncate Table

百度百科--DELETE语句

以上就是关于数据库:清空表中某列中的数据该如何 *** 作全部的内容,包括:数据库:清空表中某列中的数据该如何 *** 作、如何使用SQL删除数据库表的多列、android数据库怎么删除列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9856543.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存