bookmarks/cheat/postgresql.md
2020-05-15 14:52:59 +02:00

71 lines
1.4 KiB
Markdown

### Disable paging in postgresql
`\pset pager off`
### Connect to a database
`\c database_name`
### Show tables and sequences in current schema
`\d`
### Describe a table
`\d table_name`
### Show only tables with their size (`+`) in current schema
`\dt+`
### Show databases with their privileges and size (`+`)
`\l+`
### Show available schemas
`\dn`
### Gets the size of a schema
```
SELECT pg_size_pretty(SUM(pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(tablename)))::BIGINT) FROM pg_tables WHERE schemaname = 'schema_name'
```
### Return back to shell
`\q`
### List users and their access privileges on databases
`\du`
### List default access privileges
`\ddp`
### List tables, views and sequences with their associated access privileges
`\dp`
### List of roles
`SELECT rolname FROM pg_roles;`
### Detail of a role
`SELECT * FROM pg_roles WHERE rolname = '...'`
### Which version of PostgreSQL am I running? [src](https://stackoverflow.com/questions/13733719/which-version-of-postgresql-am-i-running)
If you're using CLI and you're a postgres user, then you can do this:
`psql -c "SELECT version();"`
### Creating a copy of a database in PostgreSQL.
```
# backup
pg_dumpall > db.out
# restore
# (might requires some DROP DATABASE xxx if you do want to replace existing data with same db and table names.
psql -f db.out postgres
```