Ich habe Daten in eine Tabelle eingefügt ... Ich möchte jetzt eine ganze Tabelle mit Zeilen, Spalten und Daten sehen. Wie kann ich es durch Befehl anzeigen?
Ich habe Daten in eine Tabelle eingefügt ... Ich möchte jetzt eine ganze Tabelle mit Zeilen, Spalten und Daten sehen. Wie kann ich es durch Befehl anzeigen?
Antworten:
psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Wenn Sie mit postgresql noch nicht vertraut sind und mit der Verwendung des Befehlszeilentools nicht vertraut sind psql
, sollten Sie sich eines verwirrenden Verhaltens bewusst sein, wenn Sie an einer interaktiven Sitzung teilnehmen.
Initiieren Sie beispielsweise eine interaktive Sitzung:
psql -U username mydatabase
mydatabase=#
Zu diesem Zeitpunkt können Sie eine Abfrage direkt eingeben, müssen jedoch daran denken, die Abfrage mit einem Semikolon zu beenden;
Beispielsweise:
mydatabase=# SELECT * FROM mytable;
Wenn Sie das Semikolon vergessen haben, erhalten Sie beim Drücken der Eingabetaste nichts in Ihrer Rückleitung, da psql
davon ausgegangen wird, dass Sie die Eingabe Ihrer Abfrage noch nicht abgeschlossen haben. Dies kann zu allerlei Verwirrung führen. Wenn Sie beispielsweise dieselbe Abfrage erneut eingeben, wird höchstwahrscheinlich ein Syntaxfehler erstellt.
Versuchen Sie als Experiment, an der psql-Eingabeaufforderung ein beliebiges Garble einzugeben, und drücken Sie die Eingabetaste. psql
wird Ihnen stillschweigend eine neue Zeile zur Verfügung stellen. Wenn Sie in dieser neuen Zeile ein Semikolon eingeben und dann die Eingabetaste drücken, erhalten Sie den FEHLER:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
Als Faustregel gilt: Wenn Sie keine Antwort von erhalten haben, psql
aber mindestens ETWAS erwartet haben, haben Sie das Semikolon vergessen;
SELECT * FROM my_table;
Wo my_table
ist der Name Ihres Tisches?
BEARBEITEN:
psql -c "SELECT * FROM my_table"
oder geben Sie einfach psql
Ihre Abfragen ein.
psql -U username -c your_database "SELECT * FROM my_table"
cmd.exe /c chcp 1252
Sie sie einfach ein, nachdem Sie die Konsolenaufforderung geöffnet haben.
psql: FATAL: database "SELECT * FROM tb_name" does not exist
Öffnen Sie "SQL Shell (psql)" von Ihren Anwendungen (Mac).
Klicken Sie für die Standardeinstellungen auf die Eingabetaste. Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.
*) Geben Sie \?
für Hilfe ein
*) Geben Sie ein, um \conninfo
zu sehen, als welcher Benutzer Sie verbunden sind.
*) Geben Sie ein \l
, um die Liste der Datenbanken anzuzeigen.
*) Eine Verbindung mit einer Datenbank von \c <Name of DB>
zum Beispiel\c GeneDB1
Sie sollten sehen, wie sich die Eingabeaufforderung der Taste in die neue Datenbank ändert, wie folgt:
*) Jetzt, da Sie sich in einer bestimmten Datenbank befinden, möchten Sie die Schemas für diese Datenbank kennen. Der beste Befehl dazu ist \dn
.
Andere Befehle, die ebenfalls funktionieren (aber nicht so gut), sind select schema_name from information_schema.schemata;
und select nspname from pg_catalog.pg_namespace;
:
-) Nachdem Sie die Schemata haben, möchten Sie die Tabellen in diesen Schemata kennen. Dafür können Sie den dt
Befehl verwenden. Beispielsweise\dt "GeneSchema1".*
*) Jetzt können Sie Ihre Fragen stellen. Beispielsweise:
*) So sehen die obigen DBs, Schemas und Tabellen in pgAdmin aus:
Die gleiche Abfrage wird wie unten für die psql-Eingabeaufforderung von postgres geschrieben.
D: \ TOOLS \ Postgresql-9.4.1-3 \ bin> psql -U postgres -d Datenbankname -h localhost - t -c "Wählen Sie u. \" Benutzername \ "aus den Benutzern u Wobei u. \" UserId \ "= 1;
Ich habe keinen Zweifel an der Antwort von @Grant. Manchmal treten jedoch nur wenige Probleme auf, z. B. wenn der Spaltenname einem reservierten Schlüsselwort von postgresql ähnlich ist, z. B. natural. In diesem Fall ist es schwierig, ähnliche SQL-Anweisungen über die Befehlszeile auszuführen, da "\ natural \" im Abfragefeld benötigt wird. Mein Ansatz ist es also, SQL in eine separate Datei zu schreiben und die SQL-Datei über die Befehlszeile auszuführen. Dies hat noch einen weiteren Vorteil. Wenn Sie die Abfrage für ein großes Skript ändern müssen, müssen Sie die Skriptdatei oder den Befehl nicht berühren. Ändern Sie die SQL-Datei nur so
psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql
Für bestimmte Arten von Anweisungen ist die Verwendung besser geeignet Azure Data Studio
- für alles andere ist eine Befehlszeile integriert. Im Studio können Sie Anweisungen zum Schreiben und Lesen der Ausgabe bequemer finden.
Folgen Sie den unteren Schritten:
Stellen Sie eine Verbindung zu Ihrem lokalen oder Remote-Server her:
Konzentrieren Sie sich nur auf das Schreiben und Ausführen von SQL:
Es gibt viele nette Funktionen wie das Speichern von Verbindungen, das Erstellen von Servergruppen und sogar das integrierte Terminal, wenn Sie eine Aufgabe über das Internet bequemer erledigen möchten psql
.
--single-line
(oder-s
), mit der jeder Befehl sofort ausgeführt werden kann, ohne dass ein Semikolon hinzugefügt werden muss.