PostgreSQL | psql を使用して PostgreSQL に接続 | psql で SQL コマンドを実行する
psql で SELECT 文や CREATE 文などの SQL コマンドを実行する方法について説明する。
SQL コマンドを実行する
データベースやテーブルを作成したり、テーブルに保存されたデータを検索したりするには、psql で SQL コマンドを実行する必要がある。実際には、SQL コマンドがサーバーに送信されて処理される。SQL コマンドを実行するには、まずコマンドプロンプトを起動し、psql を使用して PostgreSQL に接続する。
C:\Users\kimkc>psql -U postgres
postgres ユーザーのパスワード:
psql (12.2)
ヘルプを表示するには "help" と入力してください。
postgres=#
次のようなプロンプトが表示される。
postgres=#
SQL コマンドを実行するには、次のように入力する。
postgres=# SQL文;
SQL コマンドを入力するときは、最後にセミコロン (;) を入力してから Enter キーを押すと SQL コマンドが実行される。セミコロンを入力する前に Enter キーを押しても、入力が分割されるだけで実行されない。
実際に試してみる。新しいデータベースを作成する。次のように入力して Enter キーを押す。
postgres=# create database sample;
postgres=# create database sample;
CREATE DATABASE
postgres=#
SQL コマンドがサーバーに送信され、処理された。
SQL コマンドを分割して入力する
SQL コマンドが長い場合は、分割して入力できる。実際に試してみる。ここでは例として、テーブルを作成する SQL コマンドを分割して入力する。まず create だけを入力して Enter キーを押す。
postgres=# create
postgres-#
SQL コマンドを実行するときは、最後にセミコロンを入力して Enter キーを押す。セミコロンが入力される前に Enter キーを押すと、入力が継続中であると見なされる。
分割入力中は、プロンプト表示が postgres=# から postgres-# に変わるため区別できる。
次に table staff と入力して Enter キーを押す。
postgres=# create
postgres-# table staff
postgres-#
最後に (id integer, name character varying(10)); と入力して Enter キーを押す。セミコロン (;) が入力された後に Enter キーが押されたため、SQL コマンドの入力が完了したと判断され、SQL コマンドが実行される。
postgres=# create
postgres-# table staff
postgres-# (id integer, name character varying(10));
CREATE TABLE
postgres=#
SQL コマンドが実行され、新しいテーブルが作成された。
このように、長い SQL コマンドは入力途中で Enter キーを押すことで分割して入力できる。
分割入力の途中でキャンセルする
SQL コマンドを分割して入力している途中で SQL コマンドの入力をキャンセルしたい場合は、psql コマンド \r を入力して Enter キーを押す。
実際に試してみる。create table まで入力して Enter キーを押す。
postgres=# create table
postgres-#
ここで入力をキャンセルするために、\r を入力して Enter キーを押す。
postgres=# create table
postgres-# \r
クエリバッファをリセットしました (空にしました)。
postgres=#
これで SQL コマンドの入力がキャンセルされる。
–
psql で SQL コマンドを実行する方法について説明した。