====== PostgreSQL ====== Notes on PostgreSQL ===== Install from Ubuntu repo ===== root@study:~# apt-get install postgresql-client postgresql ...edited... Setting up postgresql-common (154ubuntu1.1) ... Adding user postgres to group ssl-cert Creating config file /etc/logrotate.d/postgresql-common with new version Building PostgreSQL dictionaries from installed myspell/hunspell packages... en_au en_gb en_us en_za Removing obsolete dictionary files: * No PostgreSQL clusters exist; see "man pg_createcluster" Setting up postgresql-client (9.3+154ubuntu1.1) ... Processing triggers for ureadahead (0.100.0-16) ... Setting up postgresql-9.3 (9.3.23-0ubuntu0.14.04) ... Creating new cluster 9.3/main ... config /etc/postgresql/9.3/main data /var/lib/postgresql/9.3/main locale en_GB.UTF-8 port 5432 update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode * Starting PostgreSQL 9.3 database server [ OK ] Setting up postgresql (9.3+154ubuntu1.1) ... Processing triggers for libc-bin (2.19-0ubuntu6.14) ... root@study:~# ===== Starting Client ===== root@study:~# psql psql: FATAL: role "root" does not exist root@study:~# andrew@study:~/tmp$ sudo -u postgres createuser --superuser $USER [sudo] password for andrew: andrew@study:~/tmp$ sudo -u postgres createdb $USER andrew@study:~/tmp$ touch .psql_history andrew@study:~/tmp$ andrew@study:~/tmp$ psql psql (9.3.23) Type "help" for help. andrew=# andrew=# help; You are using psql, the command-line interface to PostgreSQL. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit andrew=# \h Available help: ABORT ALTER TYPE CREATE RULE DROP GROUP LOCK ALTER AGGREGATE ALTER USER CREATE SCHEMA DROP INDEX MOVE ...edited... ===== Basic navigation ===== ==== List databases ==== andrew=# \list List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- andrew | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) andrew=# ==== Connect to database ==== andrew=# \connect andrew You are now connected to database "andrew" as user "andrew". andrew=# ==== Create Table ==== andrew=# CREATE TABLE test1 (id INTEGER PRIMARY KEY, name VARCHAR); CREATE TABLE andrew=# ==== Insert data into table ==== andrew=# INSERT INTO test1 (id,name) VALUES (0, 'row0'); INSERT 0 1 andrew=# andrew=# INSERT INTO test1 (id,name) VALUES (1, 'row1'); INSERT 0 1 andrew=# select * from test1; id | name ----+------ 0 | row0 1 | row1 (2 rows) andrew=#