Jadi lebih semangat
Pada laporan ke tiga ini (pertemuan ke 4) kita akan
membahas tentang Perintah dasar SQL.
Subbab-subbab nya akan membahas tentang bagaimana
kita dapat menggabungkan 2 tabel dan membuat foreign key dan lain sebagainya.
Simak laporannya berikut
LAPORAN PRAKTIKUM DESAIN BASIS DATA (PERINTAH DASAR
SQL)
Bahasan
-
Perintah-perintah dasar dalam standart
query SQL
-
Query untuk menampilkan, menambah,
menghapus, dan memanipulasi data dalam table
Tujuan
-
Memahami perintah dasar dalam standart
query sql
-
Memahami cara menambah, menghapus, dan
memanipulasi data dalam table
A. LANDASAN
TEORI
DML atau Data Manipulation Language adalah kumpulan perintah query yang
digunakan untuk memanipulasi data dalam tabel, seperti menambah, merubah
atau menghapus data. Perintah ini tidak terkait dengan struktur dan
metadata dari objek-objek yang berada pada tabel-tabel database. (http://irpantips4u.blogspot.com/2012/10/pengertian-dml-data-manipulation.html)
pada DML terdapat perintah-perintah untuk memanipulasi data, diantaranya:
1. INSERT
Perintah INSERT merupakan salah satu perintah untuk memanipulasi data
dalam suatu table. Dalam pembahasan kali ini, akan dibahas tentang cara
menyisipkan data ke dalam suatu table yang sudah di buat sebelumnya.
Bentuk umum perintah INSERT adalah sebagai berikut ini :
2. UPDATE
Berikut ini adalah beberapa contoh pengaplikasian dari perintah UPDATE pada MySql. Bentuk umumnya adalah sebagai berikut :
Contoh merubah sebuah kolom untuk baris tertentu adalah sebagai berikut :
3. DELETE
Apabila suatu data pada sebuah table tidak digunakan lagi, kita dapat menghapus data tersebut dengan menggunakan pernyataan DELETE. Bentuk umum perintah DELETE adalah sebagai berikut:
(http://catatanku.web.id/catatan/perintah-delete-pada-mysql/)
4. FOREIGN KEY DAN PRIMARY KEY
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.
Perhatikan baris kode pada table mhs,
Yang ingin saya fokus bicarakan pada artikel ini adalah bagaimana bila data matkul misalnya data dengan id_matkul=’IF123’ dihapus? Apakah data mahasiswa yang mengambil id_matkul akan dihapus juga atau akan dibiarkan apa adanya?
Lalu bagaimana solusinya?
Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi]pada table yang mereferensikan foreign key.
(http://terusbelajar.wordpress.com/2009/11/13/foreign-key-di-mysql/ )
5. SELECT
Biasanya pada saat ingin menampilkan data, 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:
(http://www.duniailkom.com/tutorial-mysql-menampilkan-data-dari-tabel-mysql-select/)
Bentuk umum perintah INSERT adalah sebagai berikut ini :
INSERT INTO nama_table VALUES ('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...), ('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...), ('isi-kolom-1','isi-kolom-2','isi-kolom-3','isi-kolom-4',dst...);
(http://catatanku.web.id/catatan/perintah-insert-pada-mysql/)
2. UPDATE
Berikut ini adalah beberapa contoh pengaplikasian dari perintah UPDATE pada MySql. Bentuk umumnya adalah sebagai berikut :
UPDATE nama_table SET kolom_1=nilai_baru_1, kolom_2=nilai_baru_2, ..................... WHERE kondisi;Pemakaian WHERE bersifat opsional/pilihan. Jika di sertakan, artinya :
- jika disertakan, maka yang diubah hanya baris tertentu saja
- jika tidak disertakan, maka semua baris akan berubah
Contoh merubah sebuah kolom untuk baris tertentu adalah sebagai berikut :
UPDATE mahasiswa SET nama='gunawan wijaya' WHERE nim=123456;
(http://catatanku.web.id/catatan/perintah-update-pada-mysql/)
3. DELETE
Apabila suatu data pada sebuah table tidak digunakan lagi, kita dapat menghapus data tersebut dengan menggunakan pernyataan DELETE. Bentuk umum perintah DELETE adalah sebagai berikut:
DELETE FROM nama_table [WHERE kondisi];
Pemakaian WHERE bersifat opsional, artinya :
- jika disertakan, maka hanya baris tertentu saja yang terhapus.
- jika tidak disertakan, semua baris pada tabel bersangkutan akan dihapus.
(http://catatanku.web.id/catatan/perintah-delete-pada-mysql/)
4. FOREIGN KEY DAN PRIMARY KEY
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.
Perhatikan baris kode pada table mhs,
FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul)
Itulah cara mendefinikan foreign key pada mysql. Id_matkul
didefinisikan sebagai foreign key yang mereferensikan(mengacu) pada
table matkul pada kolom id_matkul.Yang ingin saya fokus bicarakan pada artikel ini adalah bagaimana bila data matkul misalnya data dengan id_matkul=’IF123’ dihapus? Apakah data mahasiswa yang mengambil id_matkul akan dihapus juga atau akan dibiarkan apa adanya?
DELETE FROM matkul WHERE id_matkul=’IF123’
Maka pasti terjadi error“Cannot delete or update a parent row: a foreign key constaint fails (‘test’.’mhs’,CONSTRAINT ‘mhs_ibfk_3’ FOREIGN KEY (‘id_matkul’) REFERENCES ‘matkul’ (‘id_matkul))Maksudnya adalah tidak dapat menghapus atau mengupdate kolom pada table induk karena bereferensi pada table mhs.
Lalu bagaimana solusinya?
Pada MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi]pada table yang mereferensikan foreign key.
(http://terusbelajar.wordpress.com/2009/11/13/foreign-key-di-mysql/ )
5. SELECT
Biasanya pada saat ingin menampilkan data, 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;
5.1 Menampilkan semua isi tabel
Mungkin inilah query SELECT yang paling mudah diingat dan paling populer, yaitu cara menampilkan seluruh data dari sebuah tabel.
Format dasar query select untuk menampilkan seluruh isi tabel adalah:
Tanda bintang (*) adalah wildcard untuk menampilkan seluruh kolom
5.2 Menampilkan kolom tertentu dari sebuah tabel
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:
nama_kolom1 dan nama_kolom2 adalah nama kolom yang ingin kita tampilkan.
Mungkin inilah query SELECT yang paling mudah diingat dan paling populer, yaitu cara menampilkan seluruh data dari sebuah tabel.
Format dasar query select untuk menampilkan seluruh isi tabel adalah:
SELECT * FROM nama_tabel |
5.2 Menampilkan kolom tertentu dari sebuah tabel
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 nama_kolom1, nama_kolom2,... FROM nama_tabel |
5.3 Memfilter/Menyeleksi data dari tabel MySQL (SELECT…WHERE…)
Jika kita menginginkan hanya data yang memenuhi kriteria tertentu saja yang akan ditampilkan, maka hal ini dapat dilakukan dengan menambahkan perintah WHERE pada query SELECT.
Kondisi WHERE pada perintah SELECT digunakan untuk menyeleksi data yang diinginkan, sedangkan data yang tidak memenuhi kriteria, tidak akan ditampilkan.
Format dasar query SELECT…WHERE adalah:
5.4 Mengurutkan hasil tampilan data MySQL (SELECT…ORDER BY)
MySQL menyediakan perintah opsional ORDER BY untuk mengurutkan data yang di hasilkan. Query dasar untuk SELECT…ORDER BY adalah:
nama_kolom_urut adalah kolom yang akan kita ututkan.
Pengurutan bisa dari paling kecil ke besar, ataupun besar ke kecil.
Pilihan ini dapat diatur dengan penambahan instruksi ASC (singkatan dari ascending) 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.
Jika kita menginginkan hanya data yang memenuhi kriteria tertentu saja yang akan ditampilkan, maka hal ini dapat dilakukan dengan menambahkan perintah WHERE pada query SELECT.
Kondisi WHERE pada perintah SELECT digunakan untuk menyeleksi data yang diinginkan, sedangkan data yang tidak memenuhi kriteria, tidak akan ditampilkan.
Format dasar query SELECT…WHERE adalah:
SELECT nama_kolom1, nama_kolom2,... FROM nama_tabel WHERE kondisi
5.4 Mengurutkan hasil tampilan data MySQL (SELECT…ORDER BY)
MySQL menyediakan perintah opsional ORDER BY untuk mengurutkan data yang di hasilkan. Query dasar untuk SELECT…ORDER BY adalah:
SELECT nama_kolom1,... FROM nama_tabel WHERE kondisi ORDER BY nama_kolom_urut |
B. HASIL
PRAKTIKUM
Dalam perintah dasar query pada MySQL, kita akan
mencobanya langsung berdasarkan syntax berikut.
Mahasiswa
|
Nim_mah
|
Nama_mah
|
Alamat_mah
|
Id_fak
|
Primary key=nim_mah
|
Foreign key=id_fak
|
Fakultas
|
Id_fak
|
Nama_fak
|
Primary key=id_fak
|
Nah, dengan kondisi table diatas, kita harus
mengurutkan langkah (urutan) pembuatan kedua table tersebut. Pertama-tama kita
harus membuat table fakultas, karena data yang ada di table fakultas dibutuhkan
di table mahasiswa. Jadi, apabila kita membuat table mahasiswa terlebih dahulu,
maka akan terjadi eror, karna id_fak yang ada di table mahasiswa tidak punya
rujukan (yang merupakan foregin key) dalam table tersebut. Baiklah..
Jadi kita harus (wajib) bikin table yang tidak ada
foreign key nya yaitu table fakultas.
Query untuk pembuatan table
Create
table nama_tabel
(nama_kolom1
tipedata keterangan,
Nama_kolom2
tipedata keterangan
);
Berikut adalah syntax untuk melakukan query untuk
MySQL dalam pembuatan table fakultas
Create
table fakultas
(id_fak
integer not null primary key,
Nama_fak
varchar (10)
);
Lalu, tugas kita yang kedua yaitu membuat table
mahasiswa yang memberi rujukan pada table fakultas (pada kolom id_fak)
Pada postgresql kita dapat menamai id_fak pada table
mahasiswa dengan nama yang berbeda, akan tetapi kita tidak dapat memberikan
nama yang berbeda pada masing-masing table yang ada di database (yang mau
direferensikan)
Berikut adalah syntax untuk melakukan query
pembuatan table dengan menggunakan references pada table lain
Create
table mahasiswa (
Nim_mah
integer not null,
Nama_mah
varchar (20),
Alamat_mah
varchar (20),
Id_fak
integer,
Primary
key (nim_mah, id_fak),
Foreign
key (id_fak) references fakultas
);
Agar lebih jelas, simak query yang sudah saya lakukan
di MySQL pada xampp
Dan dibawah ini adalah struktur table yang udah
berhasil kita buat

Berikut adalah sintaks untuk melakukan query
penambahan kolom (mengulang ilmu minggu lalu hehe, Alhamdulillah ga lupa)
Alter
table nama_table add column nama_kolom tipedata (keterangan);
Sehingga jawabannya untuk menambahkan kolom pada
sebuah table adalah sebagai berikut :
Alter
table mahasiswa add column no_tlp varchar (20);
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
Untuk menjawab soal no.1 kita dapat melakukan query
insert. Pada hal ini, kita harus mendahulukan table fakultas, karena data yang
ada pada fakultas, dibutuhkan untuk table
Pada MySQL, sintaks untuk insert adalah sebagai
berikut :
Perintah bentuk
pertama
INSERT
INTO tabel (kolom1, kolom2,...)VALUES (data_kolom1,
data_kolom2,...);
Perintah bentuk
kedua
INSERT INTO tabel SET kolom1 = data_kolom1, Kolom 2 = data_kolom2,...;
Perintah bentuk
ketiga
INSERT INTO tabel VALUES (data_kolom1,
data_kolom2,...);
Jadi, yang harus
diperhatikan dalam inset tabel :
1.
Urutan
kolom
2.
Tipedata
(selain integer menggunakan petik)
Langsung dijawab saja ya
Insert
into fakultas
Values
(1, ‘SAINTEK’), (2, ’PSIKOLOGI’);
Insert
into mahasiswa
Values
(12, ‘edi’, ‘malang’, 1, ‘086453428’),
(13,
‘sinta’, ‘jogja’, 1, ‘08133475675’),
(14,
‘luki’, ‘ponorogo’, 2, ‘082576568798’);
Urusan selesai :D
Soal no.2 Tampilkan data mahasiswa berupa nim dan nama
Untuk menampilkan seluruh isi data yang ada pada table, kita
dapat menggunakan sintaks
Select * from nama_table;
Untuk menjawab soal no.2 kita hanya perlu menampilkan dua
kolom dari table mahasiswa yaitu kolom nim_mah sama kolom nama_mah.
Jadi kita menggunakan sintaks berikut
Select nim_mah, nama_mah from mahasiswa;
Nah, berikut hasil yang akan muncul (hasil dari query diatas)
Soal no.3 Tampilkan data mahasiswa berdasarkan nim salah satu
mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.
Untuk menjawab soal diatas, kita menggunakan query berikut :
Select nim_mah, nama_mah, alamat_mah, no_tlp from mahasiswa where
nim_mah=12;
Maka muncullah table berikut yang berisikan salah satu data
mahasiswa.
Nah, beranjak ke soal no.4
Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama
mahasiswa, nama fakultas.
Untuk menjawab soal 4, kita dapat melakukan query berikut
Select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where
mahasiswa.id_fak=fakultas.id_fak;
Berikut adalah hasil dari query diatas :
Semua data yang ada pada kolom nim nama akan dimunculkan,
setelah itu ada nama_fak yang diambil dari table fakultas.
Urusan selesai :D
Soal no.5 Hapus data
mahasiswa yang memiliki nim : 13
Untuk menjawab soal no.5, kita menggunakan sintaks
berikut
Delete
from nama_table where nama_kolom=ket;
Soal
no.6 Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim
12
Gunakan query update untuk mengganti data yang
pernah diisi pada table, berikut adalah sintaksnya :
Update
nama_tabel set nama_kolom1=’isi_kolom’, nama_kolom=’isi_kolom’ where
nama_kolom=ket;
Soal no.7 Tampilkan
data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa.
Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.
Untuk menjaawab no.7, kita perlu melakukan query
select dengan mengurutkan data yang ada di kolom.
Select
* from nama_tabel order by nama_kolom desc;
* yang merupakan symbol untuk menampilkan semua data
Desc = untuk mengurutkan data dari besar ke kecil
(descending)
Soal no. 8 Tampilkan
seluruh data mahasiswa beserta seluruh data fakultasnya.
Lakukan query berikut untuk menjawab soal no.8
Select
nama_kolom1, nama_kolom2, nama_kolom3, nama_kolom4 from nama_tabel1,
nama_tabel2 where nama_tabel1.nama_kolom=nama_tabel.nama_kolom;
Urusan selesai :D
Soal no.9 Tampilkan seluruh mahasiswa
yang berada di fakultas “SAINTEK”.
Untuk menjawab soal no.9, lakukan query berikut:
Select
* from nama_tabel where nama_kolom=isi_tabel;
Lebih jelasnya, lihat gambar berikut yang
menampilkan semua data mahasiswa yang id_faknya
sama dengan 1, maka yang tampil adalah edi dengan nim_mah 12 yang
merupakan mahasiswa dari SAINTEK
Soal no.10 Tampilkan seluruh mahasiswa
yang tidak berada di fakultas “SAINTEK”.
Kebalikan dari no.9, kita dapat
menambahkan tanda ‘!’ yang merupakan symbol tidak sebelum sama dengan (‘=’).
Berikut adalah sintaksnya
Select * from nama_tabel where
nama_kolom!=isi_tabel;
Soal terakhir adalah Hapus data
fakultas “SAINTEK”.
Karena salah satu kolom pada table fakultas
merupakan foreign key (references kolom) pada table mahasiswa, maka kita perlu
menghapus semua data yang berkaitan dengan saintek pada table mahasiswa
kemudian kita dapat menghapus saintek pada table fakultas
Berikut adalah query untuk melakukan penghapusan
Delete nama_kolom from nama_tabel where kondisi;
Beres urusan :D
EVALUASI PERBANDINGAN 2 DBMS MYSQL DAN POSTGRESQL
Perintah
|
MySQL
|
Postgresql
|
Keterangan
|
Relasi
antar table (references)
|
create
table mahasiswa (Nim_mah integer not null, Nama_mah varchar (20), Alamat_mah
varchar (20), Id_fak integer,
Primary
key (nim_mah, id_fak),
Foreign key (id_fak) references
fakultas
);
|
create
table mahasiswa (nim_mah integer not null, nama_mah varch
ar
(20), alamat_mah varchar (20), id_fak integer not null references fakultas, p
rimary
key (nim_mah, id_fak));
|
Terdapat
penambahan foreign key pada mysql jika ingin merelasikan dua table, dan
penamaan kolom pada mysql boleh tidak sama (pada kedua table)
|
Memasukkan
data
|
insert
into fakultas values (1,‘SAINTEK'), (2, ‘PSIKOLOGI’);
|
insert
into fakultas values (1, 'SAINTEK'), (2, ‘PSIKOLOGI’);
|
Masukkan
data untuk table yang akan menjadi foreign key pada table lain
|
Menampilkan
semua data
|
Select
* from mahasiswa;
|
Select
* from mahasiswa;
|
Sama
|
Menampilkan
beberapa kolom dari sebuah tabel
|
select
nim_mah, nama_mah from mahasiswa;
|
select
nim_mah, nama_mah from mahasiswa;
|
Sama
|
Menampilkan
beberapa data pada tabel dengan kata kunci tertentu
|
select
nim_mah, nama_mah, alamat_mah, no_tlp from mahasiswa where nim_mah=12;
|
select
nim_mah, nama_mah, alamat_mah, no_tlp from mahasiswa wher
e
nim_mah=12;
|
Sama
|
Menampilkan
data dari 2 tabel
|
select
nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where
mahasiswa.id_fak=fakultas.id_fak;
|
select
nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where
mahasiswa.id_fak=fakultas.id_fak;
|
Sama
|
Mengganti
data yang sudah ada
|
update
mahasiswa set alamat_mah='solo', no_tlp='0857688788' wher
e
nim_mah=12;
|
update
mahasiswa set alamat_mah='solo', no_tlp='0857688788' wher
e
nim_mah=12;
|
Sama
|
Mengurutkan
data
|
select
* from mahasiswa order by nim_mah desc;
|
select
* from mahasiswa order by nim_mah desc;
|
Sama
|
Menghapus
data dengan kata kunci tertentu
|
delete
from fakultas where nama_fak='saintek';
|
delete
from fakultas where nama_fak='saintek';
|
Jika
ada relasi dalam pada table, maka table yang tidak menjadi reference kpd
sebuah table, maka harus dihapus terlebih dahulu
atau dapat menambahkan ON DELETE/ON UPDATE [opsi] |
KESIMPULAN
Dalam memanipulasi data di sebuah tabel, yang harus diperhatikan adalah tipedata, dan relasi sebuah tabel. karena kalau tidak hati-hati akan sering terjadi error.
untuk perbandingan antara 2 DBMS MySQL dan postgreSQL tidak lah banyak perbandingan, jadi sangat mudah untuk mengoperasikan sebuah database.
Kritik dan saran : untuk perintah select sebenarnya masih banyak modifikasinya, mungkin bisa ditambahkan, seperti select limit dan lain-lain
Manfaat : Bab yang kita bahas kali ini sangatlah bermanfaat dalam pembangunan suatu database
DAFTAR PUSTAKA
http://irpantips4u.blogspot.com/2012/10/pengertian-dml-data-manipulation.html
http://catatanku.web.id/catatan/perintah-insert-pada-mysql/
http://catatanku.web.id/catatan/perintah-delete-pada-mysql/
http://terusbelajar.wordpress.com/2009/11/13/foreign-key-di-mysql/
http://www.duniailkom.com/tutorial-mysql-menampilkan-data-dari-tabel-mysql-select/
Mantap....
BalasHapusMantap kok dapet 80 mas :( hiks kurangnya apa?
BalasHapus