データのクエリ
接続 後、SQL ステートメントを実行して結果を取得できます。
SELECT プロシージャ
Query を使用して、ステートメントを実行できます。これにより、結果をフェッチするために使用できるRow オブジェクトが返されます。
rows, _ := db.Query("SELECT actor.attributes.email, repository.name FROM [publicdata].[samples].github_nested WHERE repository.name = 'EntityFramework'") defer rows.Close()
結果の反復処理
Next を使用して、結果セット内の行を反復処理できます。行から値を抽出するには、Scan を使用してカラムをローカル変数にバインドします。Scan に与えられたポインタの数は結果セットのカラム数と正確に一致しなければなりません。そうでなければ、Scan はエラーを返します。
for rows.Next() { var ( actor.attributes.email string repository.name string ) rows.Scan(&actor.attributes.email, &repository.name) fmt.Printf("actor.attributes.email = %s, repository.name = %s\n", actor.attributes.email, repository.name) }
Sql パッケージでデータを変換できる場合に限り、文字列以外にScan でtypes を使用できます。サポートされている型と型変換規則については、Sql パッケージドキュメントのScan 関数を参照してください。