465 Stimmen

Führen Sie PostgreSQL-Abfragen von der Befehlszeile aus

Ich habe einen Datensatz in eine Tabelle eingefügt....Ich möchte jetzt die gesamte Tabelle mit Zeilen und Spalten und Daten sehen. Wie kann ich sie durch Befehl anzeigen?

13voto

Ben Punkte 614

Ich habe auch bemerkt, dass die Abfrage

SELECT * FROM tablename;

einen Fehler auf der psql-Befehlszeile liefert und

SELECT * FROM "tablename";

läuft einwandfrei, wirklich seltsam, also vergiss nicht die doppelten Anführungszeichen. Ich mochte Datenbanken schon immer :-(

5voto

KPatel Punkte 51
  1. Öffnen Sie ein Eingabeaufforderungsfenster und wechseln Sie zum Verzeichnis, in dem Postgres installiert ist. In meinem Fall ist mein Postgres-Pfad "D:\TOOLS\Postgresql-9.4.1-3". Danach wechseln Sie in das bin-Verzeichnis von Postgres. Die Befehlszeile zeigt dann "D:\TOOLS\Postgresql-9.4.1-3\bin>" an.
  2. Jetzt ist mein Ziel, "Benutzername" aus der Benutzertabelle mit dem Wert "Benutzer-ID" auszuwählen. Die Datenbankabfrage lautet "Select u."UserName" from users u Where u."UserId"=1".

Die gleiche Abfrage wird im psql-Befehlsfenster von Postgres wie folgt geschrieben.

D:\TOOLS\Postgresql-9.4.1-3\bin>psql -U postgres -d Datenbankname -h localhost - t -c "Select u.\"UserName\" from users u Where u.\"UserId\"=1;

5voto

DEV Tiago França Punkte 498
## Verwenden der SQL-Datei
PGPASSWORD=myPassword psql -h myDbHost -U myUser -p 5432 -d my_db -a -q -f /path/to/sql/file.sql
## Oder
PGPASSWORD=myPassword psql -h myDbHost -U myUser -p 5432 -d my_db < /path/to/sql/file.sql

## Verwenden des Befehls
PGPASSWORD=myPassword psql -h myDbHost -U myUser -p 5432 -d my_db -c "select * from my table limit 1;"

4voto

Stefan Punkte 1628

Ich werde meine Erfahrung für einen Befehl auf einer Windows-Maschine hinzufügen. Ich wollte versuchen, einen einzigen Befehl auszuführen, aus dem ich Tabelleninhalt erhalten würde.

Dies ist der einzelne Befehl, der für mich funktioniert hat:

psql -U postgres -d typeorm -c "SELECT * FROM \"Author\"";

  • -U postgres - Benutzer
  • -d typeorm - meine Datenbank, mit der ich mich verbinden möchte
  • -c ... - mein Abfragebefehl
  • ; - Semikolon

Ich hatte hauptsächlich Probleme damit, herauszufinden, wie genau der Abfrage-Teil eingerichtet werden sollte. Ich habe es mit verschiedenen Befehlen versucht wie: mit ', ", (), aber nichts hat für mich funktioniert außer dieser Notation.

3voto

Mehdi Hamin Punkte 152

Für das direkte Ausführen von SQL-Befehlen in einer passwortgeschützten Datenbank. Es ist besser, das Verbindungszeichenkettenformat in der Befehlszeile zu verwenden. Verwenden Sie diesen Befehl:

psql -d postgresql://postgres:password@localhost:5432/dbname 
-c "create database sample1 --oder irgend ein Befehl"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X