Sql 如何编写delete语句

Sql 如何编写delete语句,sql,oracle,Sql,Oracle,我想写一个删除查询。下面是我已经想到的,但是我不确定它是否正确,我担心我可能会删除一些我不应该删除的内容 Delete from TABLE1 where DATE = 202002 此表包含5个字段,我需要从该表中删除我列出的仅此日期的所有数据。我也在考虑这样写(下面的例子),不确定哪一个是正确的 Delete field1, field2, field3, field4 field5 from TABLE1 where DATE = 202002 请告知 另外,我在测试环境中工作

我想写一个删除查询。下面是我已经想到的,但是我不确定它是否正确,我担心我可能会删除一些我不应该删除的内容

    Delete from TABLE1
where DATE = 202002
此表包含5个字段,我需要从该表中删除我列出的仅此日期的所有数据。我也在考虑这样写(下面的例子),不确定哪一个是正确的

Delete field1, field2, field3, field4 field5 from TABLE1
where DATE = 202002
请告知


另外,我在测试环境中工作

第一种形式是正确的:

DELETE FROM YOUR_TABLE
  WHERE SOME_FIELD = 'SOME VALUE'

您不能将字段名放在删除后,因为您删除的是整行,而不仅仅是几个字段。

这里有几点不清楚,所以让我们从基础开始

首先,删除查询将删除满足0个或多个条件的信息记录(行)。如果您的日期字段确实是基于整数的,那么您编写的第一个查询就可以正常工作

第二条语句将不起作用,因为delete语句对记录而不是列起作用。如果您想保留记录但删除单个字段数据,您可以这样做(注意,这是T-SQL语法,但可能接近Oracle):


您可以使用UPDATE语句代替DELETE(删除数据行而不是数据列),如:


第一个非常正确,但是您的
Date
列的类型是什么,以及您的数据库是什么?不确定您所说的日期列的类型是什么意思。我列出日期的格式是字段中的格式。它也是一个oracle数据库。
CREATE TABLE
语句中的
DATE
列是如何定义的?它是什么数据类型?“where date=”本身无效,因为它表示“where the column name'date'等于…”,而“date”是保留字,因此不能是列名。除此之外,由于您后来将其标识为“date_field”(合法,但看起来仍然不是真实名称)并且是日期类型,因此您可以将其与数字进行比较。这迫使oracle将数字转换为日期,这可能会也可能不会按照您预期的方式工作。请记住,oracle日期类型始终包括时间,精确到秒。所以假设202002代表2020年2月,你仍然需要在比较中考虑日期和时间。我强烈怀疑你没有删除你认为你是什么。如果你得到了预期的结果,那纯粹是运气。
第一种形式是正确的
。。。如果是约会的话就不会了column@TimBiegeleisen-一般形式(
DELETE FROM TABLE WHERE
)是正确的,这就是为什么在所示示例中,我特别使用了除
DATE
之外的列名和一个似乎是数字的值
DATE
作为一个栏目名称,让人想起……CTHULHU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:-)运行delete语句后是否必须“提交”?我的第一个查询成功了。谢谢你们向我解释这件事。
Update Table1 set
Field1 = Null,
Field2 = Null,
Field3 = Null,
Field4 = Null,
Field5 = Null
where 
Date = 202002
UPDATE TABLE1 SET 
field1 = NULL, field2 = NULL, field3 = NULL, field4 = NULL, field5 = NULL 
WHERE DATE = 202002