Rabu, Juni 23, 2010

Tutorial: PostgreSQL - Dasar Setup Server dengan psql

Bagi pemula, mengenal lebih dulu psql sebagai klien antarmuka berbasis baris perintah akan mempermudah nantinya penggunaan klien berbasis GUI seperti PgAdmin atau phpPgAdmin. psql menawarkan cara kuat untuk mengelola setiap aspek dari server PostgreSQL. Dibundel dengan distribusi PostgreSQL, psql fungsinya mirip dengan klien mysql pada MySQL maupun tool Oracle SQL * Plus. Dengan psql, pengguna dapat membuat dan menghapus database, tablespace, dan table, melakukan transaksi, mengeksekusi query umum seperti CREATE, SELECT, INSERT, DELETE, dan melakukan banyak perintah lainnya. Pada tutorial ini hanya menyajikan cara belajar dasar-dasar fitur psql secara sederhana pada Ubuntu Linux (beberapa distro mungkin sedikit berbeda cara setup servernya).

Asumsi

Untuk belajar psql ini diasumsikan telah mengenal konsep basis data dan SQL.

Pada tutorial ini ujicoba menggunakan Ubuntu Linux 9.04 dan PostgreSQL 8.3 atau bisa juga versi di atasnya, dan cara instalasi PostgreSQL silakan merujuk cara dari komunitas Ubuntu, untuk beberapa distro selain Ubuntu mungkin sedikit berbeda.

Instalasi

subura@localhost:~$ sudo apt-get install postgresql

User dan Database Baru

Setelah sukses menginstalasi, coba membuat user baru yang memiliki privilege sebagai superuser, perintahnya sebagai berikut.

subura@localhost:~$ sudo -u postgres createuser --superuser $USER
subura@localhost:~$ sudo -u postgres psql

$USER itu biasanya nama username Login Ubuntu, tapi di tutorial ini dibuat user berbeda dengan user login, misal: foo

subura@localhost:~$ sudo -u postgres createuser --superuser foo
subura@localhost:~$ sudo -u postgres psql
[sudo] password for subura:
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.

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

postgres=#

Berikan password pada user 'foo'

postgres=# \password foo
Enter new password:
Enter it again:

Sekarang quit dengan perintah \q untuk masuk ke terminal lagi, lalu agar lebih mudah, coba buat database baru dengan nama yang sama dengan user: foo

subura@localhost:~$ createdb foo

Coba masuk login melalui psql menuju database 'foo' dan user 'foo', ketik:

subura@localhost:~$ psql foo
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.

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

foo=#

Untuk melihat list semua database, ketik:

foo=# \l
List of databases
Name | Owner | Encoding
-----------+----------+----------
foo | subura | UTF8
postgres | postgres | UTF8
sekolah | subura | UTF8
subura | subura | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8

(6 rows)

foo=#

OK, sukses!

Alternatif lain membuat user baru yang memiliki hak penuh atas suatu database seperti berikut ini:

subura@localhost:~$ sudo -u postgres createuser -D -A -P myuser
[sudo] password for subura:
Enter password for new role:
Enter it again:
Shall the new role be allowed to create more new roles? (y/n) y

Perintah -D menghendaki myuser tidak memiliki hak membuat database baru, -A tidak memiliki hak menambahkan user baru, dan -P akan memberikan pertanyaan password pada prompt untuk user myuser. Pertanyaan 'Shall the new role be allowed to create more new roles? (y/n)' bila jawaban y (yes), maka myuser bisa membuat role baru.

Buat database baru dengan user myuser:

subura@localhost:~$ sudo -u postgres createdb -O myuser mydb

Bila berhasil, coba masuk via psql

subura@localhost:~$ psql mydb
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.

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

mydb=#

Lihat list database, apakah mydb dan user myuser sudah ada dalam list

mydb=#\l
List of databases
Name | Owner | Encoding
-----------+----------+----------
foo | subura | UTF8
mydb | myuser | UTF8
postgres | postgres | UTF8
sekolah | subura | UTF8
subura | subura | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(7 rows)

mydb=#

Ok ternyata ada, sukses lagi, berikan perintah SELECT untuk mengetahui psql mendengarkan perintah ini.

mydb=# select version();

version

----------------------------------------------------------------------------------------------------

PostgreSQL 8.3.10 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Ubuntu 4.3.3-5ubuntu4) 4.3.3

(1 row)


Yup, coba lagi:

mydb=# select current_date;

date

------------

2010-06-23

(1 row)

mydb=# select 10 * 10;

?column?

----------

100

(1 row)


Mantap, sampai di sini dulu. ;-)

1 komentar:

  1. pak, permisi mau tanya, untuk postgreeSQL untuk window.. apakah ada tutorial sederhana? karena saya masih baru dan berminat untuk belajar database ini..sebelum nya saya menggunakan Mysql yang terintegrasi dengan PHP Triad dan XAAMP.. Terimakasih.

    BalasHapus