首頁 > 後端開發 > Golang > 在Go語言中使用SQL Server:完整指南

在Go語言中使用SQL Server:完整指南

王林
發布: 2023-06-18 09:18:00
原創
3036 人瀏覽過

隨著企業級應用程式應用的廣泛使用,SQL Server也成為了企業級應用程式中使用最廣泛的資料庫之一。而且,隨著Go語言的流行,越來越多的開發人員希望在Go語言中使用SQL Server。在本文中,我們將介紹如何在Go語言中使用SQL Server,涉及連接、查詢、讀取和寫入資料等方面的完整指南。

連線到SQL Server資料庫

要連線到SQL Server資料庫,我們需要使用到 Microsoft提供的SQL Server驅動程式(即mssql)。這個驅動程式非常容易使用,因此讓我們進行安裝。

安裝SQL Server驅動程式

要安裝mssql驅動程序,我們需要在終端機中執行以下命令:

go get github.com/denisenkom/go-mssqldb
登入後複製

這個命令將下載並安裝mssql驅動程式。

連接到資料庫

一旦驅動程式安裝完成,我們就可以連接到SQL Server資料庫了。連線需要我們提供資料庫的伺服器位址、資料庫名稱、使用者名稱和密碼。以下是一個連線的基本範例:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/denisenkom/go-mssqldb"
)

func main() {
    server := "localhost\SQLEXPRESS"
    port := 1433
    user := "sa"
    password := "password123"
    database := "MyDatabase"

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
        server, user, password, port, database)
    db, err := sql.Open("mssql", connString)

    if err != nil {
        panic(err)
    }

    defer db.Close()

    // Connection successful. We can now start working with the database.
    fmt.Println("Connection successful.")
}
登入後複製

在這個範例中,我們指定了資料庫的伺服器位址為“localhostSQLEXPRESS”,連接埠為1433,使用者名稱為sa,密碼為password123,資料名稱為MyDatabase。連接字串被格式化為“My example connection string” format。我們使用該字串打開連接,並在連接成功之後提供了一個簡單的訊息作為確認。

查詢資料

一旦連線成功,我們就可以開始使用SQL指令從資料庫中查詢資料了。我們可以使用 db.Query() 來執行查詢語句,並使用 rows.Scan() 來掃描查詢結果中的每行資料。以下是一個基本的查詢範例:

func main() {
    server := "localhost\SQLEXPRESS"
    port := 1433
    user := "sa"
    password := "password123"
    database := "MyDatabase"

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
        server, user, password, port, database)

    db, err := sql.Open("mssql", connString)
    if err != nil {
        panic(err)
    }

    defer db.Close()

    // Query the database.
    query := "SELECT Name, Email FROM Customers WHERE Country = 'USA'"
    rows, err := db.Query(query)

    if err != nil {
        panic(err)
    }

    defer rows.Close()

    // Scan the results.
    for rows.Next() {
        var name string
        var email string
        err = rows.Scan(&name, &email)

        if err != nil {
            panic(err)
        }

        fmt.Println(name, email)
    }
}
登入後複製

在這個範例中,我們查詢了名為「Customers 」的表,該表位於MyDatabase資料庫中。我們只選擇了名為“Name”和“Email”的列,其中“Country”列為“USA”的行。

當我們執行查詢時,結果將會儲存在 query 變數中。然後,我們使用 db.Query() 執行查詢。它會傳回一個結果集,我們使用 rows.Scan() 掃描該結果集。最後,我們循環遍歷回傳的結果,列印每一行的資料。

寫入資料

在使用Go語言中的SQL Server時,寫入新資料與讀取資料非常相似。要寫入數據,我們只需使用 db.Exec() 執行 INSERT、UPDATE 或 DELETE 語句。下面是一個基本的寫入範例:

func main() {
    server := "localhost\SQLEXPRESS"
    port := 1433
    user := "sa"
    password := "password123"
    database := "MyDatabase"

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
        server, user, password, port, database)

    db, err := sql.Open("mssql", connString)
    if err != nil {
        panic(err)
    }

    defer db.Close()

    // Insert a new row.
    statement := "INSERT INTO Customers (Name, Email, Country) VALUES (?, ?, ?)"
    result, err := db.Exec(statement, "John Doe", "johndoe@example.com", "USA")

    if err != nil {
        panic(err)
    }

    rowsAffected, err := result.RowsAffected()
    if err != nil {
        panic(err)
    }

    // Write successful. Display the number of rows affected.
    fmt.Printf("%d rows affected.
", rowsAffected)
}
登入後複製

在這個範例中,我們執行了一個INSERT語句向名為「Customers」的表中插入一行資料。我們指定了「John Doe」的名稱,「johndoe@example.com」的電子郵件地址,以及「USA」的國家。我們使用 db.Exec() 來寫入數據,並使用 fmt.Printf() 列印結果。

總結

在這篇文章中,我們介紹如何在Go語言中使用SQL Server。我們了解如何連接到資料庫,執行查詢和寫入資料。我們也看到,Go語言使用SQL Server的過程非常簡單,因此,SQL Server成為了企業級應用程式的首選資料儲存解決方案之一。如果你是Go語言開發人員,並且你想在你的下一個專案中使用SQL Server,本文將為你提供非常有用的指南。

以上是在Go語言中使用SQL Server:完整指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板