Kamis, 06 November 2014

Query dalam Query

SUB QUERY dan INDEKS

Blogger.. 

Kembali lagi dengan laporan-laporan praktikum yang tiada hari tiada akhir..Kapan bisa bilang “ I’m feel FREE “ kaya si syahrimin, *eh syahrini maksudnye. Langsung aja yuk kilas praktikum ke VII ini yaitu SUB QUERY dan INDEKS. Seperti biasa pahami dulu teori dari SUB QUERY dan INDEKS.


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’);


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