psqlからSQLコマンドを実行する
PostgreSQL の環境で psql から SELECT 文や CREATE 文など SQL コマンドを実行する方法について解説します。
(Last modified: )
SQLコマンドを実行する
データベースやテーブルを作成したり、テーブルに格納したデータを取得したりするには psql から SQL コマンドを実行します(実際には SQL コマンドがサーバへ送信されて処理されます)。 SQL コマンドを実行するには最初にコマンドプロンプトを起動して psql を使って PostgreSQL に接続してください。
次のようなプロンプトが表示されます。
postgres=#
SQL コマンドを実行する場合は次のように入力します。
postgres=# SQL文 ;
SQL コマンドを入力する時は最後にセミコロン(;)を入力した後で[Enter]キーを押して実行して下さい。 SQL コマンドが実行されます。セミコロンを入力する前に単に[Enter]キーを押しても分割して入力が行われるだけで実行はされません。
それでは実際に試してみます。新しいデータベースを作成します。次のように入力した後で[Enter]キーを押して下さい。
postgres=# create database sample;
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 コマンドを実行する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。