Psql
Jump to navigation
Jump to search
psql, olika parametrar
-h <hostname> -p <port> -d <database> -U <user> -P pager=OFF tar bort scrollfunktionen
Exempel
psql -h myhost -p 5432 -d mydb -U myuser psql postgresql://myuser@myhost:5432/mydb
mydb och myuser är samma som operativsystemets användarnamn. myhost är på ett unix-system samma som socket-connection.
Köra direkt från promten och sql-script
För att köra ett kommando direkt från promten och få tillbaka svaret:
psql -c "SELECT current_time" timetz --------------- 18:48:32.484+01 (1 row)
Vill man istället exekvera en fil med flera SQL-satser:
psql -f examples.sql
Det går även att kombinera -c och -f
psql -c "SELECT current_time" -f examples.sql "SELECT current_time"
Interaktivt läge
Startar man psql utan -c eller -f så får man såklart ett interaktivt läge där man anger sina kommandon som man önskar. Bra att börja med är:
postgres=# \help
Avsluta:
postgres=# \quit \q funkar också men inte \exit.
Hjälp
Förutom \help så finns \h och \?. \h ger hjälp om ett specifikt sql-kommando och \? ger hjälp om ett meta-kommando (t ex \quit).
Exempel:
postgres=# \h DELETE Command: DELETE Description: Delete rows of a table Syntax: [ WITH [ RECURSIVE ] with_query [, ...] ] DELETE FROM [ ONLY ] table [ [ AS ] alias ] [ USING usinglist ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ AS output_name ] [,]]
Metakommandon
Några av de metakommandon som kan köras i psql
- \d och \dn mfl som ger information
- \d+ <tabellnamn> ger de kolumner som finns i den tabellen
- \dt och \td+ som listar tabeller (+ ger ännu mer info) i databasen
- \x för att formattera output
- \timing för exekveringstiming
- \i och \o för att editera input / output
- \set och \unset för att substituera variabler (parametrar)
- \! för att köra OS-kommandon
- \crosstabview för crosstabvyer
- \if, \elif, \else, endif för villkorskörning
- \? visar vilka kommandon som finns
- \r avbryter ett SQL-kommando
- \encoding ger en annan encoding for klienten. Ex: \encoding latin1
.psqlrc
Automatiska startuppfiler kan t ex vara .psqlrc