Eseguire query PostgreSQL dalla riga di comando

Ho inserito un dato in una tabella.... Voglio vedere ora l'intera tabella con righe e colonne e dati. Come posso visualizzarla attraverso il comando?

psql -U nome utente -d mydatabase -c 'SELECT * FROM mytable'

Se sei nuovo di postgresql e non hai familiarità con l'uso dello strumento a riga di comando psql, allora c'è qualche comportamento confuso di cui dovresti essere consapevole quando sei entrato in una sessione interattiva.

Per esempio, iniziate una sessione interattiva:

psql -U username mydatabase 
mydatabase=#

A questo punto si può inserire direttamente una query ma si deve ricordare di terminare la query con un punto e virgola ;

Per esempio:

mydatabase=# SELECT * FROM mytable;

Se dimenticate il punto e virgola, quando premete invio non otterrete nulla sulla vostra linea di ritorno perché psql assumerà che non abbiate finito di inserire la vostra query. Questo può portare a tutti i tipi di confusione. Per esempio, se reinserisci la stessa query, molto probabilmente avrai creato un errore di sintassi.

Come esperimento, provate a digitare qualsiasi cosa vogliate al prompt di psql e premete invio. psql vi fornirà silenziosamente una nuova riga. Se inserite un punto e virgola su quella nuova riga e poi premete invio, allora riceverete l'ERRORE:

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

La regola generale è: Se non avete ricevuto alcuna risposta da psql ma vi aspettavate almeno QUALCOSA, allora avete dimenticato il punto e virgola ;

Commentari (2)
SELECT * FROM my_table;

dove my_table è il nome della tua tabella.

EDIT:

psql -c "SELECT * FROM my_table"

o semplicemente psql e poi scrivi le tue query.

Commentari (10)

Se il vostro DB è protetto da password, allora la soluzione sarebbe:

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