2017/09/25 関西地区PostgreSQL勉強会
A5:SQL Mk-2の
便利な機能をお教えします
• 名前: ester41
• 所属: 某電力系子会社
• 仕事: 保守・設計・開発などSE作業全般
• 言語: Perl
• 趣味: ツーリング・献血
• メモ: PostgreSQLは9.2から使い始めました。
自己紹介
みなさんはSQLを
どうやって書いていますか?
一例
• コマンドライン上で直書き
• SQL Server Management Studio(SSMS)で開発
• 有料SQL開発ソフトで開発
• メモ帳一択!
etc…
みなさんはどのデータベースを
使用していますか?
一例
• 商用
– Oracle Database
– IBM DB2
– Microsoft SQL Server
• オープンソース
– PostgreSQL
– MySQL
– MariaDB
etc…
複数のデータベースを
使用した開発って大変ですよね
そんなあなたに
A5:SQL Mk-2
A5:SQL Mk-2とは?
複雑化するデータベース開発を支援するために
開発されたフリーのSQL開発ツールです。
様々なデータベースに対応しています。
開発者は松原正和さんで、このソフトを
1998年から開発されています。
ツールの読み方は、「エーファイブ・エスキューエル・マークツー」
です。
このスライド中の略称として、A5(エーファイブ)を使用します。
対応データベース
商用データベース
• Oracle Database
• IBM DB2
• Microsoft SQL Server
• InterBase
オープンソースデータベース・その他
• PostgreSQL
• MySQL
• MariaDB
• Firebird
• SQLite
• Microsoft Access
まずはインストール
してみましょう
インストール(1/4)
A5公式サイトの”Download here”をクリックします。
http://a5m2.mmatsubara.com/
インストール(2/4)
Vectorの32ビット版(x86 edition)のダウンロードページを
クリックします。
インストール(3/4)
ダウンロードした圧縮ファイルを、適当なフォルダーに解凍します。
インストール(4/4)
解凍したA5の実行ファイルのショートカットを作成します。
64ビット版と32ビット版の違いは?
基本的に32ビット版を使用すれば、問題ありません。
データベース接続に使用するドライバーのバージョンに依存します。
公式サイトにフローチャートが存在しますので、
詳しくはそちらをご覧ください。
http://a5m2.mmatsubara.com/tips/other_x86_x64/
OpenSSLの導入(1/6)
RAD Studioの解説ページから、ダウンロードサイトにアクセスします。
http://docwiki.embarcadero.com/RADStudio/Berlin/ja/OpenSSL
OpenSSLの導入(2/6)
32ビット版の最新版をダウンロードします。
64ビット版OSをお使いの方は、64ビット版もダウンロードします。
OpenSSLの導入(3/6)
ダウンロードした圧縮ファイルを解凍します。
OpenSSLの導入(4/6)
32ビット版をお使いの方は、i386フォルダーを、
64ビット版をお使いの方は、x64_86フォルダーを開きます。
OpenSSLの導入(5/6)
libeay32.dllとssleay32.dllを、
%SystemRoot%¥system32にコピーします。
OpenSSLの導入(6/6)
64ビット版の方のみ、i386フォルダーのlibeay32.dllとssleay32.dllを、
%SystemRoot%¥SysWOW64にコピーします。
Windows端末じゃないんだけど…
MacやLinuxの場合、Wineを利用して動かすことは一応可能です。
Wineで動作させた場合、以下の制限が発生します。
• ERエディタで線やフォントのアンチエイリアスは効きません。
• ところどころテキスト表示が切れてしまう箇所があります。
• OLE DBによる接続は検証していません。
• Excelへの出力は検証していません。
• ER図の印刷はできないか、できてもレイアウトが正しく出力されません。
使用前にフォント等の設定が必要となります。
詳しくは、公式サイトをご確認ください。
http://a5m2.mmatsubara.com/tips/other_on_the_wine/
インストールは完了です。
動かしてみましょう。
初期設定(1/3)
初期起動時に、下記のようなダイアログが表示されます。
ここでは”設定ファイル”を選んでください。
初期設定(2/3)
次にパスワードの設定を求められますが、”いいえ”を選択してください。
初期設定(3/3)
次に、データベースの登録を促されます。
以上で初期設定が完了です。
設定ファイルは以下の特徴があります。
• アンインストール時にフォルダーを削除するだけで設定を削除できます。
• USBメモリー等で設定を持ち運びできます。
設定ファイルを選ぶ理由
この勉強会ではお試しの意味を兼ねているため、設定を削除しやすくする
ため選んでいます。
データベースの登録
データベースの登録とは?
A5は、接続するデータベースを登録しないと使用できません。
Heroku postgresを登録してみましょう。
データベースの登録 (1/13)
Heroku postgresに接続するために必要な情報を確認します。
ダッシュボードの”Resource”をクリックします。
データベースの登録 (2/13)
“Heroku postgres”をクリックします。
データベースの登録 (3/13)
Heroku Dataの”Settings”をクリックします。
データベースの登録 (4/13)
“View Credentials…”をクリックします。
データベースの登録 (5/13)
Database Credentialsの以下の項目を使用します。
Host / Database / User / Password
データベースの登録 (6/13)
A5に戻ります。
初期設定の後に下記のウィンドウが表示されていると思います。
表示されていない場合は、ツールバーの
左から5つ目のアイコンをクリックしてください。
データベースの登録 (7/13)
“追加”ボタンをクリックします。
データベースの登録 (8/13)
“PostgreSQL(直接接続)”ボタンをクリックします。
データベースの登録 (9/13)
事前に調べた接続情報を入力します。
“パスワードを保存する”にチェックを入れます。
データベースの登録 (10/13)
“SSL”タブに移動し、SSLモードを”優先(SSL接続を優先)”に変更します。
データベースの登録 (11/13)
“テスト接続”ボタンをクリックし、接続に成功すれば入力した値で
登録を行います。
“OK”ボタンをクリックしてポップアップを閉じましょう。
データベースの登録 (12/13)
“OK”ボタンをクリックして登録を行います。
データベース別名は、” heroku/postgres”と入力します。
入力後、”OK”ボタンをクリックします。
データベースの登録 (13/13)
データベースの追加と削除にデータベースが登録されていれば完了です。
“閉じる”ボタンをクリックして、ウィンドウを閉じましょう。
データベース接続
データベースに繋いでみましょう
データベースの接続方法はいくつか存在します。
お好きな方法で接続してみましょう。
データベースの繋ぎ方 (1/4)
データベースツリーのデータベース名をダブルクリックします。
データベースの繋ぎ方 (2/4)
データベースツリーの”>”をクリックします。
データベースの繋ぎ方 (3/4)
データベースツリーのデータベース名で右クリックします。
“データベースを開く”をクリックします。
データベースの繋ぎ方 (3/4)
SQLエディター上部の接続データベースを変更します。
SQLを書き、実行します。
接続後、すぐにSQLが実行されます。
データベースの繋ぎ方 (4/4)
接続時に認証情報等を入力するウィンドウが表示されます。
入力済みのはずです。“接続”ボタンをクリックします。
お疲れさまでした。
SQLを実行する
環境が整いました!
A5:SQL Mk-2の機能
おことわり
ここから先の機能紹介では、
内部にインストールしたデータベースを
用いて解説を行います。
解説を行う機能一覧
A5には様々な機能が存在します。
押さえておきたい、便利な機能のみ絞って解説を行います。
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
SQL入力支援機能(1/3)
Visual StudioのIntelliSenseと同じ様な、入力支援機能が存在します。
SQL入力支援機能(2/3)
A5の入力支援機能は非常に強力で、複雑なサブクエリーも解析します。
使い方
SQLエディター上で、Ctrlキー+SpaceキーまたはF4キーを押すことで
ウィンドウを表示します。
表示項目
入力支援で表示する項目は以下の通りです。
• テーブル名
• テーブル名エリアス
• テーブルカラム名
• SQLパラメータ
SQL入力支援機能(3/3)
入力支援は、コメントも分析します。
テーブル・カラムコメント
A5は、テーブルやカラムにコメントを設定すると、
別名として扱うようになっています。
入力支援はコメントも
検索対象となっています。
部分一致検索のため、
一部しか覚えていない場合、
非常に強力な機能となります。
※ 検索モードを前方一致に
変更することは可能です。
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
SQLエディター用疑似命令(1/8)
SQL実行時にA5に対して命令を与えることができます。
SQLエディター用疑似命令(2/8)
疑似命令を使用することで、パラメーターの埋め込みや
出力カラムの別名を付けることができます。
使い方
疑似命令は、SQLのコメントの中に記述します。
記述例
記述は2パターン存在します。
• 1行パターン
--* [疑似命令]
• 複数行パターン
/**
[疑似命令]
[疑似命令]
*/
SQLエディター用疑似命令(3/8)
疑似命令は、以下の種類が存在します。
• DataTitle
結果セットのタイトルを付けます。
• Captions
結果セットの各カラムにキャプションを付けます。
• SetParameter
パラメーターの値を設定します。
• ShowParameterWindow
パラメーター設定画面を表示します。
SQLエディター用疑似命令(4/8)
DataTitle – 結果セットのタイトル設定
この命令を定義することで、
結果セット(SQLの実行結果)に
名前を付けることができます。
また、Excel出力時に
シート名として利用されます。
SQLエディター用疑似命令(5/8)
Captions – 結果セットのカラム名設定
この命令を定義することで、
結果セットのカラムに
名前を付けることができます。
また、Excel出力時に
列名とキャプションが
併記されます。
SQLエディター用疑似命令(6/8)
SetParameter – パラメーターの設定
SQLに埋め込んだパラメーター
の値を定義します。
SQLに埋め込むパラメーターは
“:パラメーター名”か
“@パラメーター名”の
どちらかが使用可能です。
※設定によります。
SQLエディター用疑似命令(7/8)
SetParameter – パラメーターの設定
SetParameterの書式
• 第一引数: パラメーター名
• 第二引数: 値(Stringの場合は、”’”(シングルクォーテーション)で囲みます。)
• 第三引数: 値のデータ型
データ型の一覧
• 文字列型: String
• 整数型: Integer
• 実数型: Float
• 論理値型: Boolean
• 日付型: Date
• 時刻型: Time
• 日付/時刻型: DateTime
SQLエディター用疑似命令(8/8)
ShowParameterWindow – パラメーター設定画面の表示
この命令を設定すると、
SQL実行時にSQLパラメーター
設定画面を開きます。
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
クエリーデザイナー(1/2)
SQLが書けなくても、クエリーを自動生成することができます。
クエリーデザイナー(2/2)
クエリーデザイナーについて
クエリーデザイナーとは?
クエリーデザイナーは、GUIでSELECT文を作成することが出来る機能です。
使用方法は、Microsoft AccessやSSMSとほぼ同等の機能を持っています。
クエリーデザイナー表示方法
SQLエディター上で右クリック->クエリーデザイナを選択することで表示します。
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
実行計画取得機能(1/2)
SQLの実行計画を取得することが出来ます。
実行計画取得機能(2/2)
実行計画とは?
実行計画は、データベースサーバーがクエリーを解析し、どのように実行するかを示したものとなり
ます。
実行計画を読むことで、クエリーの実行順序やインデックスの使用状態などを判断することが出来ま
す。
実行計画表示方法
SQLエディター上で右クリック->SQLの実行計画を選択することで表示します。
行が赤色の部分は何?
行が赤色になっている個所は、パフォーマンスに問題があると思われる箇所です。
パフォーマンスチューニングの参考になります。
実行計画について
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
ER図作成機能(1/12)
ER図を作成することが出来ます。
ER図作成機能(2/12)
ER図の作成は大変ですよね。
システム開発を行う際、ER図を作成してからテーブル設計を行いますが、
設計が途中で変わったり、システム改修でテーブル定義が変更となったときに
ER図を変えるのは大変かと思います。
(Excelで作成していたりすると特に…)
A5はER図に関連した以下の機能が存在します。
• ER図を作成する機能
• ER図からDDL(CREATE文)を作成する機能
• 変更したテーブルとER図を同期する機能
• テーブルからER図をリバース生成する機能
ER図作成機能(3/12)
ER図の作成画面の表示(1/2)
ツールバーの左から1つ目の
アイコンをクリックしてください。
新規ドキュメントウィンドウは、
“ER図”をクリックします。
ER図作成機能(4/12)
ER図の作成画面の表示(2/2)
ER図作成画面が表示されると、
プロパティ画面が自動で表示されます。
プロジェクト名等を設定後、
“OK”ボタンをクリックします。
ER図の作成は、解説だけで時間が
足りなくなってしまいますので省略します。
A5のオンラインマニュアルをご参照ください。
ER図作成機能(5/12)
ER図からDDLの生成(1/3)
ER図の作成が完了すれば、
今度はテーブルの作成を行います。
メニューの”ER図”->”DDLを作成する”
をクリックします。
ER図作成機能(6/12)
ER図からDDLの生成(2/3)
DDLの生成ウィンドウが表示されるので、
設定を確認後”DDL生成”をクリックします。
ER図作成機能(7/12)
ER図からDDLの生成(3/3)
DDLが生成されますので、
実行すればテーブルが
作成されます。
ER図作成機能(8/12)
変更したテーブルとER図を同期する(1/2)
テーブルを変更した後、
ER図を後で変更することが可能です。
メニューの”ER図”->
”データベースとの同期処理”
をクリックします。
ER図作成機能(9/12)
変更したテーブルとER図を同期する(2/2)
同期ウィンドウが表示されるので、
設定を確認後”同期”をクリックします。
ER図作成機能(10/12)
テーブルからER図をリバース生成する(1/3)
ER図がない状態でも、
データベースからER図を
リバース生成することが出来ます。
データベース上で右クリック->
”ER図のリバース生成”
をクリックします。
ER図作成機能(11/12)
テーブルからER図をリバース生成する(2/3)
リバースER図生成ウィンドウが表示されるので、
作成したいテーブルを選択後、
”リバースER生成”をクリックします。
ER図作成機能(12/12)
テーブルからER図をリバース生成する(3/3)
リバース結果が表示されます。
リレーション、配置等を
自分で引き直せばER図の
作成が完了します。
※外部キー制約等が
設定されている場合、
リレーションが自動で
設定されます。
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
テーブル定義書作成機能(1/4)
A5はテーブル定義書も作成(出力)することが出来ます。
テーブル定義書作成機能(2/4)
テーブル定義書の作成も大変ですよね。
ER図と同様に、設計が途中で変わったりシステム改修で
テーブル定義が変更となったとき、テーブル定義書を変えるのは大変かと思います。
A5はテーブル定義書をデータベースから自動作成することが出来ます。
テーブル定義書作成機能(3/4)
テーブル定義書の作成(1/2)
テーブル定義書を出力したい
データベース上で右クリック->
”テーブル定義書作成”
をクリックします。
テーブル定義書作成機能(4/4)
テーブル定義書の作成(2/2)
テーブル定義書作成ウィンドウが
表示されるので、
出力したいテーブルを選択後、
”テーブル定義書作成”ボタンをクリックします。
• SQL入力支援機能
• SQLエディター用疑似命令
• クエリーデザイナー
• 実行計画取得機能
• ER図作成機能
• テーブル定義書作成機能
• データのエクセル出力
データのエクセル出力(1/3)
A5はクエリーの実行結果やテーブルデータを出力することが出来ます。
データのエクセル出力(2/3)
クエリー実行結果の出力
クエリーを実行後、
結果セットの
”エクセル出力”ボタンを
クリックします。
データのエクセル出力(3/3)
テーブルデータの出力
テーブルを開いた後、
”エクセル出力”ボタンを
クリックします。
※ビューでも出力が可能です。
あとがき
あとがき
A5:SQL Mk-2には痒い所に手が届く、
もっと便利な機能が存在します。
また、DMonkyスクリプトで自分好みに
改良することも可能です。
ぜひ、使い込んで自分に合った使い方を見つけてください。
参考資料・使用テンプレート
• A5:SQL Mk-2公式ページ
http://a5m2.mmatsubara.com/
• OpenSSL - RAD Studio
http://docwiki.embarcadero.com/RADStudio/Berlin/ja/
OpenSSL
• ALLPPT.com Free PowerPoint Templates,
Diagrams and Charts
http://www.free-powerpoint-templates-design.com/

A5 SQL Mk-2の便利な機能をお教えします