Praktikum 7
Sub Query dan
Index
Assalamu’alaykum
blogger yang dicintai Allah, semoga selalu dalam rahmat dan naungan-Nya yah :) seperti biasa ,
setiap weekend aku ngepost hasil praktikum a.k.a laporan biar bermanfaat buat
para blogger sekalian. Kali ini yang akan aku bahas adalah “SUB QUERY”.
Pasti pada bertanya-tanya toh apa itu sub query ? Langsung aja mari kita bahas
bareng yaaa, tetep semangat qaqa :D
A. Landasan Teori
1. SELECT INTO STATEMENT
Query select into statement merupakan query SQL
yang digunakan untuk mengopi informasi dari tabel ke tabel lain tanpa
membuattabel sebelemunya.
Berikut struktur query nya:
SELECT * INTO tabel_baru FROM tabel1;
2. SUBQUERY
SQL menyediakan mekanisme untuk permohonan
bersarang (nested query/subquery), adalah struktur SELECT, UPDATE, DELETE, INSERT
yang berada dalam query lain. Subquery dapat ditempatkan dalam klausa where,
having, from bersama dengan operator perbandingan seperti = untuk baris tunggal
dan untuk baris berganda menggunakan in, not in atau <> , < , any, >, >=, <=. Subquery digunakan untuk menguji
keanggotaan himpunan, membuat perbandingan himpunan, serta menentukan
kardinalitas himpunan. Bentuk penggunaannya sebagai berikut:
Select
nama_kolom from nama_tabel where nama_kolom operator (subquery);
3. INDEKS
Indeks berguna untuk mencari nilai data dalam
database. Seperti kita akan mengakses sebuah tabel, DBMS akan membaca seluruh
tabel hingga selesai. Ketika baris sangat banyak dan hasil dari query hanya
sedikit, maka hal ini tidak efisien. Dengan adanya indeks maka kita cukup
membuka indeks sehingga akan cepat dalam pencarian kata tersebut. Pemakaian indeks
seharusnya digunakan untuk kolom yang sering diakses. Struktur SQL nya:
Create index nama-index on nam_tabel (nama_kolom);
Ada lagi yang namanya “Unique index”, mirip dengan
indeks tapi fungsinya mencegah duplikasi data pada sebuah tabel. Ini nih
struktur SQL nya untuk membuat unique index:
Create unique index nama_index on nama_tabel
(nama_kolom);
Dan untuk menghapusnya cukup dengan mengetikkan :
Drop index nama_index;
4. KOLOM UNIK
Unik
ini dippakai untuk mencegah redudansi (duplikasi data) dalam sebuah kolom. Unique
ini sering digunakan dalam pembuatan bukan primary key namun membutuhkan cek
duplikasi agar tidak ada yang sama, karena primary key sudah pasti
mempunyaisifat unik. Berikut query nya:
Create
table nama_table (nama_kolom tipe_data unique);
Atau
ketika sudah ada tabel , tinggal
menambahkan dengan:
Alter
table nama_tabel ADD UNIQUE (nama_kolom)
Dan untuk
menghapusnya:
Alter
table nama_table drop constraint nama_constrain;
5. CHECK
Check
berfungsi untuk membatasi nilai masukan dalam sebuah kolom, misalnya kita ingin
kolom gender hanya terdiri dari satu karakter dan punya dua pilihan saja, maka
kita bisa menggunakan check.
6. TRIM
Biasanya
trim digunakan untuk membersihkan spasi-spasi yang tidak diperlukan. Ada tiga
jenis dan fungsi yang berbeda dari trim ini,
RTRIM:
digunakan untuk membersihkan spasi kosong yang ada di bagian kiri (Left) String
LTRIM:
digunakan untuk membersihkan spasi kosong yang ada di bagiaan kanan (Right)
string
TRIM:
digunakan untuk membersihkan spasi kosong yang ada di bagian kiri, kanan,
maupun tengah string.
Berikut
adalah struktur query nya:
Select
trim(nama_kolom) from nama_tabel;
Trim
memiliki tiga opsi yang digunakan untuk memnentukan karakter apa yang akan
dihapus dari suatu string, jadi tidak hanya spasi kosong saja yang bisa
dihapus. Opsinya sebagai berikut:
LEADING:
untuk menghilangkan karakter terpilih yang ada di sebelah kiri string.
TRAILING:untuk
menghilangkan karakter terpilih yang ada di sebelah kanan String.
BOTH
: untuk menghilangkan karakter terpilih yang ada dikeduanya (leading maupun
trailing).
Berikut
struktur query nya:
Select
trim(leading ‘karakter, misal: -‘ from nama_kolom) from nama_tabel;
B. Hasil Praktikum
1.
Tampilkan nama fakultas
dan jumlah mahasiswa yang mampunyai ketentuan nama
fakultas yang dimunculkan
dengan jumlah mahasiswanya terkecil!
Pada postgresql
dan mysql , mempunyai query yang sama , yaitu:
Select fakultas.nama_fak,
count(nama_mah) from mahasiswa, fakultas where
mahasiswa.id_fak=fakultas.id_fak
group by fakultas.nama_fak having count
(nama_mah) <=3;
2.
Tampilkan nama mahasiswa, nama fakultas,
alamat dengan syarat nama fakultas sama dengan edi dan alamatnya tidak sama
dengan luki! Query nya yaitu :
select nama_mah, nama_fak,
alamat_mah from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and
nama_fak in (select nama_fak from mahasiswa , fakultas where
mahasiswa.id_fak=fakultas.id_fak and nama_mah='edi' and alamat_mah <>
(select alamat_mah from mahasiswa where nama_mah='luki'));
3.
Buatlah index di tabel mahasiswa(alamat).
Kemudian buat lagi index yang bersifat unik pada tabel fakultas(fak_nama)
kemudian amati perbedaannya ketika memasukkan data yang sama!
Struktur query nya adalah:
4.
Buat kolom nama di mahasiswa menjadi unik
dan inputkan 2 data yang sama. Kemudian amati perbedaannya !
5.
Pindahkan data dari tabel mahasiswa,
fakultas ambil kolom nim, nama mahasiswa, alamat,nama fakultas ke tabel baru
yang dinamai „tabel identitas‟.
Query pada postgre berbeda dengan mysql.
Pada postgres yaitu:
Sedangkan pada
mysql yaitu:
6.
Buatlah contoh penggunaan check pada sub
bab pembahasan CHECK. Kemudian masukkan beberapa data baik yang sesuai dengan
criteria check maupun yang bukan dan amati perbedaannya. Pada postgre perintah
check berpengaruh, tapi tidak pada mysql. Terbukti pada saat menginputkan data
yang tidak sesuai dengan batasan, pada mysql tetap dimasukkan dan ditampilkan. Seperti
dibawah ini:
7.
Inputkan data di tabel mahasiswa dimana
pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di akhiri
dengan tanda “+” seperti berikut : “ andi cahyono++++”. kemudian munculkan
seluruh data dan hilangkan spasi didepan!
8. [Munculkan
data mahasiswa dengan hilangkan karakter “+” di akhir data dan karakter “a” di
awal kata pada kolom nama!
C.
Evaluasi Perbandingan PostgreSQL dan MySQL
Dalam praktikum kali ini, tredapat beberapa
query yang berbeda, seperti pada penggunaan select into, yaitu memindahkan data
paa tabel ke tabel lain. Pada postgresql hanya tinggal mengetikkan:
select nama_kolom1,nama_kolom2 into
tabel_baru from tabel_lama;
Namun pada mysql kita harus membuat tabel
nya dulu, query nya:
Create table tabel_baru select
nama_kolom1,nama_kolom2 from tabel_lama;
Kemudian pada perintah CHECK, tidak
berpengaruh pada mysql. Dan nomor 7 & 8 pada mysql juga tidak terjadi
perubahan pada kolom yang ingin di TRIM.
D.
Kesimpulan
Subquery adalah query dalam query,
fungsinya yaitu untuk mengopi data dari tabel sau ke yang lai, mengambil data
dari tabel satu kemudian di update ke tabel yang baru, dan menghapus bari dari
satu tabel berdasarkan baris tabel lain.
Indeks digunakan untuk mencari data dalam
database.
Kolom unik digunakan untuk menjaga
redudansi atau duplikasi data pada kolom di dalam database.
Check, fungsinya untuk membatasi nilai
input.
Trim, berfungsi sebagai pembersih spasi
kosong atau karakter yang tidak diperlukan.
E.
Kritik dan Saran
Pada praktikum kali ini, dibutuhkan
pemahaman lebih lanjut terhadp fungsi-fungsi serta kegunaan subquery, juga
dibutuhkan latihan yang lebih mendalam lagi agar semakin faham apa yang akan
ditampilkan dengan menggunakan subquery ini.Dibutuhkan juga logika untuk
menganalisis persoalan yang dihadapi.
Untuk para blogger, semoga bisa paham
dengan sedikit materi yang aku sajikan. Apabila terdapat kesalahan pada
praktikumku, ngga usah sungkan, tinggal
klik kolom komentar di bawah ini, dan kirim ke aku huhu ^^V
See you next time, Wassalamu’alaykum ..
F.
Daftar Pustaka
Musthafa, Aziz. 2014. Modul
Praktikum Desain Basis Data.
Fakultas Sains Dan Teknologi UIN Malang.
Solichin,
Achmad. 2010. MySQL dari Pemula Hingga
Mahir diakses melalui http://achmatim.net/download/21/






