データベースを効率的に管理するためにPostgreSQLを習得したいけれど、
・PostgreSQLと他のデータベースの違いがイマイチ分からない…。
・PostgreSQLの使い方が分からない…。
こんな悩みはありませんか?そこでこの記事では、
・PostgreSQLの特徴や他のデータベースとの違い
・PostgreSQLのインストール方法と使い方
について紹介します。
PostgreSQL(ポストグレスキューエル)とは?
PostgreSQL(ポストグレスキューエル)はオープンソースで開発されているデータベース管理システムの一種です。ここでは、PostgreSQLの概要や特徴を紹介します。
OSのデータベース管理システム
リレーショナルデータベース管理システム(RDBMS)のPostgreSQLは、1986年に開発された「POSTGRES」というシステムをもとに作られました。オープンソースソフトウェア(OSS)として度重なる改良や名称変更を経て、現在では日本語バージョンもリリースされています。PostgreSQLはOSS(オープンソースソフトウェア)でありながら、商用データベースにも劣らない機能を備えています。
2023年9月時点での最新版はPostgreSQL 16
PostgreSQL 16は2023年9月14日にリリースされました。前バージョンからの変更点は次の通りです。
並列処理の性能向上
クエリの最適化を行い、必要な情報を導き出すためのクエリプランナーが改良されたことで、対応できる並列処理の種類が増えました。インナージョイン、左ジョインに加えて、フルジョインと右ジョインにも対応可能です。これにより、より複数テーブルを結合し必要な情報を取得しやすくなりました。
リアルタイムのデータ転送
論理レプリケーションの追加により、外部のシステムやPostgreSQL同士でリアルタイムのデータ転送が可能となりました。
簡単な運用管理
新たなモニタリング項目や定義済みロールが追加され、運用をより簡単に管理できます。
PostgreSQL 15 | PostgreSQL 16 | |
並列処理の性能 | インナージョイン、左ジョインのみ | フルジョイン、右ジョインにも対応 |
リアルタイムのデータ転送 | 不可 | 可 |
運用管理 | ・JSON形式ログ ・モニタリングビュー、関数 ・実行時統計情報の共有メモリ化 など | ・I/Oに関する統計情報の出力 ・シーケンシャルスキャン、インデックススキャンの実行時刻の出力 ・更新された行数の出力 など |
日本語対応かつ無料で使えるのが特徴
PostgreSQLは、バージョン6.3以降の標準機能として日本語に対応しています。そのため、PostgreSQL 16も日本語で利用できることが特徴です。
PostgreSQL 16には、データベース管理に必要な機能が十分に備わっています。また、オープンソースのため基本的に無料で利用することが可能です。ただしPostgreSQL 16は、BSDライセンスというオープンソースソフトウェアのためのライセンスで配布されるため、ライセンスのルール上、再利用や改変、商用プログラムへの利用にあたっては、ライセンスを順守する必要があります。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >PostgreSQLと他データベースの違い
PostgreSQL以外のデータベース管理システムとして、MySQLやOracle Database、SQL Serverなどが有名です。ここでは、PostgreSQLと比較した各データベース管理システムの機能や特徴の違いについて解説します。
MySQL:規約が多く使い方が限られる
MySQLは、データの取得や保存、処理に使用するストレージエンジンが複数あるため、簡単に使えることが特徴です。また、開発者によるサポートが充実していて、バグやセキュリティなどのトラブルが発見された場合に素早く修正されます。ただし、MySQLに独自の機能を追加したり、改良したりする場合には規約に従う必要があります。
MySQLの詳細に関しては「【SQL入門】データベース言語の基礎知識を学んでMySQL環境で実践しよう!」をご確認ください。
Oracle Database:ライセンス費用が高い
Oracle Databaseの特徴は、機能性の高さです。データベースを操作するための独自関数など、他のRDBMSにはない機能が備わっています。長年にわたりデータベース製品の中で世界シェア1位(2023年10月現在)を獲得している信頼性の高さもOracle Databaseの特徴です。
具体的な価格の違いは次の通りです。
データベース製品の種類 | ライセンス費用 |
MySQL Standard Edition | 年額2,140ドル~(日本円で年額299,600円~) |
Oracle Database Standard Edition 2 | 2,450,000円(公式サイトに日本円での表記のみ掲載) |
SQL Server Standard | 年額1,418ドル~(1ドル149円として換算した場合211,282円) |
MySQLやSQL Serverが20万円~30万円前後で導入できることに対して、Oracle Databaseの場合は245万円の初期費用がかかります。(2023年10月現在)
SQL Server:MicrosoftもしくはLinuxのみで動作
SQL Serverは、データベース言語のSQL をベースとして、Microsoft社が開発しているRDBMSです。Microsoft社の他の製品との親和性が高いもののMicrosoft Windows、Microsoft Server、Linux以外のオペレーティングシステムでは利用できません。
また、サポートしている言語もJavaやJavaScript(Node.js)、C#、C++、PHP、Python、Rubyのみに限られています。
PostgreSQLを実際に動かしてみよう!
PostgreSQLは、公式サイトからダウンロードするだけで簡単に使い始めることが可能です。ここでは、PostgreSQLのインストールやテーブル、データベースの作成、関数の作成など基本的な使い方を紹介します。
公式サイトからPostgreSQLをインストール
まずはPostgreSQLの公式サイトにアクセスし、PostgreSQLのバージョンとPCのOSを選んでダウンロードリンクをクリックしましょう。今回は、PostgreSQL 16のWindows x86-64版で説明を進めます。
ダウンロードしたファイルを開き、案内に従ってインストールを進めてください。
最後に表示される画面で、チェックを外した上で「Finish」をクリックすれば、PostgreSQLのインストールは完了です。
テーブルやデータベースの作成
PostgreSQLでは、データベースの中にスキーマと呼ばれる単位があり、さらにその中にテーブルを作ることが可能です。PostgreSQLのインストール時にダウンロードされる「pgAdmin4」というツールを使うと、データベースやテーブルを簡単に作成できます。
pgAdmin4を起動し、左上の「Servers」をダブルクリックしましょう。
PostgreSQLのインストール時に設定したパスワードを入力し、サーバーに接続します。
左メニューのDatabases(データベース)を右クリックし、「Create(作成)」→「Database(データベース)」から新たなデータベースを作成しましょう。
今回は「sampledb」という名称のデータベースを作成しました。
データベースを作成すると、Schemas(スキーマ)の中に「public」というデフォルトのスキーマが自動的に作られます。
スキーマを新たに作成したい場合、Schemasを右クリックし、「Create」→「Schema」を選択しましょう。
今回は「sampleschema」というスキーマを作成しました。
最後に、pgAdmin4からCREATE TABLEコマンドを実行し、スキーマ内にテーブルを作成します。CREATE TABLEコマンドの基本的な書き方は次の通りです。
1 2 3 4 5 6 7 |
CREATE TABLE スキーマ名.テーブル名 ( テーブルの1列目の名前 データの型 NOT NULL, テーブルの2列目の名前 データの型, テーブルの3列目の名前 データの型, CONSTRAINT 主キーの名前 PRIMARY KEY (主キーに指定する列) |
スキーマ名を指定しない場合、デフォルトの「public」のスキーマにテーブルが作成されます。データを含まない「NULL」の状態を許可したくない列には、「NOT NULL」を記載しましょう。また、値の重複を許さない列は「主キー」として設定することが可能です。
例えば、「sampleschema」に、会員情報のデータを表す「member」というテーブルを作成する場合のコードは次の通りです。
1 2 3 4 5 6 7 8 |
CREATE TABLE sampleschema.member ( member_id character varying(5) NOT NULL, -- 会員IDを5文字で用意 member_name character varying(30), -- 会員名を文字30文字で用意 member_date date, -- 会員登録日を日付の型で用意 CONSTRAINT pk_member PRIMARY KEY (member_id) -- 会員IDを主キーに指定 ); |
「sampledb」を選択した状態で、「Tools」から「Query Tool」をクリックし、上記のコードを入力した上で実行ボタンを押します。
CREATE TABLEコマンドが完了したメッセージが表示され、「sampleschema」の「Tables」内に「member」のテーブルが作成されていれば成功です。
次に、下記のコードを実行して、このテーブルに対して会員情報のデータを3件入力してみましょう。
1 2 3 4 5 |
Insert into sampleschema.member values (1, 'Tanaka Ichika', '2020-01-18'), (2, 'Yamada Jirou', '2022-12-20'), (3, 'Watanabe Mitsuko', '2023-10-01'); |
入力が成功していれば、「member」のテーブルを右クリックし、「View/Edit Data」→「All Rows」を選択した際に3つのデータが表示されます。
以上のような流れで、データベースの作成やデータの入力が可能です。
関数の作成
PostgreSQLでは、一般的なSQLと同じ要領で関数を作成できます。基本的な書き方は次の通りです。
1 2 3 4 5 6 7 8 9 10 |
CREATE OR REPLACE FUNCTION 関数の名前(1個目の引数 型, 2個目の引数 型, ・・・) RETURNS 戻り値の型 LANGUAGE 'plpgsql' AS $BODY$ declare 引数を宣言する BEGIN 関数の処理を記述する END; $BODY$ |
例えば、次のようなコードを実行すると、指定した内容をメッセージ欄に表示する関数「test_function」が作成できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
CREATE OR REPLACE FUNCTION test_function (param1 integer,param2 character varying) --2つの引数を指定 RETURNS boolean LANGUAGE 'plpgsql' AS $BODY$ DECLARE hensuu date; --日付の型の変数「hensuu」を宣言 BEGIN hensuu = current_date; --変数に現在の日付を入力 raise info '1つ目の引数は %' , param1; --メッセージ欄にparam1を表示 raise info '2つ目の引数は %' , param2; --メッセージ欄にparam2を表示 raise info '変数は %' , hensuu; --メッセージ欄にhensuuを表示 return true; END; $BODY$; select * from test_function(333,'サンプルテキスト'); --定義した関数を実行 |
psqlの使用
psqlは、PostgreSQLをコマンド入力によって操作するためのフロントエンドインターフェイスです。データベースクエリを実行するためのSQLコマンドと、データベースへの接続やテーブルの一覧表示といったタスクを実行するためのメタコマンドが使用できます。
psqlを利用するコマンドの基本的な書き方は次の通りです。
1 |
psql 各種オプションの指定 ユーザー名 接続したいデータベース名 |
例えば、ローカル環境でポート番号「5432」、ユーザー名「postgres」、データベース名「sampledb」に接続する場合、次のコマンドをコマンドプロンプトなどで実行しましょう。
1 |
psql -h localhost -p 5432 -U postgres -d sampledb |
パスワードの入力を求められたら、PostgreSQLをインストールした時に設定したパスワードを入力し、エンターキーを押してください。
「sampledb=#」という表示が出ていれば、psqlを利用することが可能です。
例えば、次のようなコマンドを入力すると、テーブル内のデータを一覧表示できます。
1 |
select * from スキーマ名.テーブル名; |
まとめ
PostgreSQLはオープンソースソフトウェアのRDBMSで、データベースを管理するための機能が無償で利用できます。2023年9月にリリースされたPostgreSQL 16では、処理性能の向上や新たな機能の追加が行われ、より便利になりました。PostgreSQLの基礎知識を学び、開発に活かしましょう。
PostgreSQLについて詳しく知りたい方には、下記の講座がおすすめです。
SQLによるマーケティングデータ分析(SQLの基礎からRFM分析・バスケット分析によるレコメンドまで)
PostgreSQLとpgAdmin4を使用し、SQLの基礎からマーケティング分析に重要なクロス集計やABC分析、デシル分析、RFM分析、そしてバスケット分析によるレコメンドなどを一緒にコードを書きながら実践しましょう!
\無料でプレビューをチェック!/
講座を見てみるレビューの一部をご紹介
評価:★★★★
内容:セクション4は実践的でとても参考になりました!
評価:★★★★★
内容: マーケティング分析については全くの素人でして、久々のSQLは新鮮で楽しかったです。ありがとうございました。
PostgreSQLを使って、経済的にデータベースを運用しましょう!
最新情報・キャンペーン情報発信中