Blog Archives

SQL Lanjut

Pada resume ini akan dijelaskan tentang

  • Subquery dan penggunaannya
  • Subquery dengan banyak kolom
  • Pairwise Comparition Subquery
  • NonPairwise Comparition Subquery
  • Penggunaan query dalam klausa from
  • Ekspresi skalar
  • korelasi Subquery dan penggunaannya
  • Penggunaan query dalam klausa with.

Subquery adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL Statement yang lain. Subquery mengembalikan nilai ke main query. Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values).
Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-column.

Pembandingan kolom dalam subquery banyak kolom dapat berupa :

1. Pembandingan berpasangan (Pairwise Comparison SubQuery)
2. Pembandingan tidak berpasangan (NonPairwise Comparison SubQuery)

Penggunaan Query dalam Klausa From

Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer. Query semacam ini dikenal juga dengan istilah inline view, karena tidak membentuk object database.
Ekspresi Scalar Subquery
Ekspresi scalar subquery adalah subquery yang mengembalikan hanya satu nilai kolom dari satu baris. Scalar subquery pada standart SQL-92 hanya terbatas pada :
SELECT Statement (klausa FROM dan WHERE saja)
Daftar VALUE dari statement INSERT

Pada standart SQL-99, scalar subqueries dapat diguanakan dalam :

Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE.
Semua klausa dari SELECT Statement kecuali GROUP BY.

Korelasi SubQuery
Korelasi SubQuery digunakan untuk pemrosesan baris per baris. Tiap-tiap subquery dijalankan sekali untuk setiap baris dari outer query. Proses korelasi dimulai dengan mengambil baris dari outer query, kemudian inner query dijalankan dengan menggunakan nilai baris kandidat, kemudian nilai dari inner query digunakan untuk melakukan kualifikasi atau mendiskualifikasi baris kandidat.
Korelasi Subquery juga dapat digunakan untuk :

1. meng-update baris pada satu table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan Korelasi Update.
2. menghapus baris pada satu table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan Korelasi Delete.

Operator EXISTS dan NOT EXIST
Operator EXISTS dan NOT EXIST digunakan untuk menguji keberadaan dari baris dalam himpunan hasil dari subquery.
Jika ditemukan, maka pencarian tidak dilanjutkan dalam inner query dan kondisi ditandai TRUE.Jika tidak ditemukan, maka kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.

Penggunaan Klausa WITH

Dengan menggunakan klausa WITH, kita dapat menggunakan blok query yang sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query. Klausa WITH mendapatkan hasil dari blok query dan menyimpannya dalam tablespace temporer kepunyaan user. Klausa WITH dapat meningkatkan performansi.

Advertisements

Pemahaman tentang SQL

Sekilas

SQL adalah singkatan dari structured query language dan merupakan bahasa permintaan standar untuk meminta informasi dari database. Secara historis, SQL pertama kali diterapkan pada sistem R yaitu sebuah proyek pada laboratorium riset San Jose, IBM. Saat ini, SQl dapat ditemukan di berbagai platform dari mikrokomputer hingga mainframe. Kelebihan SQL adalah SQL dapat digunakan secara efisien secara independen ataupun ‘menempel’ pada bahasa lain seperti C, delphi, dll. SQL juga telah menjadi bagian dari beberapa DBMS seperti Oracle, Sybase, MySQl, dan Informix.

Elemen SQL

Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi, dan fungsi bawaan.

  • Pernyataan adalah perintah SQL yang meminta DBMS untuk melakukan suatu tindakan. SQL Memiliki sekitar 30 pernyataan.

Berikut ini adalah beberapa pernyataan dasar SQL:

    • SELECT, digunakan untuk memfilter atribut-atribut dari relasi (tabel) berdasarkan
    • kondisi yang mengikutinya.
    • FROM, digunakan untuk menunjukkan dari relasi mana data yang akan difilter.
    • WHERE, digunakan untuk membuat suatu kondisi.
    • GROUP BY, digunakan untuk mengelompokkan data berdasarkan atribut tertentu
    • HAVING, digunakan untuk mendukung klausa GROUP BY, yakni untuk
    • menentukan kondisi bagi klausa GROUP BY.
    • AVG, digunakan untuk menghitung rata-rata.
    • COUNT, digunakan untuk menghitung cacah data.
    • MAX, digunakan untuk memperoleh nilai terbesar
    • MIN, digunakan untuk memperoleh nilai terkecil.
    • SUM, digunakan untuk memperoleh jumlahan data.
  • Nama, digunakan sebagai identitas dari objek-objek pada DBMS.
  • Tipe data, setiap data pastilah mempunyai tipe data, berikut adalah macam-macam tipe data yang ada pada SQL
    • Char atau Varchar adalah tipe data untuk menampung data yang bertipe karakter atau alfabetic(a-z) contoh:-nama orang, nsms bsrsng dll.
    • Integer atau sering di singkat INT adalah tipe data yang digunakan untuk menampung data yang bertipe angka atau numeric(0-9) contoh:-NIS, No ktp, No SIM dll.
    • Date adalah tipe data yang digunakan untuk menampung data yang bertipe tanggal, bulan, dan tahun contoh:-tanggal lahir dll.
    • Numeric adalah tipe data yang dapat menampung data berbentuk bilangan real contoh:-6.00 atau 7.25.
    • Small INT adalah tipe data bilangan bulat yang range-nya lebih kecil dari integer.
    • Decimal adalah tipe data yang dapat menampung data pecahan.
    • Float adalah tipe data yang dpat menampung bilangan real (sama dengan numeric) contoh: 3,33.
    • Double adlah tipe data yang bertipe float namun dengan ketelitian yang lebih tinggi contoh: 3,333333
    • Blob adalah tipe data yang dapat menampung data berbentuk gambar atau suara bertipe binner.
    • Text adalah tipe data yang dapat menampung semua tipe data.
    • Boolean adalah tipe data yang digunakan untuk menampung data yang bertipe logika dan hanya mengenal true dan false.
    • Enum adalah tipe data yang digunakan untuk menampung data dengan 1 karakter saja.
    • Time adalah tipe data yang digunakan untk menampung data satuan waktu
  • Konstanta, menyatakan tetapan nilai.
  • Ekspresi, adalah segala sesuatu yang menghasilkan nilai.
  • Fungsi Agregasi, adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil.

Kelompok Pernyataan SQl

Ada 3 jenis kelompok pernyataan SQL yaitu DDl, DML, dan DCL

1. Data Definition Language (DDL)
Data Definition Language (DDL) merupakan sub bahasa SQL yang digunakan untuk membangun kerangka database. Ada tiga perintah yang termasuk dalam DDL, yaitu:
CREATE : Perintah ini digunakan untuk membuat, termasuk di antaranya membuat database baru, tabel baru, view baru, dan kolom.
ALTER : Perintah ini digunakan untuk mengubah struktur tabel yang telah dibuat. Pekerjaannya mencakup mengganti nama tabel, menambah kolom, mengubah kolom, menghapus kolom, maupun memberikan atribut pada kolom.
DROP : Perintah ini digunakan untuk menghapus database dan tabel.
2. Data Manipulation Language (DML)
Data Manipulation Language (DML) merupakan sub bahasa SQL yang digunakan untuk memanipulasi data dalam database yang telah terbuat. Perintah yang digunakan, di antaranya:
INSERT : Perintah ini digunakan untuk menyisipkan atau memasukkan data baru ke dalam tabel. Penggunaannya setelah database dan tabel selesai dibuat.
SELECT : Perintah ini digunakan untuk mengambil data atau menampilkan data dari satu tabel atau beberapa tabel dalam relasi. Data yang diambil dapat kita tampilkan dalam layar prompt MySQL secara langsung maupun ditampilkan pada tampilan aplikasi.
UPDATE : Perintah ini digunakan untuk memperbarui data lama menjadi data terkini. Jika Anda memiliki data yang salah atau kurang up to date dengan kondisi sekarang, maka dapat diubah isi datanya menggunakan perintah UPDATE.
DELETE : Perintah ini digunakan untuk menghapus data dari tabel. Biasanya data yang dihapus merupakan data yang sudah tidak diperlukan lagi. Pada saat menghapus data, perintah yang telah dijalankan tidak dapat digagalkan, sehingga data yang telah hilang tidak dapat dikembalikan lagi.
3. Data Control Language (DCL)
Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya. Perintah DCL, di antaranya:
GRAND : Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.
REVOKE : Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.