Datenbanken anlegen

Die meisten Benutzer werden nach der Installation der Datenbank zuallererst eine Datenbank anlegen. In PostgreSQL gibt es dafür den Shell-Command 'createdb', der die folgende Syntax aufweist:

[hs@athlon test]$ createdb --help
createdb creates a PostgreSQL database.

Usage:
  createdb [OPTION]... [DBNAME] [DESCRIPTION]

Options:
  -D, --tablespace=TABLESPACE  default tablespace for the database
  -e, --echo                   show the commands being sent to the server
  -E, --encoding=ENCODING      encoding for the database
  -l, --locale=LOCALE          locale settings for the database
      --lc-collate=LOCALE      LC_COLLATE setting for the database
      --lc-ctype=LOCALE        LC_CTYPE setting for the database
  -O, --owner=OWNER            database user to own the new database
  -T, --template=TEMPLATE      template database to copy
  --help                       show this help, then exit
  --version                    output version information, then exit

Connection options:
  -h, --host=HOSTNAME          database server host or socket directory
  -p, --port=PORT              database server port
  -U, --username=USERNAME      user name to connect as
  -w, --no-password            never prompt for password
  -W, --password               force password prompt

By default, a database with the same name as the current user is created.

Report bugs to <pgsql-bugs@postgresql.org>.

Alle Programme, die mit PostgreSQL ausgeliefert werden, stellen die Option -help bereit, um sich einen Überblick über die Syntax zu verschaffen. Auch die Commandline Parameter -host, -port, -username und -password sind bei allen Tools zu finden. Es ist mit createdb somit auch möglich, Datenbanken auf einer entfernten Maschine anzulegen (sofern Sie dafür die notwendigen Rechte haben).

Eine einfache Datenbank kann wie folgt angelegt werden:

[hs@athlon hs]$ createdb test
CREATE DATABASE

Sofern dieser Befehl keinen Fehler ausgibt, werden wir von 'psql -l' den folgenden Output erwarten können:

[hs@athlon hs]$ psql -l
       List of databases
   Name    | Owner | Encoding
-----------+-------+-----------
 postgres  | hs    | SQL_ASCII
 template0 | hs    | SQL_ASCII
 template1 | hs    | SQL_ASCII
 test      | hs    | SQL_ASCII
(4 rows)

Bevor wir uns zur Datenbank verbinden, um dort Operationen durchzuführen, wollen wir uns ansehen, was createdb eigentlich tut: Wird createdb ohne die Option -template aufgerufen, wird die Datenbank namens 'template1' geklont. Wenn Sie also Testdaten oder dergleichen in template1 einfügen, werden diese Daten in die neu zu erstellende Datenbank übernommen.

Beim Anlegen von Datenbanken ist auch das Encoding von essentieller Bedeutung: Defaultmässig wird das Encoding der zu klonenden Datenbank übernommen. Mit Hilfe der Option '-E' ist es allerdings möglich, diese Einstellung zu überschreiben. Das hier angegebene Encoding gilt dann für die gesamte Datenbank - aus diversen Gründen ist es nicht möglich, das Encoding auf Tabellen- oder gar auf Spaltenebene zu definieren.


Cybertec Schönig & Schönig GmbH
PostgreSQL support, training, consulting
www.postgresql-support.de