psql er PostgreSQL's interaktive kommandolinje-klient — bruges til at forbinde til en database og køre forespørgsler, inspicere skemaet og administrere databasen. Den har specielle meta-kommandoer (startende med \) til navigation og administration, ud over at køre SQL.
Tilslutning
psql -U username -d database_name -h host -p 5432 # connect with options
psql postgresql://user:pass@host:5432/dbname # or a connection URL
psql mydb # connect to a local database
Vigtigste meta-kommandoer (backslash-kommandoer)
\l list all databases
\c dbname connect to a database
\dt list TABLES in the current database
\d tablename describe a table (columns, types, indexes, constraints)
\di list indexes
\dn list schemas
\du list roles/users
\df list functions
\dv list views
\x toggle expanded display (vertical — readable for wide rows)
\timing toggle query timing
\? help on meta-commands
\h SELECT help on a SQL command
\q quit
Disse \ meta-kommandoer lader dig udforske og administrere databasen hurtigt — \dt (liste tabeller), \d tablename (inspicere en tabels struktur), og \l (liste databaser) bruges konstant.
Køring af forespørgsler og scripts
SELECT * FROM users LIMIT 5; -- run SQL directly (end with ;)
psql -d mydb -f script.sql -- run a SQL FILE
psql -d mydb -c "SELECT count(*) FROM users" -- run a single command and exit
\i script.sql -- run a file from within psql
\copy users TO 'users.csv' CSV HEADER -- export to CSV (client-side)
Nyttige indstillinger
\x auto auto-switch to vertical display for wide results
\timing on show how long each query takes
\e open the last query in an editor
\set, \pset configure variables and output formatting
Hvorfor det betyder noget
psql er det vigtige, daglige værktøj til at arbejde direkte med PostgreSQL — udvikler og DBA'er bruger det konstant til at forbinde, køre forespørgsler, inspicere og administrere databaser, så kendskab til det væsentlige er praktisk, grundlæggende viden til Postgres-arbejde.
Selvom GUI-værktøjer eksisterer, er psql det universelle, altid tilgængelige interface (til stede, hvor Postgres er), og dets meta-kommandoer (\) gør det særlig kraftfuldt til hurtig databaseudforskelse og administration, som ren SQL ikke kan gøre bekvemt: \dt (liste tabeller), \d tablename (inspicere en tabels fulde struktur — kolonner, typer, indekser, begrænsninger — et konstant behov), \l (liste databaser), \du (liste brugere/roller) og andre lader dig navigere og forstå en database hurtigt.
At vide, hvordan man forbinder (med indstillinger eller en URL), kører forespørgsler og scripts (-f til filer, -c til engangs-kommandoer), bruger meta-kommandoerne til inspektion, og nyttige indstillinger (\x til læsbar bred-række-visning, \timing til forespørgselstiming) er daglig praktisk viden for enhver Postgres-udvikler eller administrator.
Da psql er standard, allestedsnærværende kommandolinje-interface til PostgreSQL — brugt til udvikling, fejlretning, administration, scripting og udforskelse — er forståelse af dens vigtigste kommandoer og workflow værdifuld, hyppigt anvendt viden, der gør arbejde med Postgres effektivt, og det er en grundlæggende kompetence, der forventes af alle, der arbejder direkte med databasen.
