Postgresはオープンソースのリレーショナルデータベースです。エンタープライズクラスのパフォーマンス、トリガー、Atomicity、Consistency、Isolation、Durabilityなどの多くの高度な機能を備えており、Postgresを多くの複雑なアプリケーションに適したものにするその他の多くの機能を備えています。
PostgreSQLのインストール:
このチュートリアルでは、最新バージョンのPostgresをPostgreSQLの公式ウェブサイトhttps://www.postgresql.org/download/linux/ubuntu/
からダウンロードします。PostgreSQLは、デフォルトでUbuntuのリポジトリでも利用できます。公式サイトのPostgreSQLaptリポジトリを使用することで、選択した特定のバージョンをインストールできます。
aptリポジトリを使用するには、次の手順に従います。
私のUbuntuバージョンはBionic(18.04)
ファイルPostgreSQLリポジトリを作成します。
nano /etc/apt/sources.list.d/pgdg.list
pgdg.list
にリポジトリの行を追加しますdeb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
18.04(Bionic)とは異なるUbuntuバージョンを使用している場合は、「bionic」という単語を使用されているUbuntuバージョンの名前に置き換えます。リポジトリ署名キーをインポートし、パッケージリストを更新します
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
次に、次のコマンドを使用して、Ubuntuシステムに最新のPostgreSQLサーバーをインストールします。
sudo apt-get install postgresql postgresql-contrib
インストール後、PostgreSQLサーバーが自動的に起動します。
PostgreSQLサービスのステータスを確認する
systemctl status postgresql
次に、PostgreSQL接続とPostgreSQLサーバーのバージョンを確認します。
sudo -u postgres psql -c "SELECT version();"
これにより、psqlを使用してPostgreSQLに接続し、サーバーバージョンを提供します
version
-----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 11.4 (Ubuntu 11.4-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit
PostgreSQLの役割と認証方法の使用
PostgreSQLは、データベースアクセス許可の役割の概念を使用します。ロールは、データベースユーザーまたはデータベースユーザーのグループに適用できます。
PostgreSQLは複数の認証方法をサポートしています。
以下は、PostgreSQLで最も一般的に使用される認証方法です。
1.信頼
信頼認証方式はpg_hba.confで定義できます。この方式を使用すると、役割はパスワードなしでデータベースに接続できます。
2.パスワード
役割は、パスワードを証明することでデータベースに接続できます。
3.識別
ID認証方法は、TCP/IP接続でのみ機能します。
4.ピア
ローカル接続にのみ使用されるピア認証方法。
pg_hba.confファイルは、クライアント認証方法を定義します。次のファイルを編集することで、認証方法を変更できます。
nano /etc/postgresql/11/main/pg_hba.conf
このファイルでは、PostgreSQLはデフォルトでピア認証方式を使用しています。ピアを他の方法に変更することで、認証方法を変更できます。
PostgreSQLのインストール時に、postgresユーザーがデフォルトで作成されます。postgresはPostgreSQLデータベースのスーパーユーザーであり、MYSQLデータベースサーバーのrootユーザーと同様です。この「postgres」ユーザーはubuntuでも作成します。
PostgreSQLに接続
PostgreSQLに接続するための次のコマンド。
sudo -i -u postgres
これで、次のコマンドを入力して、MySQLのようなPostgresプロンプトに接続できます。
psql
次のプロンプトが表示され、PostgreSQLクエリを実行する準備が整いました。
次のコマンドを入力するだけで、データベースサーバーに直接接続できることに注意してください。
sudo -u postgres psql
PostgreSQLでのロールとデータベースの作成
データベースにはすでにpostgresの役割がありますが、次のコマンドを使用して新しい役割を作成します。
[email protected]:/home# sudo -u postgres createuser --interactive
Enter name of role to add: sohan
Shall the new role be a superuser? (y/n) y
次のコマンドを使用して、既存のユーザーロールを一覧表示できます。
postgres=# \du
または、postgresプロンプトから次のコマンドを実行します。
SELECT rolname FROM pg_roles;
DROPROLEコマンドを使用して既存のユーザーロールを削除できます。
postgres=# DROP ROLE sohan;
DROP ROLE
PostgreSQLデータベースの作成
ここで、postgresアカウントとしてログインし、次のコマンドを実行できます。
[email protected]:~$ createdb dummu
または、通常のubuntuユーザーで次のコマンドを実行するだけです。
sudo -u postgres createdb dummu
システム端末から直接実行して、新しいユーザーを作成します。
sudo adduser sohan
システムに新しいユーザーを作成したら、実行するだけです
sudo -u sohan psql
または、次のコマンドを入力します
sudo -i -u sohan
psql
のようなデータベース名を指定するだけで、別のデータベースに接続できます。
psql -d dummu
上記のデータベースに接続した後、簡単なコマンドでそのデータベース情報を取得できます
dummu=> \conninfo
output
You are connected to database "dummu" as user "sohan" via socket in "/var/run/postgresql" at port "5432"UPDATE dummu SET password = 'postgres' where username = 'sohan';
PostgreSQLでのテーブルの作成
ロール、データベースを作成し、データベースサーバーとの接続を作成したら、テーブルを作成します。
CREATE TABLE dummu(user_id serial PRIMARY KEY,username VARCHAR (50) UNIQUE NOT NULL, password VARCHAR (50) NOT NULL, email VARCHAR (355) UNIQUE NOT NULL, created_on TIMESTAMP NOT NULL, last_login TIMESTAMP);>
上記のコマンドは、MySQLと同じように新しいテーブルダミーを作成します。この新しいテーブルを確認するには、次のように入力します
\d
ここには、dummu_user_id_seqテーブルも表示されます。このテーブルは、シーケンス内の次の番号を追跡します。
シーケンスなしでテーブル名を表示したいだけの場合は、次のコマンドを実行します。
\dt
これはdummuテーブルのみを表示します
sohan=> \dt
Output
List of relations
Schema | Na | Type | Owner
--------+------------+-------+-------
public | dummu | table | soha
次に、「
」と入力して、dummuテーブルにデータを追加します。Insert into dummu(user_id,username,password,email,created_on,last_login) values (1,'sohan','123456','[email protected]','2019-06-24 11:11:11','2019-06-24 11:11:11');
次に、dummuテーブルからデータをフェッチします
SELECT * FROM dummu;
それでは、このテーブルからデータを削除しましょう
DELETE FROM dummu WHERE email = '[email protected]';
PostgreSQLテーブルを変更する
同様の方法で、alter query as
を使用してテーブルを変更できます。ALTER TABLE dummu DROP email;
これにより、dummuテーブルからメールフィールドが削除されます。
確認してください
SELECT * FROM dummu;
output:-
user_id | username | password | created_on | last_login
---------+----------+----------+---------------------+---------------------
1 | sohan | 123456 | 2019-06-24 11:11:11 | 2019-06-24 11:11:11
次に、データをテーブルに更新する方法を説明します
次のコマンドを実行して、パスワードをdummuテーブルに更新します
UPDATE dummu SET password = 'postgres' where username = 'sohan';
と入力するだけで変更を確認できます
SELECT * FROM dummu;
output
user_id | username | password | created_on | last_login
---------+----------+----------+---------------------+---------------------
1 | sohan | postgres | 2019-06-24 11:11:11 | 2019-06-24 11:11:11
つまり、このチュートリアルでは、PostgreSQLのインストール方法、役割とデータベースの作成方法、および基本的なデータベースコマンドについて学習します。