Go での SQL Server の使用: 完全ガイド

王林
リリース: 2023-06-18 09:18:00
オリジナル
2978 人が閲覧しました

エンタープライズ レベルのアプリケーションの普及に伴い、SQL Server はエンタープライズ レベルのアプリケーションで最も広く使用されているデータベースの 1 つになりました。さらに、Go 言語の人気に伴い、SQL Server を Go 言語で使用したいと考える開発者が増えています。この記事では、接続、クエリ、データの読み取りと書き込みなどの完全なガイドを含め、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、パスワードを passwd123 として指定します。データ名は MyDatabase です。接続文字列は、「接続文字列の例」形式でフォーマットされます。この文字列を使用して接続を開き、接続が成功した後に確認として簡単なメッセージを提供します。

データのクエリ

接続が成功したら、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)
    }
}
ログイン後にコピー

この例では、MyDatabase データベースにある "Customers" という名前のテーブルをクエリします。 「名前」と「電子メール」という名前の列があり、「国」が「USA」としてリストされている行のみを選択しました。

クエリを実行すると、結果はクエリ変数に保存されます。次に、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 はエンタープライズ レベルのアプリケーションで推奨されるデータ ストレージ ソリューションの 1 つになりました。あなたが Go 開発者で、次のプロジェクトで SQL Server を使用したい場合、この記事は非常に役立つガイドを提供します。

以上がGo での SQL Server の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート