Hubungan Antar Tabel (Reference)
Dalam hal hubungan antar tabel, ada beberapa syarat yang harus terpenuhi seperti,
antara tabel yang ingin dihubungkan harus memiliki sebuah field atau kolom dengan tipe
data yang sama. Dengan kata lain ada tabel yang memiliki primary key sebagai kunci
untuk menghubungkan ke tabel yang lain dimana terdapat field yang mempunyai tipe data
yang sama dengan kata lain yang disebut foreign key.
Misalnya, terdapat tabel barang dan
macam_barang. Berikut query kedua tabel tersebut :
· create table macam_barang (id_mac integer not null, nama_mac varchar(15), guna_mac varchar(40), primary key (id_mac));
· create table barang (id_bar integer not null, nama_bar varchar(15), id_mac integer not null references macam_barang, primary key (id_bar, id_mac));
Atau ketika kita lupa memberikan references pada tabel macam barang kita dapat
memberikan query sebagai berikut :
· alter table barang add constraint relasi_barang foreign key (id_mac)
references macam_barang (id_mac) on update no action on delete no
action;
Memasukkan Data
Sebuah data dapat dimasukkan ke dalam tabel menggunakan perintah INSERT.
Namun hal yang perlu diperhatikan yaitu struktur tabel yang akan digunakan untuk
memasukkan data. Sebagai contoh memasukkan data ke dalam tabel dengan nama
identitas :
insert into identitas values (1, ’wahyu’ , ’1992-07-23’ , false , ’programer’);
Berikut penjelasan :
- Kolom pertama berisikan (1), karena tipe datanya adalah integer maka tanda petik
tidak digunakan.
- Kolom kedua („wahyu‟) dan kelima („programer‟), karena tipe datanya varchar maka
tanda petik diperlukan, bila tanpa ada tanda petik maka dianggap salah.
- Kolom ketiga (‟1992-07-23‟), tipe data Date dianggap sebagai sebuah string
sehingga harus menggunakan tanda petik.
- Kolom keempat (false), tipe data kolom ini Boolean yang hanya mengijinkan inputan
true atau false dan tidak perlu tanda petik.
Primary key
Foreign key
Menampilkan data
Dalam database, perintah SQL untuk menampilkan data sebuah tabel bisa
menggunakan SELECT. Berikut struktur SQL untuk penampilan data berdasarkan kolom
tertentu :
Select nama_kolom from nama_tabel;
Contoh :
Jika ingin menampilkan keseluruhan kolom dan keseluruhan baris suatu tabel bisa
mengganti nama_kolom menggunakan tanda asterisk (*).
Contoh :
Kemudian, bila ingin menampilkan berdasarkan baris tertentu bisa menggunakan
perintah WHERE yang diletakkan dibelakang nama tabel dan isikan nama kolom beserta
kata kunci sebagai dasar atau syarat dari pencarian baris. Untuk lebih jelasnya berikut
struktur perintah SQL nya :
select nama_kolom from nama_tabel where nama_kolom = kata kunci;
Contoh :
Apabila ingin menampilkan data dari lebih dari satu tabel, struktur SQL nya
terdapat sedikit perbedaan. Misalnya memakai tabel yang telah dibuat pada praktikum ke-
2 yaitu mahasiswa dan fakultas (Dengan syarat adanya relasi antara kedua tabel
tersebut). Berikut Struktur SQL nya :
select nama_kolom, nama_kolom, nama_kolom, nama_kolom from
nama_tabel_1, nama_tabel_2 where nama_tabel_1.nama_kolom =
nama_tabel_2.nama_kolom;
Contoh :
Perintah SQL diatas akan menampilkan nim mahasiswa, nama mahasiswa, nomor
fakultas, dan nama fakultas. Pada perintah setelah WHERE terdapat 2 nama kolom id_fk,
hal tersebut dimaksudkan penyamaan antara primary key milik dari tabel fakultas dengan
foreign key milik dari tabel mahasiswa.
Menghapus Data
Pada database PostgreSQL, DELETE digunakan untuk menghapus data pada
sebuah tabel. Berikut Struktur yang digunakan :
delete from namatabel ;
Arti dari struktur diatas yaitu menghapus semua baris data dari nama tabel yang
tertulis. Namun bisa juga digunakan penghapusan berdasarkan spesifikasi baris atau baris
tertentu saja. Berikut Strukturnya :
delete from nama tabel where namakolom = katakunci;
contoh :
Modifikasi Data
Dalam memodifikasi database bisa menggunakan perintah UPDATE. Berikut
contoh struktur SQL untuk memodifikasi data pada kolom tertentu berdasarkan baris
tertentu :
update namatabel set namakolom = isidata where namakolom = katakunci;
Pengurutan Data
Maksud dari pengurutan data dengan perintah ORDER BY adalah jika data
sebuah tabel diurutkan dengan perintah tersebut, maka data tadi akan diurutkan dari atas
ke bawah berdasarkan abjad. Hal ini juga berlaku jika data yang ada dalam bentuk angka.
Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom :
select * from nama_tabel order by nama_kolom;
Contoh :
data fakultas diurutkan berdasarkan kolom nama fakultas secara ascending.
Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom secara descending:
select * from nama_tabel order by nama_kolom desc;
Berikut struktur perintah SQL untuk pengurutan berdasarkan beberapa kolom :
select * from nama_tabel order by nama_kolom asc, nama_kolom desc;
Berikut struktur perintah SQL untuk pengurutan berdasarkan nomor kolom :
select * from nama_tabel order by nomor_kolom desc;
*catatan : nomor_kolom dimulai dari kiri, misal terdapat kolom nim, nama. Maka jika ingin
mengurutkan berdasarkan nama kita perlu mengganti nomor_kolom menjadi 2.
ita aan membuat dua tabel dan menggabungkannya, yaitu tabel mahasiswa dan tabel fakultas.
untu memudahkan cara kerja buat dulu tabel fakultas yaitu :
create table Fakultas (id_fak integer not null, nama_fak varchar(diisi terserah),primary key(id_fak));
TUGAS
1. Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian masukkan 3
data mahasiswa sebagai berikut :
Nim : 12
Nama : edi
Alamat : malang
No.telp : 0856453428
Fakultas : SAINTEK
Nim : 13
Nama : sinta
Alamat : jogja
No.telp : 0813347565675
Fakultas : SAINTEK
Nim : 14
Nama : luki
Alamat : ponorogo
No.telp : 082576568798
Fakultas : PSIKOLOGI
Primary key
Foreign key
Primary key 2. Tampilkan data mahasiswa berupa nim dan nama.
3. Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang
muncul hanya salah satu data mahasiswa.
4. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama
fakultas.
5. Hapus data mahasiswa yang memiliki nim : 13
6. Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12
7. Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa.
Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.
8. Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.
9. Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.
10. Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.
11. Hapus data fakultas “SAINTEK”.
Jawab
1.lalu buat tabel mahasiswa:
create table Mahasiswa(nim_mah integer not null,nama_mah varchar(terserah),alamat_mah text, id_fak integer not null references fakultas,primary key(nim_mah, id_fak));
dibawah merupakan hasil tabel yang kita buat
lalu tambahkan no telepon pada tabel mahasiswa yaitu:
alter table mahasiswa add coloumn "no_telp" varchar(15);
masukan data fakultas dan mahasiwa, pada tabel fakultas seperti:
insert into fakultas values (65, 'saintek'), (90, 'psikologi');
dan pemasukan data pada tabel mahasiswa yaitu:
insert into mahasiswa values (12,'edi','malang',65,'0856453428'), (13,'sinta','jogja',65,'0813347565675'), (14,'luki','ponorogo',90,'082576568798');
2. untuk menampilkan berupa NIM dan nama ketikkan:
select nim_mah, nama_mah from mahasiswa;
3. menampilkan data mahasiswa dari nim salah satu mahasiswa;
select*from mahasiswa where nim_mah='13';
4.untuk menampilkan data mahasiswa dan fakultas berdasarkan nim,nama,nama fakultas:
select nim_mah,nama_mah,nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
5.menghapus data mahasiswa yang ber-NIM 13:
delete from mahasiswa where nim_mah=13;
6.mengubah data berupa alamat: Solo dan telpon:0857688788 yang nim:12 adalah:
update mahasiswa set alamat_mah='Solo',no_telp='0857688788' where nim_mah=12;
7.menampilkan data mahasiswa dan urutkan dari besar ke kecil berdasar nim mahasiswa:
select*from mahasiswa order by nim_mah desc;
kemudian menampilkan data fakultas urutkan secara ascending berdasak kolom nama fakultas;
select*from fakultas order by nama_fak asc;
8.menampilkan seluruh data mahasiswa beserta data fakultas:
select nim_mah, nama_mah, alamat_mah, no_telp, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
9.menampilan seluruh mahasiswa yag di fak"saintek":
select nim_mah, nama_mah, alamat_mah,no_telp from mahasiswa where id_fak=65;
10.menampilkan seluruh mahasiswa yang tidak berada di fakultas"saintek":
select nim_mah,nama_mah,alamat_mah,no_telp from mahasiswa where id_fak!=65;
11.menghapus data fakultas "saintek", dengan menghapus ID fakultas yang ada di tabel mahasiswa terlebih dulu :
delete from mahasiswa where id_fak=65;
hapus id fakultas di tabel fakultas:
delete from fakultas where id_fak=65;
Evaluasi Perbandingan PostgreSQL dan MySQL
Tugas praktikkum 1-11 semuanya sama, tidak ada perbedaan. Jadi, semua perintah querynya sama. Hanya saja ada perbedaan saat sebelum membuat tabel, di PostgreSQL langsung bisa membuatb tabel, karena database langsung aktif. Sedangkan di MySQL setelah masuk akunya, harus mengoneksikan/ mengaktifkan database yang ingin dipakai.
Kesimpulan
Pada praktikum kali ini kita diajaran mengenai dasar perintah SQL berupa menghubungkan 1 tabel dengan tabel lainnya, banyak sekali query baru yang kita pelajari mulai dari pembuatan tabel, memanipulasi , hingga menghapus.
hanya ini yang bisa saya sampaikan pada artiel saya, bila ada lebihnya silahkan diambil hikmahnya dan jika ada kesalahan saya Destyan Probo selaku pembuat materi memohon maaf sebesar besarnya.
Daftar Pustaka
www.pitaiindahkumala.blogspot.com
www.joyisjoy.blogspot.com
www.sinauonlen.blogspot.com
Pada praktikum kali ini kita diajaran mengenai dasar perintah SQL berupa menghubungkan 1 tabel dengan tabel lainnya, banyak sekali query baru yang kita pelajari mulai dari pembuatan tabel, memanipulasi , hingga menghapus.
hanya ini yang bisa saya sampaikan pada artiel saya, bila ada lebihnya silahkan diambil hikmahnya dan jika ada kesalahan saya Destyan Probo selaku pembuat materi memohon maaf sebesar besarnya.
Daftar Pustaka
www.pitaiindahkumala.blogspot.com
www.joyisjoy.blogspot.com
www.sinauonlen.blogspot.com
Training Scriptcase di Indonesia, kunjungi www.OwenSolution.com
BalasHapus