MySQL は、Oracle がスポンサーとなり開発した、インターネット インフラストラクチャで広く使用されているリレーショナル データベース管理システムです。複数のオペレーティング システムと Go 言語を含むプログラミング言語をサポートし、大規模なデータ統合と高パフォーマンスのクエリをサポートする一連の機能を備えています。
MySQL は、各行がレコードを表し、各列がフィールドを表すテーブルベースのデータ構造を使用します。 SQL 言語を使用してデータを操作します。最も一般的な SQL 操作には、SELECT、INSERT、UPDATE、DELETE、CREATE TABLE があります。
Go 言語では、サードパーティの MySQL ドライバーを使用して MySQL データベースに接続し、クエリを実行できます。ただし、GO 言語の標準ライブラリにはすでに database/sql
パッケージが含まれており、このパッケージには標準 SQL データベース インターフェイスが実装されており、MySQL、PostgreSQL、SQLite などの他の便利で一般的な SQL データベースと対話できます。
したがって、MySQL にクエリを実行する Go アプリケーションの構築を開始する前に、MySql ドライバーをインストールする必要があります。迅速なインストールには、コマンド ライン コマンド go get -u github.com/go-sql-driver/mysql
を使用できます。
これは、Go 言語ではすべてのデータ アクセスが SQL.DB
接続を通じて行われる必要があるためです。ドライバーの目的は、database/sql
の関数にインターフェイス規約を実装することです。
Go 言語では、MySQL データベースへの接続の確立は接続文字列に基づいて行われます。接続文字列には、接続に必要なすべてのパラメータが含まれていますユーザー名、パスワード、ホスト名または IP アドレス、ポート番号、データベース名など。
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname") if err != nil { log.Fatal(err) }
Go 言語では、db.Query()
、db.QueryRow()## を使用できます。 #and
db.Exec() 関数は、MySQL データベース内のデータをクエリおよび操作します。
db.Query() この関数は複数のレコードをクエリするために使用され、
*sql.Rows オブジェクトを返します。
db.QueryRow() この関数は、単一レコードをクエリするために使用され、
resultset と同様の
*sql.Row オブジェクトを返しますが、返されるのはレコードの最初の行。通常、単一の一意のレコードをクエリするために使用されます。
db.Exec() この関数は、INSERT、UPDATE、DELETE などの非クエリ SQL ステートメントを実行するために使用され、
sql.Result オブジェクトを返します。
db.Query() 関数を使用してすべてのレコードをクエリします。シンプルなカウンターを使用してレコード数をカウントし、データの各行をコンソールに出力します。
rows, err := db.Query("SELECT id, name FROM users") if err != nil { log.Fatal(err) } defer rows.Close() count := 0 for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatal(err) } fmt.Printf("id=%d, name=%s\n", id, name) count++ } if err := rows.Err(); err != nil { log.Fatal(err) } fmt.Printf("Found %d users\n", count)
rows.Close() 関数は、データを取得した後に呼び出して、
*sql.Rows に関連付けられたデータベース リソースを解放する必要があります。同時に、コード内では
rows.Next() 関数が使用されており、処理できる行がまだあるかどうかを示すブール値を返します。さらに、この例では
rows.Scan() 関数を使用して、各行レコードの値を、この例で定義されている
id 変数と
name 変数にコピーします。たとえば、 、各値をコンソールに出力します。
db.Exec()# を使用することです。 ## 関数 。 insert ステートメントを db.Exec()
関数に渡すと、MySQL で SQL ステートメントとして実行されます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">result, err := db.Exec("INSERT INTO users(name, email) VALUES(&#39;John Doe&#39;, &#39;johndoe@gmail.com&#39;)")
if err != nil {
log.Fatal(err)
}
rowsAffected, err := result.RowsAffected()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Inserted %d rows into users table\n", rowsAffected)</pre><div class="contentsignin">ログイン後にコピー</div></div>result.RowsAffected()<p> を使用して結果セット内の影響を受ける行の数を取得し、この値を使用して更新されたデータの数をコンソールに出力できます。 <code>
以上がgolang が mysql データを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。