最近我开始学习Oracle-sql
。我知道在DELETE
命令的帮助下,我们可以删除一个特定的行。那么,是否可以仅使用DELETE
命令从表中的特定列中删除整个数据。 (我知道通过将空值设置为整列来使用UPDATE
命令,我们可以实现DELETE
)的功能。
答案 0 :(得分:15)
<强> DELETE 强>
DELETE语句从指定的数据中删除整行 表格或视图
如果您要“删除”特定列中的数据,请更新它:
UPDATE table_name
SET your_column_name = NULL;
或列是NOT NULL
UPDATE table_name
SET your_column_name = <value_indicating_removed_data>;
您还可以使用DDL删除整个列:
ALTER TABLE table_name DROP COLUMN column_name;
答案 1 :(得分:2)
使用Invisible Type,来自 oracle 12cR2 。
ALTER TABLE LOG1
MODIFY operation INVISIBLE
这比删除特定列更好。如果需要显示,可以通过使用VISIBLE
列名称进行更改来恢复。
答案 2 :(得分:1)
在SQL中,delete
删除行而不是列。
Oracle中有三个选项:
NULL
。最后两个使用alter table
:
alter table t drop column col;
alter table t set unused (col);
答案 3 :(得分:-1)
update employee set commission=nvl2(commission,'','')
这将删除列中的所有数据