- PostgreSQL - instalacja i konfiguracja [1]
 - PostgreSQL – operacje na użytkownikach i bazie konsola [2]
 - PostgreSQL – Interfejs do komunikacji z bazą perl
 
Zadaniem naszego programiku będzie:
Utworzenie tabeli o określonej zawartości, przechowującej takie dane jak imię nazwisko wiek,
Uzupełnienie jej informacją o 3 osobach,
Zmiana wieku dla jednej osoby,
Usunięcie ostatniego elementu,
Przygotowanie środowiska
Instalujemy potrzebną bibliotekę libdbd-pg-perl dzięki której uzyskamy możliwość komunikacji z bazą z poziomu perl'a
aptitude install libdbd-pg-perl 
Kolejnym krokiem jest dodanie użytkownika oraz bazy postgres
createuser -A -D -P -e -W perl
createdb -e -E UTF-8 -O perl perldb
A więc dla naszego przykładu mamy:
użytkownik: perl
baza danych: perldb
hasło: dugportal
Poniżej przedstawię kod wraz z wyjaśnieniem
#!/usr/bin/perl
#dolaczamy sterownik do obslugi baz danych
use DBI;
# nawiazanie polaczenia z baza jesli nie bedzie udane to
# zostanie wyswitlony komunikat i zakonczenie dzialania programu
$db = DBI->connect('DBI:Pg:dbname=perldb','perl','dugportal') or 
# przygotowuje zaputanie do wykonania w tym przypadku tworzy
# tabele adresy
$res = $db->prepare("CREATE TABLE adresy
                    (
                      id_adresy SERIAL NOT NULL,
                      imie varchar(20) NOT NULL,
                             nazwisko varchar(20) NOT NULL,
                      wiek integer NOT NULL CHECK (wiek > 0),
                      PRIMARY KEY (id_adresy) 
                    )");
$res->execute;
print "\nTworze tabele adresy\n";
# uzupełniamy bazę danymi 
$res = $db->prepare("INSERT INTO adresy (imie, nazwisko, wiek)
                      VALUES ('Jan', 'Kowalski', '17')");
$res->execute;
print "\nDodaje pierwszy element\n";
$res = $db->prepare("INSERT INTO adresy (imie, nazwisko, wiek)
                      VALUES ('Adam', 'Nowak', '19')");
$res->execute;
print "Dodaje drugi element\n";
$res = $db->prepare("INSERT INTO adresy (imie, nazwisko, wiek)
                      VALUES ('Anna', 'Zielona', '22')");
$res->execute;
print "Dodaje trzeci element\n";
# wywolanie funkcji wyswietlajacej zawartosc bazy
&wyswietl;
# zmieniamy wiek Jana Kowalskiego
$res = $db->prepare("UPDATE adresy SET wiek='21' WHERE id_adresy = '1'");
$res->execute;
print "\nZmieniam wiek dla id = 1\n";
&wyswietl;
#usuwamy ostatnia pozycje
$res = $db->prepare("DELETE FROM adresy WHERE id_adresy = 3");
$res->execute;
$res->finish; 
print "\nUsuwam wiersz o id 3\n";
&wyswietl;
sub wyswietl
{
  $res = $db->prepare("SELECT * FROM adresy");
  $res->execute;
  print "\n| ID\t | imie\t | nazwisko\t | wiek\t |\n";
  # fetchrow() funkcja pobiera  wiersz tablicy bedacej wynikiem zapytania
  # tutaj w petli whule aby wyswietlic cala tablice
  while(($id_adresy, $imie, $nazw, $wiek) =$res->fetchrow())
  {
     print "| $id_adresy\t | $imie\t | $nazw\t | $wiek\t |\n";
  }
}
Wynik działania programu
Tworze tabele adresy
Dodaje pierwszy element
Dodaje drugi element
Dodaje trzeci element
| ID     | imie  | nazwisko  | wiek  |
| 1  | Jan   | Kowalski  | 17    |
| 2  | Adam  | Nowak     | 19    |
| 3  | Anna  | Zielona   | 22    |
Zmieniam wiek dla id = 1
| ID     | imie  | nazwisko  | wiek  |
| 2  | Adam  | Nowak     | 19    |
| 3  | Anna  | Zielona   | 22    |
| 1  | Jan   | Kowalski  | 21    |
Usuwam wiersz o id 3
| ID     | imie  | nazwisko  | wiek  |
| 2  | Adam  | Nowak     | 19    |
| 1  | Jan   | Kowalski  | 21    |
:] i nie było chyba aż tak źle :P