【GO】データベース操作


情報収集と表示用途でデータベースを使ってみます。

データベース選定からGOでテストを動かすまでの備忘録。

実施環境はWindows10(64bit)です。

 

DBの準備

DB選定

まずは用途から通常のRDBかNoSQLかを考える。

なんとなく記憶にあるものを上げるとこんな感じでした。

  • RDB : Oracle、MySQLPostgreSQLSQLite、IBM DB2、MS SQL
  • NoSQL : MongoDB、AWS Dynamo、Google BigTable

調べてみるとNoSQLではRedis、Apache Cassandraというのも人気がみたいです。いわれてみると見覚えある。

仕事でもないし太字で書いたオープンソースのものを使いたい。

今回は色々とってきて組み合わせて使いたいのでRDBから選択する。

 

SQLiteは簡単で管理しやすい反面、小規模向けという印象がある。

今回はMySQLかPostgreSQLのどちらでもよかったので人気のありそうな方を選ぶ。

こういう時の定番でGitHubで検索。

GitHub Link Repository with GO
MySQL 126,129 1,956
PostgreSQL 28,741 881
SQLite 3,4614 333

 

MySQLを使うことにします。

DBインストール

Windowsにmysqlを入れてなかったのでインストール。

インストーラは32bitしかありませんが、これで64bitもインストールされます。

インストーラを選択後ログインを求められますが、アカウントがなくても下のリンクからダウンロード可能です。

 

インストーラはデフォルトのまま進めました。

途中Python3.7がないといわれましたが、3.5.2は入ってたので無視して続ける。

 

MySQL DBの設定

上部アイコンからテスト用スキーマを作成します。

 

ナビゲータ下のタブを切り替えて先ほど作成したスキーマを確認。

Table部分で右クリックから「Create Table」を選択します。

 

出来上がったTableを右クリックして「Select Rows – Limit 100」をクリックすると空の票が表示されます。

適当に入力して「Apply」を押すことでインサートできます。

ここまで1つも自分でSQLを書いていません。楽ですね。

 

Goでデータベースアクセス

DBドライバとSQLの2種類のパッケージが必要になります。

SQLの方は色々ありますが最初はデフォルトの”database/sql”を使います。

 

ドライバの方はgetする必要があります。

 

元号に令和を入れて一覧を取得してみます。

db部分のtcpは今回はどれでもOKです。

Openのサンプルでdbnameやdatabase_nameとか書かれていて最初は「Local instance MySQL80」とか入れて混乱してましたが、普通にスキーマ名でいいです。

 

Workbenchの方を見てみるとちゃんと令和が追加されていました。

 


コメントを残す

メールアドレスが公開されることはありません。