プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • データベース
  • 【PostgreSQL】特徴、バージョン、データベース、スキーマの基本
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【PostgreSQL】特徴、バージョン、データベース、スキーマの基本

06.21

  • miyabisan2
  • コメントを書く

この記事は3分で読めます

PostgreSQL(ポストグレスキューエル)とは?

1980年にカリフォルニア大学を中心に開発されたMySQLと並んで世界中で人気があるオープンソースのデータベースシステムです。

特徴

SQLが、標準SQLへの準拠を強く意識した設計になっているので、最初に学ぶDBとしては最高といえるでしょう。

バージョン

バージョン リリース日 説明
6.0 1997年1月 UNIQUEインデックス、IN句、BETWEEN句
6.1 1997年6月 GEQOオプティマイザ、GROUP BY、TIMESTAMP型、TIME型、DATE型、SETコマンド、SHOWコマンド、RESETコマンド
6.2 1997年10月 JDBC、TRIGGER、TIMEZONE型、INTERVAL型、FLOAT型、DECIMAL型、NOT NULL
6.3 1998年3月 サブクエリ、マルチバイト
6.4 1998年10月 PL/pgSQL
6.5 1999年6月 MVCC、ホットバックアップ、一時テーブル、行ロック
7.0 2000年5月 外部キー
7.1 2001年4月 WAL、TOAST、外部結合
7.2 2002年2月 統計情報、並行VACUUM
7.3 2002年11月 スキーマ、国際化対応、フロントエンド、バックエンドプロトコルV3対応
7.4 2003年11月 問い合わせ性能の向上、インフォメーションスキーマ
8.0 2005年1月 Windows対応、PITR、テーブルスペース、セーブポイント
8.1 2005年11月 2相コミット、ロール、自動VACUUM、ビットマップスキャン
8.2 2006年12月 インデックスの同時作成、FILLFACTOR、INSERT、UPDATE、DELETE RETURNNING
8.3 2008年2月 全文検索(tsearch2)、HOT、負荷分散チェックポイント、非同期コミット、SQL/XML
8.4 2009年7月 ウインドウ関数、共通テーブル式/再帰問い合わせ、並列リストア、VACUUMの改善
9.0 2010年9月 本体組み込みのレプリケーション、アクセス権限設定の拡張、DO文による関数のインライン実行、64bitWindowsへの対応
9.1 2011年9月 同期レプリケーション、外部テーブル、拡張モジュールのパッケージ化、真のシリアライザブルの隔離レベル、UNLOGGEDテーブル、WITH句によるデータ変更、GISTインデックスの近似検索、sepgsql
9.2 2012年9月 Index-only scan、並列実行処理性能向上、カスケードレプリケーション、JSONデータ型、範囲データ型、DDL命令改善
9.3 2013年9月 postgres_fdw、マテリアライズドビュー、LATERAL結合、JSONデータ型の機能拡充
9.4 2014年12月
9.5 2016年1月
9.6 2016年9月
10.0 2017年10月
11.0 2018年10月

データベースとは?

PostgreSQLが管理するデータを実際に記録するための領域です。これをデータベースクラスタと呼んでいます。

データベース名 説明 備考
template0 グローバルデータ(ユーザー情報など) 書き込みができないため常に最初の状態が保たれます。template1の最初の状態になります。今後新しく作成するDBをまっさらな状態で作りたい場合はこちらを使います。
template1 システムが使う領域 文字通りユーザーがDBを作成しようとするとテンプレートとして使われます。今後作成するDBに共通のテーブルなど作っておきたい場合は事前に作成しておくと良いです。
postgres デフォルトの接続先のデータベースです。
ユーザーが作成したデータベース

データベースへのログイン

データベースを指定してログイン

1
psql postgres(DB名) postgres(ユーザー名)

ホストを指定してログイン

1
psql -h localhost(ホスト名) -U postgres(ユーザー名)

データベース一覧の表示

1
\l

事前にログインしておく必要があります。

データベース接続終了

1
\q

スキーマとは?

データベースの中に存在する名前空間です。テーブルなどはスキーマの下に配置されます。通常はスキーマを意識せずにデータベースは利用できます。スキーマには優先度があります。

スキーマの用途

データベースは一つしかないが、利用できるテーブルをユーザーごとに別々にしたいといった場合に使えます。スキーマのサーチパスを修正すればアプリケーションのSQL文を変更せずにアクセス先のテーブルを変更できます。

ただ、実務ではあまり使う機会はないといっても良いでしょう。DB自体を分けてしまう形にしていることが多いでしょう。ただ、データベースにはこういう概念があるということだけ押さえておくと良いでしょう。

デフォルトで存在するスキーマ

スキーマ名 説明
information_schema インフォメーションスキーマ
pg_catalog システムカタログ
pg_toast TOAST
pg_toast_temp_1 TOAST用の一時スキーマ
pg_temp_1 一時テーブル用スキーマ
public 通常利用可能なスキーマ

コマンド

スキーマを生成するコマンド

1
CREATE SCHAME スキーマ名;

スキーマを削除するコマンド

1
DROP SCHAME スキーマ名;

現在優先させるスキーマを表示するコマンド

1
select current_schema();

優先させるスキーマ順(サーチパス)を確認するコマンド

1
SHOW search_path;

「"$user", public」と表示された場合は、ユーザー名と同じスキーマが優先されてその次にpublicスキーマが優先されることになります。

スポンサーリンク
  • 2018 06.21
  • miyabisan2
  • コメントを書く
  • データベース
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2018 04.08

    【データベース設計】テーブルを作る際の基本ルール(物理設計)

  2. 2018 04.28

    【データベース】主キー、ユニークキーについて

  3. 2021 09.26

    【データベース】テーブル設計:「削除フラグの闇」について

  4. 2021 11.23

    【Redis】データ型の種類と用途、ユースケース(キャッシュ)

  5. 2018 04.25

    【データベース設計】採番について

  6. 2018 04.08

    【データベース】「外部キー」、「リレーション」について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【SQL】CASE式について

【SQL】「GROUP BY句」、「HAVING句」に…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • API
  • AWS
  • C++
  • CSS
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Git
  • GitLab
  • GraphQL
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • WebRTC
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー