Kom i gang med Postgres

Koble seg til en database

Logg inn på en Linux-maskin med postgres-klient installert
(for eksempel frigg.hiof.no)
Bruk secure shell eller dualboot

Fra shell: psql -h servernavn -d databasenavn -U brukernavn

default servernavn er samme som serveren du er innlogget på
default brukernavn er samme som ditt linux-brukernavn
default databasenavn er samme som brukernavn
Det betyr at du ikke trenger -h dersom du er på samme server som postgres kjører på.
Du trenger heller ikke -U dersom du skal koble deg til databasen som deg selv,
og ikke -d hvis du skal koble deg til en database som har samme navn som brukernavnet ditt

Eksempel: logg inn på databasen elinsdb som brukeren elinkaan
 psql -d elinsdb -U elinkaan

Få hjelp til hvordan psql fungerer

Fra psql : \?

Fra shell: psql --help
eller
man psql

Litt om hva som kan gå galt i psql og hvilke feilmeldinger man får

Liste ut alle databaser på serveren

Fra psql : select * from pg_database;
eller
\l

Fra shell: psql -h frigg.hiof.no -l -U brukernavn

Liste ut alle tabeller i en database

Fra psql: select * from pg_tables;
eller
\dt

Bytte til en annen database inne i psql

\c dbname

Avslutte psql

\q

Hjelp til SQL syntax

Fra psql: \h

Fra web: http://www.postgresql.org/docs

Fra Elin: Kom i gang med SQL2 i Postgres

Om piping og tekstfiler

For å forhindre at man mister data eller at man ikke husker hva man har gjort, anbefales det å skrive alle queries til en tekstfil.
Fordelen med dette er at man kan sende hele tekstfilen til psql om man vil, så slipper man å sitte og skrive alt linje for linje.

Eks(hvis man ikke er logget inn på serveren):

    echo "select * from pg_database;" > eksempel.sql 
    psql -h frigg.hiof.no -d databasenavn -f eksempel.sql -U brukernavn

                      eller

    echo "select * from pg_database;" > eksempel.sql 
    cat eksempel.sql | psql -h frigg.hiof.no -d databasenavn -U brukernavn
    

Eks(hvis man er logget inn på serveren):

    echo "select * from pg_database;" > eksempel.sql 
    psql -d databasenavn -f eksempel.sql -U gruppe1 

                      eller

    echo "select * from pg_database;" > eksempel.sql 
    cat eksempel.sql | psql -d databasenavn -U gruppe1