Minggu, 05 Oktober 2014

Perintah Dasar MySQL dan Relasi Tabel

Assalamu’alaikum wr.wb.

Selamat malam sahabat bloggers. Kali ini mumpung ada kesempatan, niatnya mau posting tugas laporan lagi dan masih berkaitan dengan yang kemaren tu. Tapi sekarang akan lebih variatif lagi. Karena akan belajar cara membuat relasi pada tabel.

Relasi Tabel
Relasi tabel adalah hubungan antara beberapa tabel. Relasi antar tabel dihubungkan oleh primary key dan foreign key. Lalu apa primary key dan foreign key itu ?

Primary key adalah suatu atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian tetapi juga mewakili setiap kejadian dari suatu entitas.

Foreign key adalah atribut yang melengkapi relasi dan menunjukkan hubungan antara tabel induk dengan tabel anak, foreign key ditempatkan pada tabel anak.
Untuk membuat suatu relasi maka masing-masing tabel harus memiliki primary key dan foreign key untuk dapat menghubungkan antara tabel induk dengan tabel anak. Sehingga diperlukan teknik normalisasi terlebih dahulu. Normalisasi merupakan proses pengelompokkan data elemen menjadi tabel yang menunjukkan entitas dan relasinya.

Pertama-tama yang wajib dilakukan adalah membuat database baru terlebih dahulu. Jika sudah ada, bisa langsung menggunakannya saja dan jangan sampai ketinggalan untuk masuk ke database tersebut. Tetapi disini saya lebih memilih untuk menggunakan database yang sudah lama. Daripada kebanyakan database jadi gak karu-karuan kan? Toh, cuman buat latihan doang kok. Hehe..

Oke, lanjut ke materi. Setelah itu membuat 2 tabel yang nantinya akan direlasikan keduanya agar saling terhubung satu sama lain. Untuk lebih jelasnya akan dibahas dibawah ini.

1. Membuat tabel

Pertama, buat tabel induk dulu. Tabel inilah yang nantinya akan dihubungkan dengan tabel anak.
Query dasarnya CREATE TABLE nama_tabel (nama_kolom1 tipedata keterangan, nama_kolom2 tipedata keterangan);. Selanjutnya buat tabel anaknya. Jika ingin direlasikan, sesuaikan nama_kolom dan tipedata dari tabel induk terhadap tabel anak. Sehingga kolom ini akan menjadi foreign key pada tabel anak. Dan untuk merelasikan keduanya, simak gambar yang ada dibawah ini.

2. Memasukkan data
Masukkan data pada tabel fakultas dahulu. Perintahnya yaitu INSERT INTO fakultas VALUES(1,’SAINTEK’);. Dan lanjutkan memasukkan data fakultas  yang kedua. Jika sudah, maka gantian tabel mahasiswa yang diisi data. Langsung aja contohnya INSERT INTO mahasiswa VALUES(12,’edi’,’malang’,’085645342800’,1);. Lalu lanjutkan isi datanya seperti gambar berikut ini.

3. Menampilkan data
Untuk menampilkan data yang berada pada suatu tabel, query yang digunakan adalah SELECT nama_kolom FROM nama_tabel;. Jika yang ingin ditampilkan adalah kolom tertentu atau terpilih, maka bisa menggunakan tanda koma. Contohnya seperti dibawah ini.

Jika ingin menampilkan keseluruhan kolom perintah nama_kolom bisa diganti dengan asterisk(*). Dan apabila ingin menampilkan data dari baris tertentu, maka bisa menggunakan WHERE yang diletakkan setelah nama tabel. Jangan lupa juga diberi kata kunci dibelakang where tersebut tentang data apa yang ingin dicari. Contohnya berikut ini.

Dibawah ini merupakan contoh menampilkan data dari relasi 2 tabel antara tabel mahasiswa dan fakultas yang dibelakang where terdapat kata kunci dimana kunci tersebut sangat berperan dalam menampilkan data yang bersangkutan.

4. Menghapus data dengan kondisi (WHERE)
Dengan menggunakan cara ini, kita bisa menghapus baris data yang kita inginkan tanpa takut data yang lain ikut terhapus. Asalkan benar saja saat memasukkan querynya. Contohnya kita akan menghapus data mahasiswa yang memiliki nim 13, querynya seperti berikut.

5. Memodifikasi data
Untuk memodifikasi atau mengubah data bisa menggunakan perintah UPDATE nama_tabel SET nama_kolom=data_baru;. Disertai juga dengan WHERE, yang mengkondisikan data apa yang ingin diubah. Lebih jelasnya ada digambar berikut ini.

6. Mengurutkan data
Mengurutkan atau sorting data berguna agar kita dapat menemukan data dengan mudah. Perintah yang biasa digunakan adalah SELECT* FROM nama_tabel ORDER BY nama_kolom DESC/ASC;. Apabila ingin mengurutkan data dari yang besar ke kecil, tambahkan saja DESC (descending). Sebaliknya, apabila ingin mengurutkan dari kecil ke besar gunakan ASC (ascending). Contoh  descending dibawah ini.

Sedangkan contoh ascending ada dibawah ini.

7. Menampilkan data dengan AND
Sebelum menggunakan AND, cek dulu kedua tabel yang telah dibuat. Cara dibawah ini adalah cara untuk menampilkan keseluruhan data yang ada, baik itu di tabel mahasiswa maupun di tabel fakultas. Perintah where tetap digunakan agar data yang ditampilkan tidak bertumpuk-tumpuk. Contohnya pada gambar berikut.

Disini kita menggunakan AND untuk mencari dan menampilkan data dari suatu tabel yang tertentu yang kita ingin tampilkan. Contohnya dibawah ini. Kita ingin mencari mahasiswa yang kuliah di fakultas SAINTEK.

Sedangkan jika kita ingin mencari dan menampilkan data mahasiswa yang tidak berada di fakultas SAINTEK, maka tinggal diberi tanda seru (!) sebelum sama dengan yang terakhir.

8. Menghapus data pada kolom tertentu
Seperti yang sebelumnya, querynya sangat mudah dan sederhana. Contoh langsungnya yang jelas seperti dibawah ini.

Kesimpulan
Perintah dalam MySQL ataupun Postgre sebenarnya terkadang memiliki kesamaan. Contohnya seperti yang telah dibahas diatas. Dalam membuat, menghapus, memasukkan, memodifikasi, menampilkan, dan mengurutkan data memiliki kesamaan dalam struktur perintahnya. Hanya dibagian tertentu yang tidak sama. Seperi pada MySQL, yaitu pada cara merelasikan 2 tabel, ada kata CASCADE. Cascade ini merupakan salah satu opsi pada tabel yang mereferensikan foreign key.

Cascade sendiri memiliki arti baris-baris dalam tabel anak yang berisi nilai-nilai yang juga terdapat dalam kolom terkait dari tabel induk dihapus ketika baris-baris yang berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nila-nilai yang juga terdapat dalam kolom terkait dari tabel induk diupdate ketika nilai-nilai yang berkaitan diupdate dalam tabel induk. Opsi yang lainnya antara lain.

     1.  RESTRICT, jika tabel anak berisi nilai kolom yang  sama dengan kolom induk, baris dalam kolom induk tidak bisa dihapus. Begitu pun dengan update.
     2.  SET NULL, nilai-nilai dalam kolom yang mengkait dari tabel anak akan diset NULL saat baris-baris dengan data terkait dalam tabel induk dihapus, atau ketika data tersebut diupdate pada tabel induk.
     3.  NO ACTION, tidak ada aksi yang diambil dalam tabel anak ketika baris pada tabel induk dihapus atau diupdate.
     4.  SET DEFAULT, nilai dalam kolom yang ada pada tabel anak akan diset ke nilai default ketika baris dihapus dari tabel induk atau diupdate.

Kurang lebih itulah perbandingannya menurut saya pribadi. Dengan ini juga semoga dapat menambah wawasan para readers tentang pemrograman SQLnya, khususnya yang menggunakan DBMS MySQL. Sekian dulu, akan dilanjutkan dikemudian hari. See ya, thanks..

Wassalamu’alaikum wr.wb.


Referensi:



Tidak ada komentar:

Posting Komentar