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

広告
eyecatch

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

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 コマンドを実行する方法について解説しました。

PostgreSQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。