Psql: Difference between revisions
Jump to navigation
Jump to search
Linuxwiki>Wikiadmin |
m 14 revisions imported |
||
| (9 intermediate revisions by one other user not shown) | |||
| Line 5: | Line 5: | ||
-d <database> | -d <database> | ||
-U <user> | -U <user> | ||
-P pager=OFF tar bort scrollfunktionen | |||
Exempel | Exempel | ||
| Line 12: | Line 13: | ||
'''mydb''' och '''myuser''' är samma som operativsystemets användarnamn. '''myhost''' är på ett unix-system samma som socket-connection. | '''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: | För att köra ett kommando direkt från promten och få tillbaka svaret: | ||
'''psql -c "SELECT current_time" | '''psql -c "SELECT current_time" | ||
| Line 18: | Line 20: | ||
18:48:32.484+01 | 18:48:32.484+01 | ||
(1 row) | (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 | |||
[[Kategori:PostgreSQL]] | [[Kategori:PostgreSQL]] | ||
Latest revision as of 21:54, 11 May 2026
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