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.