公式ドキュメントは以下のサイトで参照できる。
Fedora の場合、dnf コマンド
 sudo dnf install postgresql
 sudo dnf install postgresql-server
で入る。
それぞれ、クライアント側(postgresql)とサーバー側(postgresql-server)である。この両方を入れないといけない。片方だけだと、後述の sytemctl が失敗する。データベースサーバーとして postgresql-server を起動して使う仕組みである。
インストールできたと思ったら、とりあえず下記コマンドでバージョン確認をできる。
 psql -V
または
 psql --version
である。
なお、ヘルプ一覧を見るにはpsql --helpである。hだけだとホスト("host")に「h」が使われているので、ヘルプの意味にならないので、きちんと help と指定しよう。
初期設定
データベースとしての使用の前には、さらに後述のsytemctlの前に、初期化の設定を下記コマンドで行わないといけない。（そうしないとエラーで失敗する）
 sudo postgresql-setup --initdb
起動方法
上記のコマンドがすべて終わったら、ようやく、postgresql-server を起動できる。コマンド名にはserver とないが、しかし下記コマンドで起動されるのはデータベースサーバーのほうである。
 sudo systemctl start postgresql
なお、sytemctl start は Fedora側のコマンドである。単にそのコマンドを使って postgresql を起動せよ、という命令を上記コマンドでは実行しているにすぎない。
終了方法
postgresqlサーバー終了は
 sudo systemctl stop postgresql
である。
状態確認コマンド
起動状態の確認コマンドは、起動中（systemctl start postgresql を実行したあとの状態）に、
 sudo systemctl status postgresql
である。これを押すと、ターミナル（コマンド端末）画面に、確認結果の情報が列記される。
なお、確認画面の終了方法は q ボタン である。
接続方法
postgres を使用するためには、インストールしたpostgresのシステムに接続しなければならないが、その際にアカウントが必要になるのだが、当然、あなた個人用のアカウントなんて作成されておらず、「 postgres 」という名のアカウントだけが事前に用意されているので、これを使うことになる。
なので、まずLinux のターミナルのアカウントを変更する必要がある。下記コマンド
 sudo su - postgres
でアカウント「postgres」に変更できる。これをしないと、手元のパソコンで通常使用しているユーザー名でpostgresシステムにログインしようとするが、当然ながらそんなアカウント名はインストールしたばかりのpostgresシステムでは作成されていないので、（アカウント名を postgres に切り替えないと）ログインに失敗してしまう。
アカウント名を切り替え終わったら、コマンド
 psql -U postgres
でログインできる。
[postgres@fedora ~]$ psql -U postgres
psql (14.3)
"help"でヘルプを表示します。
postgres=# 
のような結果になれば、とりあえず成功である。
なお、終了するには、コマンド
 \q 
である。つまり、
postgres-# \q
のような入力画面でエンターすることになる。
これはまだpostgresqlとの接続を終了しただけなので、まだlinuxのアカウントはpostgreのままである。
なので、普段使用している元のアカウントに戻るなら、単に exit コマンドで良い。
 exit
インストールや初期設定の終わったあとなら、
 sudo su - postgres
のあとで、
下記コマンドを実行するだけで、まだなにもデータベースを作成しなくても、データの一覧が表示されます。
 psql -l
Fedora 36 にインストールした psql (PostgreSQL) 14.3 での例は、下記のようなデータでした。
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |     アクセス権限      
-----------+----------+------------------+-------------+-------------------+-----------------------
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
(3 行)
たとえば、
 sudo su - postgres
で、まず接続する。
そのあと、まず、所有者になるユーザーを専用コマンドcreateuser で作る。たとえばユーザー名を yamada とするならコマンドは
 createuser yamada
となる。
その後、そのユーザー名を、これから作成するデータベースの所有者(owner)名としてデータベース登録を始める。とりあえずデータベース名を testdb とするなら、コマンドは
 createdb -O yamada testdb
のようになる。
確認のため、
 psql -l
コマンド。すると、下記のように表示される。
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |     アクセス権限      
-----------+----------+------------------+-------------+-------------------+-----------------------
 testdb    | yamada   | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
(4 行)
のように、作成したデータベースが追加されて
 testdb    | yamada   | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
という行が加わり、また最後が「4 行」になっているのが分かる。
このtestdb にログインするには、単に、上記の表示などが見られる postgresQL接続状態にて、コマンド
 psql testdb
を実行するだけでいい。
psql (14.3)
"help"でヘルプを表示します。
のように表示されれば、とりあえずの成功である。
先に
 sudo su - postgres
 psql mydb
をしておく。
すると、下記の状態になる。
psql (14.3)
"help"でヘルプを表示します。
postgres=# 
CREATE TABLE コマンドで、テーブルを作成できる。
書式は、
CREATE TABLE テーブル名 (
  列名1 データ型1 補足1,
  列名2 データ型2 補足2
);
である。「補足」の部分は無くても良く、たとえばNULL値を許容するかどうかの指定などに使う。 NOT NULL などが「補足」にくる。
コード例
mydb=# CREATE TABLE test1 (
  id integer,
  name varchar(30)
);
末尾にセミコロンが必要なのを注意。セミコロンを忘れると作成できない。
上記コードを入力すると、自動的に下記のように「CREATE TABLE」という反応が最終行の下に追記され、また入力待ちになるので、下記のような画面になる。
画面 
mydb=# CREATE TABLE test1 (
  id integer,
  name varchar(30)
);
CREATE TABLE
mydb=# 
とりあえず、この画面になれば成功である。
この状態で、入力したテーブルの内容を確認するには\dで可能である。
mydb=# CREATE TABLE test1 (
  id integer,
  name varchar(30)
);
CREATE TABLE
mydb=# \d
            リレーション一覧
 スキーマ | 名前  |  タイプ  |  所有者  
----------+-------+----------+----------
 public   | test1 | テーブル | postgres
(1 行)
なお、データベース名が「mydb」に変わってるが、単にwiki著者がネット情報を参考にそのデータベース名で作ってしまったから、そうなってる。
これだけだと、まだデータの列名だけを決めただけなので、具体的な中身がない。中身はコマンド insertで入力できる。
つづけて、
            リレーション一覧
 スキーマ | 名前  |  タイプ  |  所有者  
----------+-------+----------+----------
 public   | test1 | テーブル | postgres
(1 行)
mydb=# insert into test1 values (1, 'tanaka' ); 
INSERT 0 1
のようにinsert コマンド「 insert into test1 values (1, 'tanaka' );  」を入力すると、
反応「 INSERT 0 1 」が返ってくる。
構文は、
 INSERT INTO テーブル名 VALUES (値1, 値2)  ;
である。
作成したテーブルの中身を確認したいなら、コマンドselectであり、上記の場合なら具体的には
 select * from test1;
である。
結果
mydb=# select * from test1; 
 id |  name  
----+--------
  1 | tanaka
(1 行)
のようになれば、成功。
つづけて、今後のコマンドの勉強のため、読者には
 insert into test1 values (2, 'itoh' );
をしてもらいたい。（あとでこれの消しかたを教える）
つづけて
 select * from test1;
をすれば、
結果
mydb=#  select * from test1;
 id |  name  
----+--------
  1 | tanaka
  2 | itoh
(2 行)
のようになる。
では、 idが1のtanaka を消そう。delete で消せる。上記の例なら、
 delete from test1 where id=1 ;
で消せる。
構文は
 DELETE FROM テーブル名 WHERE 条件式 
である。
ともかくdeleteコマンドを実行したら、つづけて確認のため、
  select * from test1;
すれば、結果
mydb=# select * from test1;
 id | name 
----+------
  2 | itoh
(1 行)
となる。たしかに yamada が正しく消せた。