psqlからSQLコマンドを実行する

PostgreSQL の環境で psql から SELECT 文や CREATE 文など SQL コマンドを実行する方法について解説します。

(Last modified: )

SQLコマンドを実行する

データベースやテーブルを作成したり、テーブルに格納したデータを取得したりするには psql から SQL コマンドを実行します(実際には SQL コマンドがサーバへ送信されて処理されます)。 SQL コマンドを実行するには最初にコマンドプロンプトを起動して psql を使って PostgreSQL に接続してください。

SQLコマンドを実行する(1)

次のようなプロンプトが表示されます。

postgres=#

SQL コマンドを実行する場合は次のように入力します。

postgres=# SQL文 ;

SQL コマンドを入力する時は最後にセミコロン(;)を入力した後で[Enter]キーを押して実行して下さい。 SQL コマンドが実行されます。セミコロンを入力する前に単に[Enter]キーを押しても分割して入力が行われるだけで実行はされません。

それでは実際に試してみます。新しいデータベースを作成します。次のように入力した後で[Enter]キーを押して下さい。

postgres=# create database sample;

SQLコマンドを実行する(2)

SQL コマンドがサーバへ送信されて処理されました。

SQLコマンドを分割して入力する

SQL コマンドが長い場合には分割して入力することができます。それでは実際に行ってみます。今回は例としてテーブルの作成を行う SQL コマンドを分割して入力してみます。最初に create とだけ入力して[Enter]キーを押してください。

postgres=# create
postgres-#

SQLコマンドを分割して入力する(1)

SQL コマンドを実行するときは最後にセミコロンを入力してから[Enter]キーを押します。セミコロンが入力される前に[Enter]キーを押した場合は入力が分割されたものとして扱われます。

分割した入力を行っているときは、プロンプトの表示が postgres=# から postgres-# に変わって区別がつくようになっています。

では次に table staff と入力して[Enter]キーを押してください。

postgres=# create
postgres-# table staff
postgres-#

SQLコマンドを分割して入力する(2)

最後に (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コマンドを分割して入力する(3)

SQL コマンドが実行されて新しいテーブルが作成されました。

このように長い SQL コマンドは入力の途中で[Enter]キーを押すことで分割して入力することができます。

分割して入力中に途中でキャンセルする

SQL コマンドを分割して入力している時に、途中で SQL コマンドの入力をキャンセルしたい場合には psql コマンドの \r と入力してから[Enter]キーを押してください。

実際に試してみます。 create table まで入力して[Enter]キーを押してください。

postgres=# create table
postgres-#

分割して入力中に途中でキャンセルする(1)

ここで入力をキャンセルしたい場合には、 \r と入力して[Enter]キーを押してください。

postgres=# create table
postgres-# \r
問い合わせバッファがリセット(クリア)されました。
postgres=#

分割して入力中に途中でキャンセルする(2)

SQL コマンドの入力がキャンセルされます。

-- --

psql から SQL コマンドを実行する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。