第5章の動作確認
完了要件
クライアントアプリケーションと関連するSQL文の動作を確認します。
5.1 対話型ターミナル
psqlの以下の機能を確認します。
- psqlコマンドのパラメータ
- psqlのメタコマンド
psqlコマンドのパラメータ
OSのpostgresユーザでログインした状態で、psqlコマンドのオプション -l, -c, -f の機能を確認します。
[postgres@host1 ~]$ psql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) |
アクセス権限
-----------+----------+------------------+-------------+-------------------+----
-------------------
ossdb | postgres | 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 +
| | | | | pos
tgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/
postgres +
| | | | | pos
tgres=CTc/postgres
(4 行)
[postgres@host1 ~]$ psql -c "SELECT CURRENT_DATE;"
current_date
--------------
2024-07-23
(1 行)
[postgres@host1 ~]$ echo "SELECT * FROM prod ORDER BY price;" > test1.sql
[postgres@host1 ~]$ psql -f test1.sql ossdb
prod_id | prod_name | price
---------+-----------+-------
4 | バナナ | 30
1 | みかん | 52
2 | りんご | 72
3 | メロン | 100
(4 行)
[postgres@host1 ~]$
最初に、-l オプションでデータベースを一覧表示し、次に、-c オプションで現在の日付を表示するSELECT文を実行しています。続いて、OSのechoコマンドでSQL文を入力したtest1.sqlファイルを作成し、psqlの -f オプションで実行します。このSQL文はossdbデータベースのprod表を使用するため、psqlコマンドでossdbを指定しています。
psqlのメタコマンド
psqlでossdbデータベースに接続し、メタコマンドの\conninfo, \h, \i, \!, \passwordの機能を確認します。
[postgres@host1 ~]$ psql ossdb
psql (13.14)
"help"でヘルプを表示します。
ossdb=# \conninfo
データベース"ossdb"にユーザ"postgres"として、"/var/run/postgresql"のソケットを介してポート"5432"で接続しています。
ossdb=# \h BEGIN
コマンド: BEGIN
説明: トランザクションブロックを開始します。
書式:
BEGIN [ WORK | TRANSACTION ] [ トランザクションのモード [, ...] ]
トランザクションのモードは以下の通りです:
ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
READ WRITE | READ ONLY
[ NOT ] DEFERRABLE
URL: https://www.postgresql.org/docs/13/sql-begin.html
ossdb=# \i test1.sql
prod_id | prod_name | price
---------+-----------+-------
4 | バナナ | 30
1 | みかん | 52
2 | りんご | 72
3 | メロン | 100
(4 行)
ossdb=# \! pwd
/home/postgres
ossdb=# \! ps
PID TTY TIME CMD
1876 pts/0 00:00:00 bash
2647 pts/0 00:00:00 psql
2654 pts/0 00:00:00 ps
ossdb=# \password
ユーザー"postgres"の新しいパスワードを入力してください: ※postgresユーザのパスワードを入力
もう一度入力してください: ※再度postgresユーザのパスワードを入力
ossdb=#
psqlコマンド起動後、最初に\conninfoメタコマンドで現在のデータベースへの接続状況を確認しています。ホスト名を省略しているため、ローカルホストのサーバにUnixドメインソケットで接続した状態になっています。次に、\hメタコマンドでSQLのBEGIN文のヘルプを表示しています。
次に、\iメタコマンドでtest1.sqlファイルのSQL文を実行しています。次に、\!メタコマンドでOSのシェルコマンドのpwdとpsが実行できることを確認しています。最後に、\passwordメタコマンドでpostgresユーザのパスワードを設定しています。