Creating Database in PostgreSQL

To create a new database in PostgreSQL you must be a super user or have CREATEDB privilege. Here is the syntax of creating a new database in PostgreSQL.
CREATE DATABASE name
    [ [ WITH ] [ OWNER [=] database_owner ]
           [ TEMPLATE [=] template ]
           [ ENCODING [=] encoding ]
           [ TABLESPACE [=] tables_pace ]
           [ CONNECTION LIMIT [=] connection_limit ] ]
When creating a new database, by default, you are the owner of that database. You can also assign the owner of the database by using addition OWNER to another user by specifying the user name.

By default, the new created database clones the standard system database template. You can also create a new virgin database by assign template0 to TEMPLATE. in this case, PostgreSQL will create all standard predefined objects to the new database.

Encoding specify the encoding of the database you want to create.

Table space allows you define specific location in the server where the data resides.

Connection LIMIT allows you set the number of concurrent connection to connect the new database, -1 by default means unlimited connection.

For example to create a database called store you can use the following query:
CREATE DATABASE store
  WITH OWNER = postgres
  ENCODING = 'WIN1252';
Once created, you can delete the database by using DROP DATABASE statement. Here is the syntax:
DROP DATABASE database_name
You just need super user privilege or you are the owner of that database to delete a database. Be noted that you only can drop a database while you are not connected to it.
To drop the database store, you just execute one of two following queries:
DROP DATABASE store
For convenience, PostgreSQL provides an alternative way to manage database via shell programs which are called createdb and dropdb. Both of programs can be launched from command line, then they connect to the PostgreSQL database server and execute Create Database and Drop Database statements.