PostgreSQL is a famous Relational DataBase Management System. It is an open-source “client-server” database which can be accessed using a programming language, through a GUI application or a CLI.

Client Applications

One strength of PostgreSQL is its packaged of “client applications”. These are used to interact with PostgreSQL in various ways by issuing a command via the command line.

Some commonly used client applications:

  • createdb: wrapper around CREATE DATABASE SQL command, to create a new PostgreSQL database
  • dropdb: wrapper around DROP DATABASE SQL command, to destroys an existing PostgreSQL database
  • pg_dump: utility for consistently backing up a PostgreSQL database into a script file or other archive file (even when currently in use)
  • pg_restore: utility for restoring a PostgreSQL database from an archive file created by pg_dump
  • pg_bench: program for running benchmark tests on PostgreSQL
  • psql: terminal-based interactive console to interact with PostgreSQL

Client applications are to be used within one’s terminal and not in PostgreSQL interactive console (psql).

The psql Console Prompt

In the psql console prompt, one can issue two types of commands:

  • Meta-commands: backslash \ followed by a command and optional arguments (like \q to quit)
  • SQL statements: commands issued to the database using SQL syntax (and terminating in a semi-colon)


Common PSQL Meta-Commands

  • \connect database_name (or \c database_name) to connect to the database called database_name
  • \list (or \l) to display all databases
  • \quit (or \q) to exit PostgreSQL session
  • \edit (or \e) to call an editor that let’s you edit and rerun the previous command
  • \dt to display a list of all the existing tables
  • \d foo to describe the table foo