PostgreSQL Cheat Sheet
How to show tables in PostgreSQL? How to exit Postgres psql command line utility? How to describe a table in PostreSQL? Find all the answers in our PostreSQL cheat sheet
            We gathered a list of handy PostgreSQL commands and queries when working with PostgreSQL databases. Please ping us @ForestAdmin if you’d like to add something to the cheat sheet!
Getting started with PostgreSQL
Login and enter PostgreSQL command line utility psql
$ sudo su - postgres psqlList postgres databases
\lConnect to postgres database
\c databaseNameExit postgreSQL command line utility psql
\qManaging PostgreSQL
Check PostgreSQL version
 SELECT version();Check if PostgreSQL is installed
$ which psqlCheck if PostgreSQL is running
$ pgrep -fa -- -D | grep postgresRestart PostgreSQL on Linux
# systemctl restart postgresql
// or
# service postgresql restart
// or
# /etc/init.d/postgresql restart
// or
# /sbin/service postgresql restartRestart PostgreSQL on OSX
# brew services restart postgres
// or
# pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log restart
Restart PostgreSQL on Windows
Winkey + R
Type "services.msc"
Click "restart"Change PostgreSQL user password
$ sudo -u postgres psql
\password postgresExit from psql
\qInteracting with databases in PostgreSQL
List postgres databases
\lConnect or switch to postgres database
\c databaseNameCreate new postgres database
CREATE DATABASE databaseNameDelete postgres database
DROP DATABASE databaseNameRename postgres database
ALTER DATABASE old_databaseName TO new_databaseNameSELECT *
FROM mytable
WHERE myfield @> '{"key1":"valueA"}'Interacting with tables in PostgreSQL
List postgres tables
\dtDescribe postgres table
\d tableNameCreate postgres table
CREATE TABLE tableName(	
	columnName columnType,
	columnName columnType
);Delete postgres table
DROP TABLE tableName CASCADEBackup and restore PostgreSQL database
Backup postgres database
$ pg_dump -d databaseName -U userName > backupFileRestore postgres database
psql databaseName < backupFileManaging roles and permissions in PostgreSQL
List postgres roles
SELECT rolname FROM pg_roles;Create postgres user
CREATE USER userName WITH PASSWORD 'userPassword';Delete postgres user
DROP USER userName;Change postgres user password
ALTER ROLE userName WITH PASSWORD 'userPassword';List all assigned roles postgres
SELECT
	r.rolname,
	r.rolsuper,
	r.rolinherit,
	r.rolcreaterole,
	r.rolcreatedb,
	r.rolcanlogin,
	r.rolconnlimit,
	r.rolvaliduntil,
	ARRAY(SELECT b.rolname
		FROM pg_catalog.pg_auth_members m
		JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
		WHERE m.member = r.oid) as memberof,
	r.rolreplication
FROM pg_catalog.pg_roles r
ORDER BY 1;Grant all permissions on postgres database
GRANT ALL PRIVILEGES ON DATABASE databaseName TO userName;Grant connection permissions on postgres database
GRANT CONNECT ON DATABASE databaseName TO userName;List permissions for specific role postgres
SELECT table_catalog, table_schema, table_name, privilege_type
FROM   information_schema.table_privileges
WHERE  grantee = userName ORDER BY table_name;ProstgreSQL psql commands recap
\?  | List all available psql commands  | 
\h COMMAND  | Get help on specific command  | 
\l  | List databases  | 
\c databaseName  | Connect to database  | 
\dt  | List tables  | 
\d tableName  | Describe table  | 
\d+ tableName  | Describe table with details  | 
\dn  | List schemas  | 
\df  | List functions  | 
\dv  | List views  | 
\du  | List users  | 
\dy  | List events  | 
\di  | List indexes  | 
\q  | Exit  | 
Need to build admin panels or a GUI tool for PostgreSQL? Check out Forest Admin for PostgreSQL