PostgreSQL Advanced CheatSheet 1731972672
PostgreSQL Advanced CheatSheet 1731972672
● Create a user with specific privileges: CREATE USER username WITH PASSWORD
'password'; GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA schema_name TO
username;
● Clone a user with privileges: CREATE USER newuser WITH PASSWORD
'password'; GRANT ALL PRIVILEGES ON DATABASE dbname TO newuser;
● Show users with specific privileges: SELECT grantee FROM
information_schema.role_table_grants WHERE table_schema = 'public' AND
privilege_type = 'SELECT';
● Nested CASE statements: SELECT CASE WHEN condition1 THEN result1 WHEN
condition2 THEN result2 ELSE default_result END FROM tablename;
● Conditional aggregation: SELECT SUM(CASE WHEN condition THEN column ELSE
0 END) FROM tablename;
● CASE in ORDER BY: SELECT * FROM tablename ORDER BY CASE WHEN condition1
THEN column1 WHEN condition2 THEN column2 ELSE column3 END;
● Join with USING clause: SELECT * FROM table1 JOIN table2 USING
(common_column);
● Anti Join (not in): SELECT * FROM table1 LEFT JOIN table2 ON
table1.column = table2.column WHERE table2.column IS NULL;
● Semi Join (exists): SELECT * FROM table1 WHERE EXISTS (SELECT 1 FROM
table2 WHERE table1.column = table2.column);
● Log all queries for debugging: ALTER SYSTEM SET log_statement = 'all';
● Show current locks: SELECT * FROM pg_locks;
● Analyze query cost: EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM tablename
WHERE column = 'value';