エンタープライズ レベルのアプリケーションの普及に伴い、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 サイトの他の関連記事を参照してください。