MySQL中INSERT和UPDATE有什么区别?

37

在我看来,INSERTUPDATE 看起来是做同样的事情。

是否有场合我应该使用 INSERT,而不是使用 UPDATE,反之亦然?


1
如果你真的相信:1)创建一个表,2)立即运行一个UPDATE语句,3)从表中SELECT *。 - OMG Ponies
6个回答

53

CRUD 操作 中,INSERT 是 'C',而 UPDATE 是 'U'。它们是持久性存储的四个基本功能之一。其他两个是 SELECTDELETE。没有这至少四个操作,一个典型的数据库系统就不能被认为是完整的。

使用 INSERT 来插入新记录。

使用 UPDATE 来更新现有记录。


11
为什么不能直接在现有记录上插入数据?可能是 SQL 不允许这样做,但它们不是等效的吗? - ZL1Corvette
在CQL中(而不是MySQL),您可以将数据插入到现有数据中。但是主键必须相同。 - mik3fly-4steri5k

49

无法更新不在表格中的行。

无法插入已经存在于表格中的行。


3
如果你需要向一个可能已经有数据的列中添加数据,是否有一种强制插入模式或某种插入-更新混合模式? - Tom
在mysql中,我们有EXISTS关键字和IFNULL关键字来检查所引用的数据是否处于某种状态。它看起来像是INSERT INTO table_name IFNULL,然后是UPDATE table_name IF EXISTS。这种方法可能需要更多的行数,而且说实话可能有更好的解决方案,但至少它能够工作。 - Brakke Baviaan

4

插入操作是将数据添加到表中,更新操作是更新已经在表中的数据。


1
一个 UPDATE 语句可以使用 WHERE 子句,但是 INSERT 不行。

1
这不是真的。在https://learn.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=sql-server-2017上有使用WHERE的INSERT示例。 - James Jenkins

1

插入是将新记录放入表中。而更新使您能够修改已插入的记录,例如修改数据类型等。


-1

插入可用于在空白行中插入新记录。而更新可用于更新非空白的行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接