回答:
psql -U username -d mydatabase -c 'SELECT * FROM mytable'
postgresqlに慣れておらず、コマンドラインツールの使用に慣れていないpsql
場合は、対話型セッションを開始したときに注意する必要がある混乱する動作があります。
たとえば、インタラクティブセッションを開始します。
psql -U username mydatabase
mydatabase=#
この時点でクエリを直接入力できますが、クエリをセミコロンで終了することを忘れないでください;
例えば:
mydatabase=# SELECT * FROM mytable;
セミコロンを忘れた場合、Enterキーpsql
を押しても、クエリの入力が完了していないと想定されるため、リターン行には何も表示されません。これは、あらゆる種類の混乱につながる可能性があります。たとえば、同じクエリを再入力すると、構文エラーが発生する可能性が高くなります。
実験として、psqlプロンプトで必要な文字化けを入力してEnterキーを押してみてください。psql
静かに新しいラインを提供します。その新しい行にセミコロンを入力してEnterキーを押すと、次のエラーが表示されます。
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
経験則としては、応答がpsql
なくても、少なくともSOMETHINGを期待している場合は、セミコロンを忘れました。;
SELECT * FROM my_table;
my_table
テーブルの名前はどこですか。
編集:
psql -c "SELECT * FROM my_table"
または単にpsql
、次にクエリを入力します。
psql -U username -c your_database "SELECT * FROM my_table"
cmd.exe /c chcp 1252
ください。コンソールプロンプトを開いた直後に配置してください。
psql: FATAL: database "SELECT * FROM tb_name" does not exist
アプリケーション(Mac)から「SQLシェル(psql)」を開きます。
Enterをクリックしてデフォルトの設定を行います。プロンプトが表示されたらパスワードを入力します。
*)\?
ヘルプのタイプ
*)入力\conninfo
して、接続しているユーザーを確認します。
*)入力\l
すると、データベースのリストが表示されます。
*)\c <Name of DB>
たとえば、によってデータベースに接続します\c GeneDB1
*)特定のDBにいるので、そのDBのスキーマを知りたいと思います。これを行うのに最適なコマンドは\dn
です。
同様に機能する(ただし、あまり良くない)他のコマンドはselect schema_name from information_schema.schemata;
、select nspname from pg_catalog.pg_namespace;
次のとおりです。
-)スキーマが作成されたので、それらのスキーマ内のテーブルについて知りたいと思います。そのためには、dt
コマンドを使用できます。例えば\dt "GeneSchema1".*
*)これでクエリを実行できます。例えば:
*)上記のDB、スキーマ、テーブルはpgAdminで次のように表示されます。
同じクエリは、postgresのpsqlコマンドプロンプトに対して以下のように記述されます。
D:\ TOOLS \ Postgresql-9.4.1-3 \ bin> psql -U postgres -d DatabaseName -h localhost-t -c "Select u。\" UserName \ "from users u Where u。\" UserId \ "= 1;
@Grantの回答には間違いありません。しかし、列名がナチュラルのようなpostgresqlの予約済みキーワードに似ている場合など、いくつかの問題に直面することがあります。この場合、クエリフィールドで "\ natural \"が必要になるため、コマンドラインから同様のSQLを実行することが困難です。したがって、私のアプローチは、SQLを別のファイルに書き込み、SQLファイルをコマンドラインから実行することです。これには別の利点もあります。大きなスクリプトのクエリを変更する必要がある場合は、スクリプトファイルやコマンドを変更する必要はありません。このようなSQLファイルのみを変更してください
psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql
特定のタイプのステートメントについては、より適切に使用できます。それAzure Data Studio
以外の場合は、組み込みのコマンドラインが付属しています。スタジオを使用すると、タイプ入力ステートメントを見つけ、出力をより快適に読み取ることができます。
以下の手順に従ってください:
ローカルサーバーまたはリモートサーバーに接続します。
SQLの記述と実行のみに焦点を当てます。
接続を保存したり、サーバーグループを作成したり、さらにを介してタスクを実行する方が快適な場合は組み込み端末を作成したりするなど、多くの優れた機能がありますpsql
。
--single-line
(または-s
)がありました。