Psql: Difference between revisions

From Linuxwiki
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



Kategori:PostgreSQL