SUB QUERY dan INDEKS
Blogger..
SUBQUERY
Subquery yang biasa disebut
subselect atau nested select/query adalah query di dalam query. Adanya subquery ini mampu menyederhanakan
persoalan-persoalan rumit yang berkaitan dengan query data. Subquery ini sangat
berguna ketika kita ingin menamplkan data dengan kondisi yang bergantung pada
data di dalam table itu sendiri.
Kegunaan – kegunaan subquery dalam memanipulasi data :
1.
Meng-copy data dari satu tabel ke tabel lain
2.
Mengambil data dari tabel lain untuk kemudian di
update ke tabel yang dituju
3.
Menghapus baris dari satu tabel berdasarkan
baris dari tabel lain
Penggunaan subquery bisa diterapin ke pernyataan SELECT,
UPDATE, DELETE, dan INSERT. Bentuk penggunaannya sebagai berikut :
Select nama_kolom
from nama_table where nama_kolom operator (subquery);
Ini contoh dari subquery :
Menampilkan data karyawan yang bekerja satu departemen
dengan Bili.
Select last_name, title from employee where dept_id =
(select dept_id from employee where upper (last_name) = ‘bili’);
MySQL
1. Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil
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
4. Buat kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama. Kemudian amati perbedaannya
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.
Perbedaan terletak pada sintaknya, meskipun tidak semua, hanya seberapa nomer saja yang berbeda sintak dan tampilannya. seperti no.7 dan 8 yang berbeda tampilannya dengan postgresql.
INDEKS
Indeks berguna dalam pencarian nilai atau data dalam
database. Dalam suatu kasus ketika mengakses sebuah tabel biasanya DBMS bakalan
baca seluruh tabel baris per baris sampai selesai. Ketika baris banyak dan hasil
dari querynya hanya sedikit, maka hal ini sangat tidak efisien. Sama ketika kita baca buku dan ingin mencari
kata atau istilah tertentu dalam buku, maka biasanya akan dicari dengan membuka
setiap halaman dari awal sampai akhir.
Struktur SQL :
Create index nama_index on nama_tabel (nama_kolom);
Contoh : Pada tabel pegawai kita kasih indeks pada kolom
gaji untuk query sbb :
Create index gaji_index on pegawai ( gaji_peg);
Itulah hasilnya..
Ada catetan nih, indeks seharusnya jangan dipakai pada tabel
atau kolom yang sangat jarang atau nggak pernah diakses. Ada lagi yang namanya “Unique
index” mirip dengan indeks tapi guannya
berbeda ini biasanya dipakai untuk mencegah duplikasi nilai yang terdapat dalam
tabel. Jadi dengan adanya unique index berarti pembaca nggak bisa meng-insert
niali yang sama dalam tabel.
Create unique index nama_index on nama_tabel (nama_kolom);
Kalo untuk menghapus index, seperti ini :
Drop index nama_index;
KOLOM UNIK
Unik ini dipakai untuk mencegah duplikasi nilai (kesamaan
data) dalam kolom. Selain itu juga dipakai dalam pembuatan bukan primary key
tapi butuh cek duplikasi agar tidak ada yang sama, karena dalam primary key kan
sudah bersifat unik.
Query buat struktur :
Create tabel nama_tabel (nama_kolom tipe_data unique);
CHECK
Check ini berfungsi untuk melakukan pembatasan nilai masukan
dalam kolom, semisal : kita pengin kalo kolom gender yang terdiri dari satu
karakter cuma punya dua pilihan karakter yaitu M (Male) dan F (Female), nah ini
bisa kita setting pake CHECK. Dengan adanya check dan kita pakai maka kolom Cuma
bisa diisi sama data yang memenuhi kriteria dalam check.
Create table pelanggan (nama varchar (35), kode_area
char(10) check (length trim (kode_area))=2), umur integer check ( umur>=0),
gender char (1) check (gender in (‘L’, ‘P’)),
ttl date check (ttl between ‘1998-01-01’ and current_date ), check
(upper(trim(nama)) != ‘nita’ or upper (trim(nama)) !=’jeki’ ) );
TRIM
Trim ini bisa dikatakan gunanya untuk membersihkan
spasi-spasi kosong yang nggak diperlukan. Sebenarnya nggak hanya TRIM aja, ada
fungsi-fungsi lain yang sama dengan TRIM.
1.
RTRIM : untuk membersihkan spasi kosong yang ada
dibagian kanan (right) String.
2.
LTRIM : untuk membersihkan spasi kosong yang ada
dibagian kiri (left) string.
3.
TRIM :
untuk membersihkan spasi kosong yang ada dibagian kanan, kiri, maupun tengah
string.
Select trim (nama_kolom) from nama _tabel;
Nah, dalam penggunaannya, fungsi trim punya tiga opsi.
1.
LEADING :
untuk menghilangkan karakter terpilih yang ada di sebelah kiri.
2.
TRAILING : untuk menghilangkan karakter terpilih
yang ada di sebelah kanan string.
3. BOTH :
untuk menghilangkan karakter terpilih yang ada di keduanya (leading maupun
trailing).
Select trim(leading ‘karakter, misal : -‘
from nama_kolom) from nama_tabel;
HASIL PRAKTIKUM
POSTGRESQL
1. Tampilkan nama fakultas dan jumlah
mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah
mahasiswanya terkecil
2. Tampilkan nama mahasiswa, nama
fakultas, alamat dengan syarat nama fakultas sama dengan BINTA dan alamatnya
tidak sama dengan BENI
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
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‟.
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.
7. Inputkan data di tabel mahasiswa
dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di
akhiri dengan tanda “+” seperti berikut : “ Febrianto+++”. kemudian
munculkan seluruh data dan hilangkan spasi didepan.
8. Munculkan data mahasiswa dengan
hilangkan karakter “+” di akhir data dan karakter “F” di awal kata pada kolom
nama
MySQL
1. Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil
2. Tampilkan nama mahasiswa, nama
fakultas, alamat dengan syarat nama fakultas sama dengan BINTA dan alamatnya
tidak sama dengan BENI
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
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‟.
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.
7. Inputkan data di tabel mahasiswa
dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di
akhiri dengan tanda “+” seperti berikut : “ Febrianto+++”. kemudian
munculkan seluruh data dan hilangkan spasi didepan.
8. Munculkan data mahasiswa dengan
hilangkan karakter “+” di akhir data dan karakter “F” di awal kata pada kolom
nama
EVALUASI PERBANDINGAN
POSTGRESQL dan MYSQL
Perbedaan terletak pada sintaknya, meskipun tidak semua, hanya seberapa nomer saja yang berbeda sintak dan tampilannya. seperti no.7 dan 8 yang berbeda tampilannya dengan postgresql.
KESIMPULAN
SARAN DAN KRITIK
Dalam praktikum kali ini, praktikan dalam memahami soal
tidak sepaham praktikum-praktikum sebelumnya. Sehingga dalam hal ini, sangat
diperlukan pemahaman lebih lanjut agar tidak terjadi kesalahpahaman dalam
mengartikan setiap soal-soal yang ada.
MANFAAT
Manfaat yang didapatkan dari setiap pembaca, khususnya yang
membuka dan membaca blog ini, bisa terbantu dalam menyelesaikan pemahamannya
mengenai teori desain basis data tentang sub query beserta indeks. Pembaca mampu
menyelesaikan operasi sub query dan jenis-jenisnya di dalam pengambilan data.
SUMBER-SUMBER
Mustofa, Aziz.2004.Modul Praktikum Desain Basis Data.Malang
0 komentar:
Posting Komentar