PostgreSQLをインストール
Windows10でPostgreSQLをインストールします。
ダウンロード — NPO法人 日本PostgreSQLユーザ会
でPostgreSQLのインストーラーがダウンロードできます。
今回は、ダウンロードリンクからWindowsのURLを選択しました。
『PostgreSQL 9.6.2』、『Windows x86-64』を選択し『DOWNLOAD NOW』をクリックします。
ダウンロードされたexeファイルをクリックすれば、Setup(インストーラー)が起動します。
『Next >』をクリックします。
インストール先です。デフォルトにしました。
データ格納先です。デフォルトにしました。
postgresのデフォルトのユーザーのパスワードを指定します。
ポート番号を指定します。デフォルトにしました。
ロケールはJapaneseを選びました。
インストールの準備ができたので、『Next >』をクリックします。
インストールが始まります。
インストールが完了しました。チェックボタンにチェックを入れたままFinishボタンを押すと、スタックビルダが起動します。
スタックビルダでは追加ソフトウェアをインストールできます。今回はキャンセルを押して終了しました。
『はい(Y)』を選択します。
Windowsのシステムの環境変数に追加
コマンドプロンプトなどで、psqlコマンドを使用する際に便利なように、パスを設定しておきます。
自分の場合は、『C:¥Program Files¥PostgreSQL¥9.6¥bin』を、環境変数pathに追加します。PostgreSQLがインストールされた場所に合わせます。
『システム』>『システムの詳細設定』>『環境変数(N)』を選択します。
今回は『システム環境変数(S)』に『新規』で『PostgreSQL』という項目を作り、『C:¥Program Files¥PostgreSQL¥9.6』までを登録してます。
そのあとで、『システム環境変数(S)』の『Path』を選択し、『編集(I)』を選択。
『新規』で、一番下のところに『%PostgreSQL%¥bin』と追加し、『OK』をクリックします。
パスが登録できていると、コマンドプロンプトで、cdコマンドでC:¥に移動したあと、
psql --version
と打って実行し、PostgreSQLのバージョンが表示されれば、パスの設定もOKです。
PostgreSQLに接続
せっかくなので、コマンドプロンプトでPostgreSQLに接続を試み、MySQLと同じ感覚で、『psql -u postgres』としたら怒られました。正しくは、
psql -U postgres
大文字のUじゃないとアカンようです。そのあとパスワードを入力します。
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では大文字が小文字に変換されてしまうようです。キャメルケースは使えず、スネークケースしかいけない?のか分かりませんが。
とりあえず、作成したデータベースを選択し、テーブルを作成してみたいと思います。
¥c java_postgres
データベースが選択出来たら、テーブルを作成。
最初にNG集。失敗の数々。
その1
テーブル名に『予約語』のorderを使うという失敗。
その2
複合主キーの場合のPrimary keyの追加の仕方が分からない。
⇩ 下記サイトに助けてもらいました。
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カラムのデータ型を変更
が、エラーに!
型"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;
テーブルの構造を確認。table_nameの部分は作成したテーブル名を入力してください。
¥d table_name
『order_id』、『order_line』に複合主キーが設定されてることが確認できました。
PostgreSQLとの接続を切断するには、
¥q;
コマンドでいけるようです。
⇩ PostgreSQLの基本的なコマンドは下記サイトへ
A5:SQL Mk-2というGUIツールでデータベースの操作
MySQLにphpMyAdminが存在するように、PostgresSQLにもpgAdminというGUIによるデータベースを操作するためのツールが用意されている(クライアント側に別途インストールが必要?)ようですが、職場の先輩に教えていただいた、A5:SQL Mk-2 というGUIツールがイケてるようなので、そちらをインストール。
A5:SQL Mk-2 - フリーの汎用SQL開発ツール/ER図ツール .. 松原正和 にアクセス。
『ダウンロードはこちら』をクリックします。(旧いバージョンなどをダウンロードしたい場合はページの下のほうに用意されています。)
『ダウンロードページへ』をクリックします。自分はパソコンが64bit版なので、『(x-86 edition)』を選択しました。
『このソフトを今すぐダウンロード』をクリックします。
ダウンロードされたファイルのA5M2.exeというファイルが実行ファイルです。
適当な場所に展開(解凍)しましょう。『A5M2.exe』を実行します。
以下、 A5:SQL Mk-2をA5M2と略称でいきたいと思います。
初回接続時に開かれますが、今回は『設定ファイル』を選択しました。
『はい』を選択します。
『パスワード』を設定します。
『OK』をクリックします。
『追加』を選択します。
『PostgreSQL(直接接続)』を選択します。PostgreSQLのデータベースには、A5M2は、直接接続が推奨らしいですが、JavaはODBC経由じゃないと接続できないらしい?です。
作成した『データベース名』を入力し、『パスワード』を入力します。『サーバー名』『ポート番号』『ユーザーID』はデフォルトにしました。
『テスト接続』で『OK』がでればデータベースに接続成功です。『OK』をクリックします。
『OK』を選択します。
A5m2のGUI画面に表示されたデータベースをクリックすると、ログイン情報を求められるので『パスワード』を入力し『OK』。
無事、データベースにアクセスでき、テーブルの情報を見ることができました。
PostgreSQLをインストールできたので、次回はテーブルにデータを入れたり、Javaと連携していけるように頑張りたいと思います。
今回はこのへんで。