| psql | |
|---|---|
| psql [option] -d [dbname] -h [hostname] -U [username] | |
| psql -l | db list |
| psql syntax: | |
| \timing | set show sql execution time |
| \q | quit |
| \password | set password |
| \pset | change psql settings |
| \l | show databases |
| \d [table] | table desc |
| \c [database] | connect to db |
| \da | agregation functions |
| \db+ | tablespaces |
| \dc | conversions |
| \df+ | functions |
| \dg+ \du+ | roles |
| \di+ | indexes |
| \ds+ | sequences |
| \dt+ | tables |
| \dv+ | views |
| \dSvtis+ | system views,tables,indexes,sequences |
| \dn+ | schemas |
| \do | operators |
| \dp | privileges |
| \encoding | db encoding |
| \l+ | db description |
| \z | objects with privileges |
| \o [file] | spool file |
| \![command] | run OS command |
| help commands: | |
| \? | info about commands with backslash |
| \h | sql help |
| parameters: | |
| show all; | db parameters |
| show [parametr]; | show search_path |
| show search_path | current schama |
| set search_path to [other_schema] | now you can see objects from other schema |
administrating:
variable PGDATA point to cluster catalogpg_ctl status #db state
pg_ctl -D [directory] [action]
pg_ctl start | stop |restart #db start,stop you can add -l [logfile]
pg_ctl stop -m [smart | fast | immediate] #db stop smart(default), fast(with rolleback transactions, immediate(shutdown abort)
pg_controldata [cluser_dir] #cluster info
SELECT pg_database_size('[dbname]'); #show db size SELECT pg_size_pretty(pg_database_size('[dbname]')); #show db size SELECT pg_size_pretty(pg_total_relation_size('[table]')); #show table size with index SELECT pg_size_pretty(pg_relation_size('[table]')); #show table without index
DUMP:
-- export:pg_dump [db_name] > [file] #dump in plaintext format
pg_dump -t '[table]' [db_name] > [file]
pg_dump -Fc #dump in pg_restore format
pg_dumpall > [file] #dump all databases
-- import:
psql [db] < [plik] #import from plaintext format
psql -f [file] postgres #import from plaintext format
pg_restore -d [baza] [plik] #import from pg_restore format
pg_restore -l [plik] #content of dumpfile
CREATE:
initdb --pgdata | -D [cluster_dir] [-E encoding] #cluster initialization,create template1 and postgres databasecreatedb [dbname] [-D tablespace] [-E encoding] [-O owner] [-T template to create new database]
change host database IP:
change in $PG_DATA/postgresql.confchange in $PG_DATA/pg_hba.conf (according manual - chapter 20: Client Authentication)
misc:
ALTER TABLE [table] ALTER COLUMN [column] TYPE int USING [column]::int; #change column type from char to intMANAGE ROLES:
--check\dg #check system privs
SELECT * FROM pg_roles;
create role [role_name]; #create role
--change
ALTER ROLE [role_name] SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | CONNECTION LIMIT [connlimit] | PASSWORD [password] | ENCRYPTED | UNENCRYPTED | VALID UNTIL [timestamp]
--change password
ALTER ROLE [role] PASSWORD '[pass]';
change object privs:
\z #check privs=xxxx #privileges granted to PUBLIC
uname=xxxx #privileges granted to a user
group gname=xxxx #privileges granted to a group
r -- SELECT ("read")
w -- UPDATE ("write")
a -- INSERT ("append")
d -- DELETE
R -- RULE
x -- REFERENCES
t -- TRIGGER
X -- EXECUTE
U -- USAGE
C -- CREATE
T -- TEMPORARY
arwdRxt -- ALL PRIVILEGES (for tables)
* -- grant option for preceding privilege
GRANT [privs] ON [object] TO [role];