A. Dasar Teori
1. Hubungan Antar Tabel
Dalam dunia basis data, terdapat istilah hubungan antar tabel atau refernces. Untuk mengolah basis data sangat diperlukanlah yang namanya hubungan antar tabel tersebut agar setiap tabel yang di buat bisa saling terkait. Kita kenal kunci utama (primary key) dan kunci tamu (foreign key). Tujuan utama dari adanya kedua istilah tersebut adalah pengidentifikasian tiap table dan kejelasan hubungan antara 2 atau lebih table. Primary key adalah satu atau beberapa kolom pada table yang mengidentifikasikan tiap kolom dan baris pada table tersebut. Sedangkan Foreign Key adalah satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tablenya berelasi dengan table dirinya. Misalnya kita memiliki 2 tabel, yaitu tabel mhs dan matkul ;
- CREATE TABLE matkul( id_matkul CHAR(5) NOT NULL PRIMARY KEY, nm_matkul VARCHAR(30) NOT NULL, jml_sks VARCHAR (5) NOT NULL);
- CREATE TABLE mhs( nim INT NOT NULL PRIMARY KEY, nama VARCHAR(50) NOT NULL, alamat VARCHAR(60) NOT NULL, id_matkul INT, FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul) );
Tabel ‘matkul’ sebagai tabel induk kita buat terlebih dahulu, kemudian baru kita buat tabel mhs sebagai tabel yang akan di berikan foreign key dari tabel matkul.
2. Memasukkan data
Dari tabel mhs dan matkul kemudian kita isi tabel seperti contoh tabel berikut ;
Table mhs
Nim Nama Alamat Id_matkul
7644 Adi Artupida Bekasi 123
7634 Herman Bandung 222
7635 Budianto Nahrowi Semarang 111
7636 Sinta Bekasi 333
Table Matkul
Id_matkul Nm_matkul Jml_sks
123 Pemrograman Web 3
111 Pemrograman C 3
222 Pemrograman Java 3
333 Pemrograman OOP 3
Untuk memasukkan data ke dalam tabel kita dapat menggunakan perintah INSERT, dengan query seperti contoh di bawah ;
- INSERT INTO mhs VALUES (7633,’Adi Artupida’,’Bekasi’,123), (7634,’Herman’,’Bandung’,222), (7635,’Budianto Nahrowo’,’Semarang’,111), (7636,’Sinta’,’Bekasi’,333);
- INSERT INTO matkul VALUES (123,’Pemrograman Web’,3), (111,’Pemrograman C’,3), (222,’Pemrograman Java’,3), (333,’Pemrograman OOP’,3);
Dalam memasukkan data ada beberapa ketentuan yang harus di penuhi salah satunya adalah ketika kita memasukkan data yang bertipe VARCHAR kita harus memberikan tanda petik atas (‘ ‘) pada data tersebut. Akan berbeda pada data yang bertipe INT, BOOLEAN kita tidak perlu memberikan tanda petik (‘ ‘) ketika memasukkan data.
3. Menampilkan data
Menampilkan data dari sebuah tabel mungkin merupakan hal paling sering kita lakukan dalam menangani database. Pembuatan tabel MySQL hanya perlu di lakukan sekali di awal implementasi, namun input data (INSERT) dan menampilkannya kembali (SELECT) dalam format yang diinginkan merupakan rutinitas selama database masih digunakan. Perintah SELECT akan dibahas berkaitan dengan opsi WHERE, ORDER BY, dan LIMIT.
Format dasar ketika kita ingin menampilkan data, setidaknya kita butuh setidaknya 3 hal: 1. Apa saja kolom yang ingin ditampilkan, 2. Nama tabel yang akan ditampilkan, dan 3. Kondisi untuk menampilkan data. Query SELECT pada dasarnya juga terdiri dari 3 hal tersebut:
- SELECT apa_yang_akan_ditampilkan FROM tabel_apa WHERE kondisi_apa_data_ditampilkan ;
- SELECT*FROM matkul;
Tanda bintang (*) adalah wildcard atau tanda yang di gunakan untuk menandai semua data. Maka hasilnya semua data pada tabel matkul akan muncul.
Table Matkul
Id_matkul Nm_matkul Jml_sks
123 Pemrograman Web 3
111 Pemrograman C 3
222 Pemrograman Java 3
333 Pemrograman OOP 3
Jika kita ingin menampilkan hanya sebahagian dari seluruh kolom dari sebuah tabel, kita dapat menentukan kolom mana saja yang akan ditampilkan. Format dasarnya adalah sebagai berikut:
- SELECT namakolom1, namakolom2 . . . FROM namatabel ;
Kemudian, jika kita ingin menyeleksi tamilpilan 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 namakolom1, namakolom2 . . . FROM namatabel WHERE namakolom=’kondisi’ ;
Kita contohkan dengaan menggunakan tabel mhs untuk menampilkan nama dan nim mahasiswa yang beralamat di bekasi :
- SELECT Nim, Nama FROM mhs WHERE alamat=’bekasi’ ;
Maka akan menampilkan Nim dan Nama mahasiswa yang beralamat di bekasi ;
Nim Nama
7644 Adi Artupida
MySQL menyediakan perintah opsional ORDER BY untuk mengurutkan data yang di hasilkan. Pengurutan bisa dari paling kecil ke besar, ataupun besar ke kecil. Pilihan ini dapat diatur dengan penambahan instruksi ASC (singkatan dariascending) untuk pengurutan dari kecil ke besar, dan DESC (singkatan dari descending) untuk urutan dari besar ke kecil. Jika tidak di dijelaskan, secara default bawaan MySQL, perintah ORDER BY akan menggunakan ASC.Query dasar untuk SELECT…ORDER BY adalah:
- SELECT namakolom1, namakolom2 . . . FROM namatabel WHERE nama_kolom_yang_diurutkan ORDER BY namakolomurut ; //nama kolom urut bisa di isi DESCENDING atau ASCENDING
Apabila kita ingin menampilkan data dari lebih dari satu tabel, struktur query nya terdapat sedikit perbedaan. Misalnya memakai tabel yang telah dibuat yaitu tabel mhs dan tabel matkul (Dengan syarat adanya relasi antara kedua tabel tersebut). Berikut Struktur query nya :
- SELECT namakolom1, namakolom2, namakolom3, namakolom4 FROM namatabe1, namatabel2 WHERE namatabel1.namakolom = namatabel2.namakolom ;
Query di atas akan menampilkan nama kolom dari dua tabel yang telah di beri relasi antara keduanya.
4. Modifikasi Data
Dalam memodifikasi database bisa menggunakan perintah UPDATE untuk memodifikasi isi tabel. Dengan query UPDATE kita bisa mengganti data lama dengan data bar. Berikut query UPDATE untuk mengganti data tabel :
UPDATE
nama_tabel
SET
nama_kolom = data_baru
WHERE
kondisi
- UPADATE namatabel SET namakolom = databaru WHERE kondisi ;
Kita bisa menambahkan perintah logika berupa OR atau AND.
5. Mengahapus Data
Pada MySQL, perintah DELETE digunakan untuk menghapus data pada sebuah tabel. Berikut Struktur yang digunakan :
- DELETE FROM namatabel ;
Dari query kita akan menghapus semua baris data dari nama tabel yang tertulis. Namun apabila kita ingin menghapus berdasarkan spesifikasi baris atau baris tertentu saja. Kita bisa menggunakan struktur query sebagai berikut :
- DELETE FROM namatabel WHERE namakolom = katakunci ;
Dengan struktur quey di atas kita bisa menghapus kolom yang kita inginkan.
B. Praktek Perintah Dasar SQL
Pada bahasan ini kita akan mempraktekan perintah perintah dasar SQL di atas menggunkan 2 tabel yaitu tabel mahasiswa dan fakultas. Kita mulai dengan membuat 2 tabel terlebih dahulu dengan memberi relasi antara kedua tabel tersebut.
1. Membuat Tabel dengan Relasi
Untuk pertama kita membuat tabel fakultas dengan isi kolom id_fak dan nama_fak, berikut query nya :
mysql> create table fakultas ( id_fak INT NOT NULL PRIMARY KEY, nama_fak varchar (10));
Kemudian kita akan membuat tabel mahasiswa yang kemudian kita relasikan dengan tabel fakultas, berikut query ;
mysql> create table mahasiswa (nim_mah INT NOT NULL PRIMARY KEY, nama_mah varchar (10), alamat_mah varchar (10), id_fak INT NOT NULL, foreign key (Id_fak) references fakultas (id_fak));
2. Memasukkan Data
Seperti yang telah di terangkan di atas kita akan menggunakan perintah INSERT untuk memasukkan data ke tabel. Berikut query yang akan kita tuliskan untuk memasukkan data ke dalam tabel ;
mysql> insert into mahasiswa values (12, ‘edi’, ‘malang’, 1, 0856453428), (13, ‘sinta’, ‘jogja’, 1, 0813347565675), (14, ‘luki’, ‘ponorogo’, 2, 08257658798);
mysql> insert into fakultas values (1, ‘SAINTEK’), (2, ‘PSIKOLOGI’);
3. Menampilkan Data Berupa nim dan nama
Untuk menampilkan data dari tabel mahasiswa berpa nim dan nama kita akan menggunakan perintah SELECT.
mysql> select nim_mah, nama_mah from mahasiswa;
4. Menampilkan Data Dari 2 Tabel
Menampilkan data dari 2 tabel yang di ambil berdasarkan nim, nama mahasiswa, nama fakultas. Kita akan menggunakan perintah SELECT yang di berikan perintah WHERE.
mysql> select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
5. Menghapus Data Mahasiswaa yang Diingikan
Disini kita akan menghapus data mahasiswa yang memiliki nim = 13
mysql> delete from mahasiswa where nim_mah=13;
6. Merubah Data
Untuk merubah data kita menggunakan query UPDATE seperti teori di atas, kita rubah data di kolom no_telp dan alamat_mah pada mahasiswa yang memiliki nim=12. Berikut query nya ;
mysql> update mahasiswa set alamat_mah = ‘solo’ where nim_mah=12;
mysql> update mahasiswa set no_telp = 0857688788 where nim_mah=12;
7. Menampilkan Data Berdasarkan Nomor Urut
Mengurutkan data dari besar ke kecil berdasarkan nim mahasiswa kemudian menampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.
mysql> select*from mahasiswa order by nim_mah desc;
mysql> select*from fakultas order by 2 asc;
8. Menampilkan Seluruh Data Dari 2 Tabel
Menampilkan seluruh data dari tabel mahasiswa dan fakultas menggunakan perintah SELECT.
mysql> select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
9. Menampilkan Data Mahasiswa Denagn Logika AND
Menampilkan seluruh dat mahasiswa yang berada di SAINTEK dan PSIKOLOGI
mysql> select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and nama_fak=’SAINTEK’;
mysql> select*from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and nama_fak=’PSIKOLOGI’;
10. Menampilkan Data Mahasiswa Denagn Logika !=
Menampilkan data mahasiswa yang tidak berada si fakultas saintek
11. Menghapus Data
Hapus Data fakultas SAINTEK. Untuk menghapus data yang berada di SAINTEK, kita harus menghapus terlebih dahulu data yang berhubungna dengan SAINTEK pada tabel mahasiswa.
mysql> delete from mahasiswa where id_fak=1;
mysql> delete from fakultas where nama_fak=’SAINTEK’;
C. Perbedaan, Kesamaan, Kelebihan dan Kekurangan Pada DBMS PostgreSQL dan MySQL
Umumnya pada setiap DBMS memiliki perbedaan pada Struktur Query, tetapi perbedaan itu tidaklah sepenuhnya berbeda. Kadang pada perintah tertentu memiliki kesamaan Struktur Query. Termasuk pada DBMS PostgreSQL dan pada MySQL kadang juga memiliki kesamaan. Pada paparan perintah dasar MySQL di atas terlihat bahwa MySQL dan PostgreSQL memiliki kesamaan pada Struktur Query nya. Baik itu pada perintah INSERT, SELECT, UPDATE, dan DELETE pada MySQL sama persis dengan perintah yang ada pada PostgreSQL.
D. Kesimpulan
Dalam basis data terdapat istilah hubungan antar tabel atau lebih di kenal references. Kita dapat memanipulasi setiap data yang kita masukkan, baik menggunakan perintah INSERT, SELECT, UPDATE, atau DELETE. Kita bisa menggunakan DBMS PostgreSQL ataupun MySQL untuk memanipulasi data tersebut. karena pada PostgreSQL dan MySQL memiliki kesamaan pada perintah tersebut.