52  PostgreSQL 101

52.1 Install

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y postgresql-12
sudo apt-mark hold postgresql-12

Verify that PostgreSQL is running:

sudo systemctl status postgresql

52.2 User Setup

Set a password for the postgres database user:

sudo -u postgres psql postgres
\password postgres
\q

52.3 PostgreSQL connection URI

The PostgreSQL connection URI follow the format

postgres[ql]://[username[:password]@][host[:port],]/database[?parameter_list]

52.4 Query database

psql -h localhost -U postgres postgres -c '\list;'
Did not find any relations.

52.5 Create new database

sudo -u postgres createdb \
    --owner=username \
    --encoding=UTF8 \
    --template=template0 \
    dbname

52.6 List databases

\list;

52.7 Switch to database

Note

The use of double quotes is recommended to avoid the expression being interpreted.

\c "database-name";

52.8 List tables in database

\dt;

52.9 Change table ownership

Note

The use of double quotes is recommended to avoid the expression being interpreted.

ALTER TABLE "table-name" OWNER TO "username";

52.10 Uninstall

sudo apt -y --purge remove postgresql postgresql-*
sudo apt -y --purge autoremove
sudo deluser postgres
sudo rm -rf /etc/postgresql
sudo rm -rf /etc/postgresql-common/
sudo rm -rf /usr/local/pgsql
sudo rm -rf /var/log/postgresql/