Anda di halaman 1dari 2

Dokumen 18 Januari 2010

Belajar PostgreSQL Bagian 3


Kita akan mencoba untuk menggabungkan dua tabel yang saling terkait dimana tabel anak memiliki foreign key (field penghubung) ke tabel karyawan. Sehingga secara logis foreign key tabel anak ( id ) akan dihubungkan dengan primary key tabel karyawan ( id_karyawan). Ini adalah sambungan tutorial Belajar PostgreSQL Bagian 2. Ulas kembali dari proses login dengan user postgres, hingga melakukan koneksi kedatabase latihan:
postgres@darkstar:~$ psql -U postgres -W Password FOR user postgres: psql (8.4.2) Type "help" FOR help. postgres=# \c latihan Password FOR user postgres: psql (8.4.2) You are now connected TO DATABASE "latihan". latihan=# \dt List of relations Schema | Name | Type | Owner --------+----------+-------+---------public | anak | TABLE | postgres public | karyawan | TABLE | postgres (2 rows)

Sekarang Anda lihat semua isi data pada tabel karyawan dan tabel anak:
latihan=# SELECT *from anak; id | nama | tgl_lahir -----+----------------+-----------101 | Endang Wahyuni | 1995-07-07 103 | Famhi Akbar | 1995-05-19 (2 rows) latihan=# SELECT *from karyawan; id_karyawan | nama -------------+------------101 | Ani Setiani 103 | Andrianto (2 rows)

Nah bagaimana cara menampilkan data sekaligus dari dua tabel menjadi satu tabel, jadi informasi mengenai karyawan lengkap dengan informasi anaknya:
latihan=# SELECT karyawan.id_karyawan, karyawan.nama, anak.nama AS nama_anak latihan-# from karyawan, anak latihan-# where karyawan.id_karyawan = anak.id; id_karyawan | nama | nama_anak -------------+-------------+----------------

Dokumen 18 Januari 2010


101 | Ani Setiani | Endang Wahyuni 103 | Andrianto | Famhi Akbar (2 rows)

Penulisan nama tabel berserta titik sebelum nama field dimaksud agar jika ada nama field yang sama dalam satu sintak sql yang akan membedakan adalah nama tabelnya, karena bisa jadi ada field yang sama. Dalam penulisan sql diatas masih bisa kita persingkat lagi menjadi seperti dibawah ini:
latihan=# SELECT k.id_karyawan, k.nama, a.nama AS nama_anak latihan-# from karyawan k, anak a latihan-# where k.id_karyawan = a.id; id_karyawan | nama | nama_anak -------------+-------------+---------------101 | Ani Setiani | Endang Wahyuni 103 | Andrianto | Famhi Akbar (2 rows)