読者です 読者をやめる 読者になる 読者になる

Windows10にPostgreSQL、GUIデータベース操作ツール A5:SQL Mk-2をインストール

PostgreSQL

PostgreSQLをインストール

Windows10でPostgreSQLをインストールします。

ダウンロード — NPO法人 日本PostgreSQLユーザ会

PostgreSQLインストーラーがダウンロードできます。

今回は、ダウンロードリンクからWindowsのURLを選択しました。

f:id:ts0818:20170211162145j:plain

PostgreSQL 9.6.2』、『Windows x86-64』を選択し『DOWNLOAD NOW』をクリックします。 

f:id:ts0818:20170211162146j:plain

ダウンロードされたexeファイルをクリックすれば、Setup(インストーラー)が起動します。

f:id:ts0818:20170211162147j:plain

『Next >』をクリックします。

f:id:ts0818:20170211162148j:plain

インストール先です。デフォルトにしました。

f:id:ts0818:20170211162149j:plain

データ格納先です。デフォルトにしました。

f:id:ts0818:20170211162150j:plain

postgresのデフォルトのユーザーのパスワードを指定します。

f:id:ts0818:20170211162151j:plain

ポート番号を指定します。デフォルトにしました。

f:id:ts0818:20170211162152j:plain

ロケールはJapaneseを選びました。

f:id:ts0818:20170211162153j:plain

インストールの準備ができたので、『Next >』をクリックします。

f:id:ts0818:20170211162154j:plain

 インストールが始まります。

f:id:ts0818:20170211162155j:plain

インストールが完了しました。チェックボタンにチェックを入れたままFinishボタンを押すと、スタックビルダが起動します。

f:id:ts0818:20170211162156j:plain

スタックビルダでは追加ソフトウェアをインストールできます。今回はキャンセルを押して終了しました。

f:id:ts0818:20170211162157j:plain

『はい(Y)』を選択します。

f:id:ts0818:20170211162158j:plain

 

Windowsのシステムの環境変数に追加

コマンドプロンプトなどで、psqlコマンドを使用する際に便利なように、パスを設定しておきます。

自分の場合は、『C:¥Program Files¥PostgreSQL¥9.6¥bin』を、環境変数pathに追加します。PostgreSQLがインストールされた場所に合わせます。

f:id:ts0818:20170211164900j:plain

『システム』>『システムの詳細設定』>『環境変数(N)』を選択します。

f:id:ts0818:20170211164859j:plain

今回は『システム環境変数(S)』に『新規』で『PostgreSQL』という項目を作り、『C:¥Program Files¥PostgreSQL¥9.6』までを登録してます。 

そのあとで、『システム環境変数(S)』の『Path』を選択し、『編集(I)』を選択。

f:id:ts0818:20170211165841j:plain

『新規』で、一番下のところに『%PostgreSQL%¥bin』と追加し、『OK』をクリックします。 

f:id:ts0818:20170211165842j:plain

パスが登録できていると、コマンドプロンプトで、cdコマンドでC:¥に移動したあと、

psql --version

と打って実行し、PostgreSQLのバージョンが表示されれば、パスの設定もOKです。

f:id:ts0818:20170211172830j:plain

 

PostgreSQLに接続

せっかくなので、コマンドプロンプトPostgreSQLに接続を試み、MySQLと同じ感覚で、『psql -u postgres』としたら怒られました。正しくは、

psql -U postgres

大文字のUじゃないとアカンようです。そのあとパスワードを入力します。

f:id:ts0818:20170211173812j:plain

postgres=#

と表示されるとOKのようです。続いて、データベースを作成します。

create database database_name encoding encoding_name;

encoding_nameに指定できるものの例です。

名前説明対応言語
UTF8 Unicode、8ビット すべて
SJIS Shift JIS 日本語
EUC_JP Extended UNIX Code-JP 日本語
LATIN1 ISO 8859-1、ECMA 94 西ヨーロッパ

データベースの作成 - データベースの作成 - PostgreSQLの使い方

実際にデータベースを作成。

create database Java_Postgre encoding 'UTF-8';

データベースの一覧は

¥l

で確認できます。

ただ、PosrgreSQLでは大文字が小文字に変換されてしまうようです。キャメルケースは使えず、スネークケースしかいけない?のか分かりませんが。

f:id:ts0818:20170211173813j:plain

とりあえず、作成したデータベースを選択し、テーブルを作成してみたいと思います。

¥c java_postgres

データベースが選択出来たら、テーブルを作成。

最初にNG集。失敗の数々。

その1

テーブル名に『予約語』のorderを使うという失敗。

f:id:ts0818:20170211192313j:plain

その2

複合主キーの場合のPrimary keyの追加の仕方が分からない。

f:id:ts0818:20170211192314j:plain

⇩  下記サイトに助けてもらいました。

PostgreSQL-テーブルの作成

 

 

ordersテーブル作成

CREATE TABLE orders(
  order_id        int,
  order_date      date,
  client          varchar(50),
  order_count     int
);

order_idにす主キー(primry key)をつけ忘れたので、

ALTER TABLE orders ADD PRIMARY KEY(order_id);

order_idカラムを自動連番(MySQLでいうところのauto_increment)にしたかったのでorder_idカラムのデータ型を変更

が、エラーに!

f:id:ts0818:20170211224119j:plain

 型"serial"は存在しません、って摩訶不思議ですね。

⇩ 参考サイトはあるようですが、今回は保留。serialもしくはbigserialを指定する場合はテーブル作成時に決めてしまうのが良いみたいです。 

integer 型カラムを serial 型に変更する|にょきにょきのお勉強

postgreSQLでautoincrimentを実装する | 日記の間 | あかつきのお宿

⇩  データ型をserialとすると、MySQLでいうところのauto_incrementを実現できるとのこと。

PostgreSQLでMySQLのようなAUTO_INCREMENTをしたいとき。 | こととこネット

ちなみに、serialはデータ型ではないようです。テーブルでserialを指定したカラムのデータ型はIntegerになっています。bigserialというものもあるようです。

postgresでserial型のキーが溢れてしまった - kawaken's blog

orders_detailsテーブル作成

CREATE TABLE order_details(
  order_id        int,
  order_line      serial,
  order_item_name varchar(50),
  order_date      date,
  constraint KEY_NAME primary key(
    order_id,
    order_line
  )
);

外部キーをつけ忘れたので

ALTER TABLE order_details ADD CONSTRAINT FK_KEY
  FOREIGN KEY(order_id)
  REFERENCES orders(order_id);    

 

テーブルを確認。

¥dt;

f:id:ts0818:20170211193403j:plain

テーブルの構造を確認。table_nameの部分は作成したテーブル名を入力してください。

¥d table_name    

f:id:ts0818:20170211193404j:plain

『order_id』、『order_line』に複合主キーが設定されてることが確認できました。

PostgreSQLとの接続を切断するには、

¥q;   

コマンドでいけるようです。

⇩  PostgreSQLの基本的なコマンドは下記サイトへ

PostgreSQLの基本的なコマンド - Qiita

 

A5:SQL Mk-2というGUIツールでデータベースの操作

MySQLphpMyAdminが存在するように、PostgresSQLにもpgAdminというGUIによるデータベースを操作するためのツールが用意されている(クライアント側に別途インストールが必要?)ようですが、職場の先輩に教えていただいた、A5:SQL Mk-2 というGUIツールがイケてるようなので、そちらをインストール。

A5:SQL Mk-2 - フリーの汎用SQL開発ツール/ER図ツール .. 松原正和 にアクセス。

『ダウンロードはこちら』をクリックします。(旧いバージョンなどをダウンロードしたい場合はページの下のほうに用意されています。)

f:id:ts0818:20170211193405p:plain

『ダウンロードページへ』をクリックします。自分はパソコンが64bit版なので、『(x-86 edition)』を選択しました。

f:id:ts0818:20170211200110p:plain

『このソフトを今すぐダウンロード』をクリックします。

f:id:ts0818:20170211200130j:plain

ダウンロードされたファイルのA5M2.exeというファイルが実行ファイルです。

f:id:ts0818:20170211200240j:plain

適当な場所に展開(解凍)しましょう。『A5M2.exe』を実行します。

以下、 A5:SQL Mk-2をA5M2と略称でいきたいと思います。

f:id:ts0818:20170211201348j:plain

初回接続時に開かれますが、今回は『設定ファイル』を選択しました。

f:id:ts0818:20170211203626j:plain

『はい』を選択します。

f:id:ts0818:20170211203627j:plain

『パスワード』を設定します。

f:id:ts0818:20170211203628j:plain

『OK』をクリックします。

f:id:ts0818:20170211203629j:plain

『追加』を選択します。

f:id:ts0818:20170211203630j:plain

PostgreSQL(直接接続)』を選択します。PostgreSQLのデータベースには、A5M2は、直接接続が推奨らしいですが、JavaODBC経由じゃないと接続できないらしい?です。

f:id:ts0818:20170211203631j:plain

作成した『データベース名』を入力し、『パスワード』を入力します。『サーバー名』『ポート番号』『ユーザーID』はデフォルトにしました。

f:id:ts0818:20170211203633j:plain

 『テスト接続』で『OK』がでればデータベースに接続成功です。『OK』をクリックします。

f:id:ts0818:20170211203632j:plain

 『OK』を選択します。

f:id:ts0818:20170211203634j:plain

A5m2のGUI画面に表示されたデータベースをクリックすると、ログイン情報を求められるので『パスワード』を入力し『OK』。

f:id:ts0818:20170211203636j:plain

 無事、データベースにアクセスでき、テーブルの情報を見ることができました。

f:id:ts0818:20170211203637j:plain

 PostgreSQLをインストールできたので、次回はテーブルにデータを入れたり、Javaと連携していけるように頑張りたいと思います。

今回はこのへんで。