Academia.eduAcademia.edu

MODUL KONSEP BASIS DATA 3

1. Dosen mampu memanipulasi data dengan menggunakan perintah SELECT dan klausa WHERE dengan beberapa aturan kondisi

M ODUL III DM L (DATA M ANIPULATION LANGUAGE) TUJUAN PRAKTIKUM 1. Dosen mampu memanipulasi dat a dengan menggunakan perint ah SELECT dan klausa WHERE dengan beberapa at uran kondisi DASAR TEORI & KEGIATAN PRAKTIKUM Perint ah select digunakan unt uk memilih dan menampilkan dat a dari suat u dat abase, baik dari sat u t abel at au lebih. Fungsi select dalam bent uk sederhana hanya mempunyai pasangan kat a from, yang berart i memilih t abel yang akan diselect . Bent uk umum nya sbb : select <nama kolom> From <nama tabel>; Cont oh : select * from dosen; Perint ah di at as digunakan unt uk memilih semua kolom dan seluruh record pada t abel pembeli. Pemilihan sepert i ini memungkinkan t erjadinya redudansi dat a (dat a berulang). Selain perint ah SELECT pada modul sebelumnya, beberapa perint ah SELECT lainnya adalah 1. M enggunakan Operator Aritmatika (+, -, / , * ) Kit a bisa melakukan modifikasi dat a yang dit ampilkan dengan melakukan kalkulasi. Ekspresi arit mat ika bisa t erdiri dari nama kolom, nilai numeric, dan operat or arit mat ik yang digunakan. Cont oh: select nidn, gajipokok, gajipokok+100 from dosen; Perint ah di at as akan menampilkan nidn, gajipokok dan perhit ungan menggunakan operat or arit mat ika unt uk memunculkan gakipokok semua dosen dengan kenaikan 100. Kolom gajipokok+100 bukanlah kolom baru dalam t abel pegaw ai, melainkan hanya unt uk dit ampilkan saja (just for display) dan t idak merubah dat a yang disimpan di field gajipokok. 2. Pemberian Nama Lain (Alias) a. Pada Kolom Pada w akt u menampilkan hasil dari sebuah query, normalnya menggunakan nama dari kolom yang diseleksi sebagai judul kolom (column heading). Biasanya nama kolom dibuat t idak begit u deskript if (misal: nama_dpn, jk) dan kadang kala susah unt uk dipamahi. Berkenaan dengan hal t ersebut , kit a bisa memberikan nama alias pada sebuah kolom. SELECT <nama_kolom> <nama_tabel>; AS <nama_kolom_alias> FROM pada nama_alias, jika mengandung spasi atau karakt er khusus (# at au $) at au case sensit ive maka harus menggunakan t anda pet ik tunggal/ ganda di aw al dan akhir nama alias (‘ ‘)/ (“ “ ). Penggunaan nama alias t idak merubah nama field secara permanen. Sebagai cont oh: select nama as nama_dosen from dosen; select nama as ‘nama dosen’ from dosen; Perint ah di at as akan menampilkan dat a nama dosen dari t abel dosen. Kolom yang diseleksi akan t idak lagi memiliki judul kolom nama, melainkan nama_dosen karena diberikan perint ah “ alias” . Tet api nama alias yait u “ nama_dosen” t idak akan merubah nama field pada t abel dosen. b. Pada Tabel Pemberian nama alias pada t abel dilakukan dengan perint ah berikut : SELECT <nama_tabel_alias.nama_kolom> <nama_tabel_alias>; FROM <nama_tabel> AS Cont oh: select dsn.nama from dosen as dsn; Pemberian nama alias pada t abel, biasanya digunakan unt uk mempersingkat query jika kit a melakukan query pada beberapa t abel yang saling t erkait . 3. M enampilkan Data dari Beberapa Tabel Perint ah SELECT juga bisa menampilkan dat a dari beberapa t abel sekaligus. Perint ahnya: SELECT <nama_kolom> <nama_tabel_n>; FROM <nama_tabel_1>, <nama_tabel_2>, at au SELECT <nama_tabel1.nama_kolom>,<nama_tabel2.nama_kolom> FROM <nama_tabel_1>, <nama_tabel_2>, <nama_tabel_n>; Cont oh: select nidn, kode_mk from dosen, mengajar; Ket ika dicermat i hasilnya, maka informasi yang dit ampilkan bukan informasi yang benar. M aka unt uk mengambil dat a lebih dari sebuah t abel perlu disert ai dengan kondisi relasi t abel t ersebut dengan memperhat ikan kolom yang bersesuaian/ sama. Jika kedua t abel memiliki nama kolom yang sama, maka sebelum nama kolom berikan nama t abel diikut i dengan sebuah t it ik(.) select dosen.nidn, kode_mk from dosen, mengajar; Supaya informasi akurat maka t ambahkan kondisi menggunakan perint ah WHERE dimana kondisi yang dit uliskan adalah relasi ant ara kedua t abel dengan cara menggunakan kolom yang sama yait u nidn. select dosen.nidn, kode_mk dosen.nidn=mengajar.nidn; from dosen, mengajar where select a.nidn, b.kode_mk from dosen a, mengajar b where a.nidn=b.nidn; 4. Klausa ORDER BY Klausa ORDER BY digunakan unt uk mengurut kan dat a. SELECT <nama_kolom> FROM <nama_tabel> ORDER BY <nama_kolom> ASC; SELECT <nama_kolom> FROM <nama_tabel> ORDER BY <nama_kolom> DESC; Cont oh: select nama, alamat from dosen order by alamat asc; Perint ah di at as akan menampilkan dat a nama dan alamat dari dosen, dimana dat a akan diurut kan secara ascending berdasarkan alamat . 5. Klausa pada KONDISI a. NULL dan NOT NULL Filt ering dengan menggunakan kat a kunci IS NULL at au IS NOT NULL akan menampilkan dat a null maupun yang not null. SELECT <nama_kolom> FROM <nama_tabel> WHERE <nama_kolom> IS NULL/IS NOT NULL; select alamat from dosen where alamat is null; select alamat from dosen where alamat is not null; Catatan: NULL berbeda dengan string kosong(‘ ‘) b. Operator IN dan NOT IN IN dan NOT IN digunakan unt uk filt ering t erhadap dat a/ record yang dipilih. SELECT <nama_kolom> IN/NOT IN (nilai); FROM <nama_tabel> WHERE <nama_kolom> SELECT <nama_kolom> FROM <nama_tabel> WHERE <nama_kolom> IN/NOT IN (SELECT nama_kolom FROM nama_tabel WHERE nama_kolom);  subquery Lakukan perint ah berikut : select nama, alamat (‘Surakarta’,’Medan’); from dosen where alamat in Cermat i hasil dari perint ah di baw ah ini: select nidn, nama, alamat from dosen where nidn not in (select nidn from mengajar); select nama, alamat from dosen where alamat not in (select alamat from dosen, mengajar where dosen.nidn=mengajar.nidn); c. Operator BETW EEN … AND … dan NOT BETW EEN … AND … BETW EEN … AND … digunakan unt uk memilih dat a diant ara dua nilai, kebalikannya adalah NOT BETW EEN … AND… Catatan: batas atas dan batas bawah akan ikut dieksekusi Nilai bisa berupa angka, t eks, t anggal. Perint ahnya: SELECT <nama_kolom> FROM <nama_tabel> WHERE <nama_kolom> BETWEEN/NOT BETWEEN <nilai_rendah> AND <nilai_tinggi>; Sebagai cont oh: select nidn, gajipokok from dosen where gajipokok between 100000 and 1500000; Query di at as akan menghasilkan dat a nidn dan gaji pokok dosen yang memiliki nom inal 1000000 sampai 1500000. Bat as at as dan bat as baw ah akan ikut diseleksi. d. Fungsi AGGREGATE (COUNT, SUM , AVG, M IN dan M AX) Fungsi Aggregat e adalah fungsi yang digunakan unt uk melakukan perhit ungan st at ist ical dalam t abel. 1) COUNT Digunakan unt uk menghit ung/ mencacah jumlah baris/ record suat u kolom pada suat u t abel. SELECT COUNT(nama_kolom) FROM nama_tabel; Cont oh: select count(nama) from dosen; Hasil query di at as akan menampilkan jumlah dosen. 2) SUM Digunakan unt uk menghit ung jumlah nilai suat u kolom pada suat u t abel. SELECT SUM(nama_kolom) FROM nama_tabel; Cont oh: select sum(gajipokok) from dosen; Query diat as adalah t ampilan t ot al gaji pokok dari semua dosen; 3) AVG Digunakan unt uk menghit ung rat a-rat a nilai suat u kolom pada suat u t abel. SELECT AVG(nama_kolom) FROM nama_tabel; Cont oh: select avg(gajipokok) from dosen; Query di at as akan menampilkan dat a rat a-rat a gaji pokok yang dit erima dosen. 4) M IN Digunakan unt uk menampilkan nilai t erkecil suat u kolom pada suat u t abel. SELECT MIN(nama_kolom) FROM nama_tabel; Cont oh: select dosen; min(gajipokok) as ‘Gaji Pokok Terendah’ from Query di at as akan menampilkan gaji pokok t erendah yang dit erima oleh dosen. 5) M AX Digunakan unt uk menampilkan nilai t erbesar suat u kolom pada suat u t abel. SELECT MAX(nama_kolom) FROM nama_tabel; Cont oh: select dosen; max(gajipokok) as ‘Gaji Pokok Tertinggi’ from Query di at as akan menampilkan gaji pokok t ert inggi yang dit erima oleh dosen. 6. Klausa GROUP BY Klausa GROUP BY digunakan unt uk mengelompokkan dat a. Perint ah: SELECT <nama_kolom> <nama_kolom>; FROM <nama_tabel> GROUP BY Perhat ikan cont oh berikut : Contoh 1: Contoh 2: Kenapa dat a yang muncul hanya Rossy? Apakah benar Rossy mengajar 6 mat a kuliah? M engapa ini bisa t erjadi? Dengan perint ah di at as, semua dat a dosen muncul dan masing-masing dosen diket ahui banyaknya mat a kuliah yang diajar. M engapa demikian? Apa fungsi dari klausa group by? Apa perbedaan query contoh 1 dengan query contoh 2? 7. HAVING HAVING merupakan klausa pelengkap fungsi aggregat e dan digunakan bersama dengan GROUP BY. Fungsinya unt uk menerangkan kondisi aggregat e t ert ent u. Kelompok yang memenuhi kondisi HAVING saja yang akan dit ampilkan. Perint ahnya: SELECT nama_kolom, COUNT(nama_kolom) FROM nama_tabel GROUP BY nama_kolom HAVING COUNT(nama_kolom) kondisi nilai; Pada perint ah di at as, COUNT bisa digant i dengan fungsi aggregat e yang lain (SUM , AVG, M IN dan M AX). Perhat ikan cont oh berikut ini, diket ahui sebuah basis dat a memiliki 3 t abel, yait u t abel dosen, mat akuliah dan mengajar sebagai berikut : Kemudian diberikan perint ah unt uk menampilkan nidn, nama dan t ot al cacah mat a kuliah yang diajar oleh dosen unt uk t ot al cacah m at a kuliah 2 ke at as. Dalam query di at as, having digunakan bersamaan dengan group by unt uk menampilkan dat a nidn, nama dan t ot al cacah mat a kulian yang diajar oleh dosen, dimana t ot al cacah yang diajar t ersebut 2 ke at as. Kalusa WHERE t idak cocok digunakan unt uk menggant i HAVING, sebagai cont oh: