序章

リレーショナルデータベースは、多数のニーズに対応するデータ編成の基礎です。 オンラインショッピングからロケットの打ち上げまで、あらゆるものに電力を供給します。 両方とも由緒あるが、まだゲームに残っているデータベースはPostgreSQLです。 PostgreSQLはほとんどのSQL標準に準拠しており、ACIDトランザクションがあり、外部キーとビューをサポートしており、現在も活発に開発されています。

実行しているアプリケーションが安定性、パッケージ品質、および簡単な管理を必要とする場合、Debian 8(コードネーム「Jessie」)はLinuxディストリビューションの最良の候補の1つです。 他の「ディストリビューション」よりも少しゆっくりと移動しますが、その安定性と品質はよく知られています。 アプリケーションまたはサービスにデータベースが必要な場合、Debian8とPostgreSQLの組み合わせは町で最高の1つです。

この記事では、PostgreSQLを新しいDebian8Stableインスタンスにインストールして開始する方法を紹介します。

前提条件

まず、Debian8Stableシステムを稼働させることです。 Debian8を使用した初期サーバーセットアップの記事の指示に従うことができます。 このチュートリアルは、Debian 8StableDropletの準備ができていることを前提としています。

特に明記されていない限り、このチュートリアルのすべてのコマンドは、sudo権限を持つroot以外のユーザーとして実行する必要があります。 ユーザーを作成してsudo権限を付与する方法については、 Debian8を使用した初期サーバーセットアップを確認してください。

PostgreSQLのインストール

PostgreSQLをインストールする前に、aptパッケージリストを次のように更新して、Debianリポジトリから最新の情報を入手していることを確認してください。

  1. sudo apt-get update

更新されているパッケージリストと次のメッセージが表示されます。

Reading package lists... Done.

で始まるパッケージがいくつかあります postgresql:

直接インストールするには postgresql-9.4 パッケージ:

  1. sudo apt-get install postgresql-9.4 postgresql-client-9.4

尋ねられたら、 Y パッケージをインストールします。 すべてがうまくいけば、パッケージはリポジトリからダウンロードされ、インストールされます。

インストールの確認

PostgreSQLサーバーが正しくインストールされ、実行されていることを確認するには、次のコマンドを使用できます ps:

# ps -ef | grep postgre

ターミナルに次のようなものが表示されます。

postgres 32164     1  0 21:58 ?        00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/   postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
postgres 32166 32164  0 21:58 ?        00:00:00 postgres: checkpointer process
postgres 32167 32164  0 21:58 ?        00:00:00 postgres: writer process
postgres 32168 32164  0 21:58 ?        00:00:00 postgres: wal writer process
postgres 32169 32164  0 21:58 ?        00:00:00 postgres: autovacuum launcher process
postgres 32170 32164  0 21:58 ?        00:00:00 postgres: stats collector process 

成功! PostgreSQLが正常にインストールされ、実行されています。

PostgreSQLデータベースへのアクセス

Debianでは、PostgreSQLはデフォルトのユーザーとデフォルトのデータベースの両方が呼び出されてインストールされます postgres. データベースに接続するには、最初にに切り替える必要があります postgres rootとしてログインしているときに次のコマンドを発行してユーザーを使用します(これはsudoアクセスでは機能しません)。

  1. su - postgres

これで、次のようにログに記録されます。 postgres. PostgreSQLコンソールを起動するには、次のように入力します psql:

  1. psql

終わり! PostgreSQLコンソールにログオンする必要があります。 次のプロンプトが表示されます。

psql (9.4.2)
Type "help" for help.

postgres=# 

psqlコンソールを終了するには、コマンドを使用するだけです \q.

新しい役割の作成

デフォルトでは、Postgresは「ロール」と呼ばれる概念を使用して認証と承認を支援します。 これらは、いくつかの点で通常のUnixスタイルのアカウントに似ていますが、PostgreSQLはユーザーとグループを区別せず、代わりに、より柔軟な用語「ロール」を優先します。

インストール時に、PostgreSQLは「ident」認証を使用するように設定されます。つまり、PostgreSQLの役割を一致するUnix/Linuxシステムアカウントに関連付けます。 PostgreSQLの役割が存在する場合は、関連するLinuxシステムアカウントにログインすることでサインインできます。

インストール手順により、デフォルトのPostgresロールに関連付けられたpostgresというユーザーアカウントが作成されました。

追加の役割を作成するには、 createuser 指図。 このコマンドはユーザーとして発行する必要があることに注意してください postgres、PostgreSQLコンソール内ではありません:

  1. createuser --interactive

これは基本的に、適切なPostgreSQLコマンドを呼び出して仕様に合わせたユーザーを作成するインタラクティブなシェルスクリプトです。 いくつかの質問があります。役割の名前、スーパーユーザーにする必要があるかどうか、役割が新しいデータベースを作成できるかどうか、役割が新しい役割を作成できるかどうかです。 The man ページに詳細があります:

  1. man createuser

新しいデータベースの作成

PostgreSQLはデフォルトで、一致するシステムアカウントによって要求される認証ロールで設定されています。 (これについての詳細は、 postgresql.org で入手できます)。 また、接続するロールに一致するデータベースが存在することを前提としています。 だから私が呼ばれるユーザーがいる場合 test1、そのロールはと呼ばれるデータベースへの接続を試みます test1 デフォルトでは。

このコマンドを次のように呼び出すだけで、適切なデータベースを作成できます。 postgres ユーザー:

  1. createdb test1

新しいデータベース test1 今が作成されます。

新規ユーザーによるPostgreSQLへの接続

あなたがという名前のLinuxアカウントを持っていると仮定しましょう test1、PostgreSQLを作成しました test1 それに一致する役割、およびデータベースを作成しました test1. Linuxのユーザーアカウントをに変更するには test1:

  1. su - test1

次に、に接続します test1 としてのデータベース test1 コマンドを使用したPostgreSQLの役割:

  1. psql

これで、新しく作成されたユーザーを含むPostgreSQLプロンプトが表示されます。 test1 それ以外の postgres.

テーブルの作成と削除

PostgreSQLデータベースシステムに接続する方法がわかったので、いくつかの基本的なタスクを完了する方法について説明します。

まず、いくつかのデータを格納するためのテーブルを作成しましょう。 遊具を説明するテーブルを作成しましょう。

このコマンドの基本的な構文は次のようになります。

CREATE TABLE table_name (
    column_name1 col_type (field_length) column_constraints,
    column_name2 col_type (field_length),
    column_name3 col_type (field_length)
);

ご覧のとおり、テーブルに名前を付けてから、必要な列、列の種類、フィールドデータの最大長を定義します。 オプションで、各列にテーブル制約を追加することもできます。

Postgresでテーブルを作成および管理する方法について詳しくは、 クラウドサーバー上のPostgreSQLでテーブルを作成、削除、および管理する方法記事。

この目的のために、次のような単純なテーブルを作成します。

CREATE TABLE playground (
    equip_id serial PRIMARY KEY,
    type varchar (50) NOT NULL,
    color varchar (25) NOT NULL,
    location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
    install_date date
);

私達は私達が持っている装置を目録にする遊び場のテーブルを作りました。 これは、シリアルタイプの機器IDから始まります。 このデータ型は自動インクリメント整数です。 この列に主キーの制約を与えました。これは、値が一意であり、nullであってはならないことを意味します。

2つの列については、フィールドの長さを指定していません。 これは、長さがタイプによって暗示されるため、一部の列タイプは設定された長さを必要としないためです。

次に、機器のタイプと色の列を示します。それぞれを空にすることはできません。 次に、場所の列を作成し、値が8つの可能な値のいずれかである必要がある制約を作成します。 最後の列は、機器を設置した日付を記録した日付列です。

表を表示するには、コマンドを使用します \dt psqlプロンプトで。 結果は次のようになります

             List of relations
 Schema |    Name    | Type  |  Owner 
--------+------------+-------+----------
 public | playground | table | postgres

ご覧のとおり、遊び場のテーブルがあります。

テーブル内のデータの追加、クエリ、および削除

テーブルが作成されたので、そこにデータを挿入できます。

スライドとスイングを追加しましょう。 これを行うには、追加するテーブルを呼び出し、列に名前を付けてから、各列のデータを提供します。 スライドとスイングは次のように追加できます。

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');

あなたはいくつかのことに気付くはずです。 まず、列名は引用符で囲まないようにする必要がありますが、入力する列の値には引用符が必要であることに注意してください。

覚えておくべきもう一つのことは、私たちはの値を入力しないということです equip_id 桁。 これは、テーブルに新しい行が作成されるたびにこれが自動生成されるためです。

次に、次のように入力して、追加した情報を取得できます。

SELECT * FROM playground;

出力は次のようになります

 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        1 | slide | blue   | south     | 2014-04-28
        2 | swing | yellow | northwest | 2010-08-16

ここで、あなたは私たちの equip_id 正常に入力され、他のすべてのデータが正しく整理されていること。 スライドが壊れて遊び場から削除した場合は、次のように入力してテーブルから行を削除することもできます。

DELETE FROM playground WHERE type = 'slide';

テーブルを再度クエリすると、次のようになります。

SELECT * FROM playground;

スライドがテーブルの一部ではなくなったことがわかります。

 equip_id | type  | color | location | install_date 
----------+-------+-------+----------+--------------
        1 | slide | blue  | south    | 2014-04-28

便利なコマンド

現在の環境を把握するのに役立ついくつかのコマンドを次に示します。

  • :ここにリストされていないものを含むpsqlコマンドの完全なリストを取得します。

  • \ h :SQLコマンドのヘルプを取得します。 これに続いて特定のコマンドを実行すると、構文のヘルプを取得できます。

  • \ q :psqlプログラムを終了し、Linuxプロンプトを終了します。

  • \ d :現在のデータベースで使用可能なテーブル、ビュー、およびシーケンスを一覧表示します。

  • \ du :利用可能な役割を一覧表示します

  • \ dp :リストアクセス権限

  • \ dt :テーブルを一覧表示します

  • \ l :データベースを一覧表示します

  • \ c :別のデータベースに接続します。 これにデータベース名を続けます。

  • \ password :次のユーザー名のパスワードを変更します。

  • \ conninfo :現在のデータベースと接続に関する情報を取得します。

これらのコマンドを使用すると、PostgreSQLデータベース、テーブル、およびロールをすぐにナビゲートできるはずです。

結論

これで、Debianシステムで完全に機能するPostgreSQLデータベースが稼働しているはずです。 おめでとう! ここから行くべきドキュメントがたくさんあります:

  • PostgreSQLマニュアル

  • パッケージのインストール postgresql-doc: sudo apt-get install postgresql-doc

  • README でインストールされたファイル /usr/share/doc/postgresql-doc-9.4/tutorial/README

PostgreSQLでサポートされているSQLコマンドの完全なリストについては、次のリンクをたどってください。

データベースのさまざまな機能を比較するには、以下を確認してください。

役割と権限の理解を深めるには、以下を参照してください。