删除列属于ddl *** 作,这是会改变表的定义的。另外你说的fname字段中
名叫jack的列是什么意思呢?
删除列的话方法是
alter
table
bfiletest
drop
column
fname;数据库:清空表中某列中的数据何 *** 作方法:
1、如果说清空表数据可以选择delete或者truncate命令。
2、但是针对某列,只能update 表名 set 列明=null。
3、或者alter table 表名 drop column 列名。
4、然后再alter table 表名 add 列名 类型 ,如果这个列没用的话可以不加回去。sql清除一列数据分为两种情况,一种是将一列的数据清空,另一种是将某列名删除。
工具:SQL
Server
2008
R2
表中数据如下:
一、将数据清空(删除begin_date列的数据,使之为空)
update
test
set
begin_date=null;
执行后结果:
二、将列名删除(删除begin_date列,使之在表中不存在)
alter
table
test
drop
column
begin_date;
执行后结果(可发现begin_date列已经删除):
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]
删除数据库中的一行分为以下几个步骤:1、通过数据库访问客户端(例如访问Oracle,使用plsql),使用有删除权限的用户登录数据库;
2、执行删除脚本:
delete from tablename where id=11(这里假设删除的表名为tablename,标识要删除行的字段为ID,值为11);
3、执行commit;
此时,id为11的记录从tablename表删除成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)