Go SQL 包提供了执行 SQL 语句的方法。主要有两个方法:DB.Exec()和DB.Query()。
DB.Exec()用于执行不返回任何行的SQL语句,例如INSERT、UPDATE 和 DELETE 语句。 DB.Query() 用于执行返回行的 SQL 语句,例如 SELECT 语句。
您引用的书指出“如果函数名称包含 Query,则它是旨在询问数据库问题,并将返回一组行,即使它是空的。不返回行的语句不应使用它们应该使用的查询函数; Exec()."
这是事实,但这不是故事的全部。 DB.Exec() 也可用于执行返回行的 SQL 语句。但是,DB.Exec() 将返回受该语句影响的行数,而 DB.Query() 将返回一个 *Rows 对象,可用于迭代结果集中的行。
那么,什么时候应该使用 DB.Exec() 以及什么时候应该使用DB.Query()?
当您需要执行不返回任何行的 SQL 语句并且想知道受语句影响的行数。当您需要执行返回行的 SQL 语句时,请使用
DB.Query()并且您想要迭代结果集中的行。
为什么使用准备好的语句?准备好的语句可以提高 SQL 查询的性能。当您准备语句时,数据库服务器会编译该语句并将编译后的语句存储在内存中。这意味着数据库服务器不必在每次执行语句时重新编译该语句。
要使用准备好的语句,可以调用 DB.Prepare() 方法。此方法采用 SQL 语句作为参数并返回 *Stmt 对象。然后,您可以通过调用 Stmt.Exec() 或 Stmt.Query() 方法来执行准备好的语句。
是否应该使用准备好的语句取决于应用程序的性能特征。如果您多次执行相同的 SQL 语句,那么使用准备好的语句可以提高应用程序的性能。
以上是Go SQL:何时使用'DB.Exec()”、'DB.Query()”和准备好的语句?的详细内容。更多信息请关注PHP中文网其他相关文章!