コマンドラインからのPostgreSQLクエリの実行

テーブルにデータを挿入しました.... 行、列、データのあるテーブル全体を見たいのです。コマンドで表示するにはどうすればよいでしょうか?

psql -U username -d mydatabase -c 'SELECT * FROM mytable' となります。

もしあなたがpostgresqlの初心者で、コマンドラインツールのpsqlの使用に慣れていないのであれば、インタラクティブセッションに入ったときに注意すべきいくつかの紛らわしい動作があります。

例えば、インタラクティブセッションを開始します。

psql -U username mydatabase 
mydatabase=#

この時点で、クエリを直接入力することができますが、セミコロン ;でクエリを終了させることを忘れてはいけません

例えば、以下のようになります。

mydatabase=# SELECT * FROM mytable;

セミコロンを忘れてしまうと、psqlがクエリの入力が終わっていないと判断してしまうため、Enterキーを押しても何も返ってきません。これは様々な混乱を招く可能性があります。例えば、同じクエリを再入力すると、ほとんどの場合、構文エラーが発生します。

実験として、psqlのプロンプトに好きな文字列を入力し、Enterキーを押してみてください。psql`は黙って新しい行を提供してくれます。その新しい行にセミコロンを入力してエンターキーを押すと、ERRORが表示されます。

mydatabase=# asdfs 
mydatabase=# ;  
ERROR:  syntax error at or near "asdfs"
LINE 1: asdfs
    ^

という経験則があります。 もし、psqlから何の反応もなく、少なくとも何かを期待していたのであれば、セミコロン;を忘れています。

解説 (2)
SELECT * FROM my_table;

ここで、my_tableはテーブルの名前です。

EDITです。

psql -c "SELECT * FROM my_table"

または、単に psql を実行して、クエリを入力します。

解説 (10)

もし、DBがパスワードで保護されているなら、解決策は次のようになります。

PGPASSWORD=password  psql -U username -d dbname -c "select * from my_table"
解説 (1)