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中文網其他相關文章!