【初心者SE向け】A5:SQL Mk-2の使い方~ 接続からSQL実行、事故防止のコミット設定まで~

スポンサーリンク
MySQL

はじめに

前回の記事では、SQLの基本操作であるSELECT・UPDATE・DELETEについて紹介した。
今回は、実務でよく使われる無料のデータベースGUIツール「A5:SQL Mk-2(エーファイブ)」の基本的な使い方を紹介する。

A5:SQLはOracle、MySQL、PostgreSQL、SQL Serverなど主要なデータベースに対応しており、SQL実行だけでなくER図の自動生成やテーブル定義書の出力なども可能な多機能ツールである。本記事では、初心者SEがまず押さえておきたい「接続」「SQL実行」「コミット制御」の3点に絞って解説する。

A5:SQLとは

A5:SQL Mk-2は、データベースへの接続やSQL実行をGUIで行える無料のクライアントツールである。コマンドラインでSQLを打つよりも直感的に操作でき、実行結果をグリッド形式で確認・編集できる点が特徴である。

主な機能は以下の通り。

  • SQLエディタでのクエリ実行
  • 実行結果グリッドからの直接編集(反映ボタンでDBへ反映)
  • ER図の自動生成・逆生成
  • テーブル定義書の出力
  • SQL整形・補完機能

データベースへの接続

  1. A5:SQL Mk-2を起動する
  2. 「データベースを選択してください」の画面、または「データベースの追加と削除」から接続先を新規登録する
  3. データベースの種類(MySQL、PostgreSQL、Oracleなど)、ホスト名、ポート番号、ユーザー名、パスワードを入力する
  4. 「テスト接続」で接続確認を行い、問題なければ「OK」で登録する
  5. 登録した接続先をダブルクリックして接続する

初めて触るデータベースや、内容を確認するだけの用途であれば、接続時に「読み取り専用でログイン」にチェックを入れておくと、誤ってデータを変更してしまうリスクを避けられる。

SQLの実行

接続後、SQLエディタにSQL文を入力し、実行ボタン(またはCtrl+Enter)でSQLを実行する。

SELECT * FROM users WHERE age >= 20;

実行結果は画面下部にグリッド形式で表示される。SELECT結果はそのままグリッド上で編集し、「反映」ボタンを押すことでUPDATE相当の処理をSQL文を書かずに行うこともできる。ただし、複数行を編集した場合にどの行でエラーが起きたか分かりにくいという弱点もあるため、重要な更新処理は明示的にUPDATE文を書いて実行する方が安全である。

コミット制御による事故防止

A5:SQLは初期状態では初期状態では更新が即時コミットされる。。つまりUPDATEやDELETEを実行すると、その時点で即座にデータベースへ反映され、ロールバックできない。

前回の記事で触れた「WHERE句のつけ忘れによる全件更新・全件削除」のような事故を防ぐには、「データベースの更新時に自動的にトランザクションを開始する」設定を有効にし、コミット・ロールバックを手動で行う設定に変更しておくのが有効である。

設定手順

  1. メニューの「設定」→「オプション」を開く
  2. 「データベース接続」タブを選択する
  3. 「データベースの更新時に自動的にトランザクションを開始する」にチェックを入れて「OK」で保存する

この設定を有効にすると、UPDATEやDELETEを実行してもすぐには確定されず、画面上のコミット・ロールバックボタンが有効になる。実行結果を確認してから、

  • 問題なければ「コミット」ボタンで確定
  • 誤りがあれば「ロールバック」ボタンで取り消し

という運用が可能になる。本番環境でのデータ操作や、慣れないテーブルに対する更新作業では、この設定を基本にしておくとよい。

なお、共有DBや本番DBでは、トランザクションを長時間保持すると他の処理に影響する場合があるため、確認後は速やかにコミットまたはロールバックする。

まとめ

項目ポイント
接続確認作業のみなら「読み取り専用でログイン」を活用
SQL実行エディタから直接実行、結果はグリッドで確認
グリッド編集手軽だが複数行編集時のエラー特定はしづらい
コミット制御初期状態では更新が即時コミット。オプションで更新時に自動的にトランザクションを開始できる

A5:SQLは直感的に使える反面、初期設定のオートコミットのまま実務でUPDATE・DELETEを扱うと、前回の記事で紹介したWHERE句つけ忘れの事故につながりやすい。
ツールを使い始める段階で、コミット・ロールバックを手動制御する設定に切り替えておく習慣をつけておきたい。

コメント

タイトルとURLをコピーしました