Sabtu, 21 Agustus 2010

STRUKTUR DASAR SQL

Sebuah ekspresi SQL dasar sebenarnya hanya terdiri dari tiga klausa yaitu; klausa where, from, dan where.
• Klausa select : digunakan untuk menetapkan daftar atribut yang diinginkan sebagai query.
• Klausa from : digunakan untuk menetapkan tabel ( atau gabungan tabel ) yang akan ditelusuri selama query data dilakukan.
• Klausa where : digunakan untuk predikat ( sebagai kriteria ) yang harus dipenuhi dalam memperoleh hasil query.

Sintaks ( cara penulisan ) pada ekspresi SQL dasar yang memanfaatkan tiga klausa tersebut adalah :
select A1 [ ,A2, …,An]
from T1 [ , T2, …,Tn]
[ where P ]
keterangan :
• A1, A2, …, An : daftar atribut
• T1, T2, …, Tn :daftar tabel
• P : predikat query
• [ ] : tanda opsional ( boleh digunakan boleh tidak )

STRUKTUR DASAR SQL

Sebuah ekspresi SQL dasar sebenarnya hanya terdiri dari tiga klausa yaitu; klausa where, from, dan where.
• Klausa select : digunakan untuk menetapkan daftar atribut yang diinginkan sebagai query.
• Klausa from : digunakan untuk menetapkan tabel ( atau gabungan tabel ) yang akan ditelusuri selama query data dilakukan.
• Klausa where : digunakan untuk predikat ( sebagai kriteria ) yang harus dipenuhi dalam memperoleh hasil query.

Sintaks ( cara penulisan ) pada ekspresi SQL dasar yang memanfaatkan tiga klausa tersebut adalah :
select A1 [ ,A2, …,An]
from T1 [ , T2, …,Tn]
[ where P ]
keterangan :
• A1, A2, …, An : daftar atribut
• T1, T2, …, Tn :daftar tabel
• P : predikat query
• [ ] : tanda opsional ( boleh digunakan boleh tidak )

A. KLAUSA SELECT
Sesuai dengan penjelasan diatas bahwa klausa select digunakan untuk menetapkan daftar atribut yang dinginkan sebagai hasil query, maka berikut ini akan dijelaskan lebih lanjut tentang klausa select dengan menyertakan contohnya.
Sebagai contoh pada tabel mahasiswa berikut;
TABEL 1 : MAHASISWA
NIM NAMA SEX ASAL TGL.LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L ACEH 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM


Contoh perintah select:
 Contoh 1
select NAMA
from MAHASISWA
Ekspresi diatas memerintahkan untuk menampilkan nama mahasiswa dari tabel mahasiswa yang telah ada. Sehingga tampilannya :
NAMA
BUDI
NINA
ABI
DONI
ANI
 Contoh 2
select NIM, NAMA, SEX
from MAHASISWA
Ekspresi diatas memberikan perintah untuk menampilkan NIM, nama mahasiswa, dan jenis kelaminnya dari tabel mahasiswa. Tampilannya :
NIM NAMA SEX
9961001 BUDI L
9961002 NINA P
9961003 ABI L
9961004 DONI L
9961005 ANI P

 Contoh 3
select distinct SEX
from MAHASISWA
Pada tabel mahasiswa tersebut jenis kelamin ditulis secara berulang-ulang, dengan perintah distinct ini maka penulisan kan ditulis sekali saja. Kasus lain ; misalkan dalam sebuah tabel mahasiswa terdapat nama mahasiswa yang sama maka bila menggunakan ekspresi distinct maka nama yang sama hanya ditampilkan satu saja. Keunikan diatas hanya untuk nilai atribut yang disebutkan dalam klausa select, bukan pada keseluruhan atribut yang ada di tabel yang disebutkan pada klausa form. Tampilan dari contoh di atas adalah :
SEX
L
P

 Contoh 4
select *
from MAHASISWA
Ekpresi diatas menampilkan seluruh atribut yang ada pada tabel yang disebutkan pada klausa form. Tampilannya :

NIM NAMA SEX ASAL TGL_LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L ACEH 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM

 Contoh 5
select NIM, NAMA as NAMA_MHS, SEX as JENIS_KELAMIN
from MAHASISWA

Fungsi dari ekspresi as pada select adalah untuk mengganti tampilan header ( kepala tampilan tabular ). Tampilannya menjadi :

NIM NAMA_MHS JENIS_KELAMIN
9961001 BUDI L
9961002 NINA P
9961003 ABI L
9961004 DONI L
9961005 ANI P

B. KLAUSA WHERE
Klausa ini digunakan untuk menetapkan predikat atau kriteria yang harus dipenuhi dalam menampilkan query. Klausa ini boleh tidak digunakan, yang artinya query dilakukan untuk semua record di dalam tabel yang disebutkan pada klausa from. Berikut ini akan diberikan contoh beserta penjelasan dari pemanfaatan klausa where. Contoh- contoh yang akan diberikan mengacu pada tabel kuliah berikut ini ;


TABEL 2 : KULIAH
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025
K001 PANCASILA 3 2 L026

 Contoh 1
select *
from KULIAH
where KODE_KUL = ‘ M001 ‘
Ekpresi diatas digunakan untuk menampilkan semua atribut untuk mata kuliah dengan kode mata kuliah M001. Nilai M001 diapit dengan tanda kutip tunggal. Penggunaan tanda kutip ini berlaku untuk nilai yang bertipe string ( sesuai dengan type dari atribut kode kuliah ). Sehingga tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022

 Contoh 2
Select *
From KULIAH
Where SEMESTER = 6 and SKS >= 3
Ekspresi diatas menerapkan penggunaan predikat dengan operator relasi, serta mengkombinasikannya dengan operator logika. Maksud dari ekspresi diatas adalah menampilkan semua atribut dari tabel kuliah yang termasuk dalam kriteria semester 6 dan memiliki jumlah sks lebih dari atau sama dengan 2. Nilai 6 dan 3 diatas tidak diapit dengan tanda kutip tunggal. Hal ini dikarenakan nilai tersebut bertype numeric ( sesuai dengan type atributnya ). Tampilannya :
KODE_KUL NAMA_KULIAH SEMESTER SKA KODE_DOSEN
M001 BASIS DATA 6 3 L022
P001 SIMULASI 6 2 L024

 Contoh 3
select *
from KULIAH
where SEMESTER between 3 and 5
Query dengan kriteria yang berbentuk range nilai tertentu dapat menggunakan tambahan klausa between. Pada contoh diatas akan menampilkan record-record kuliah yang diselenggarakan antara semester 3 s/d semster 5. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M002 OR-KOM 3 3 L023
F001 SISTEM BERKAS 4 3 L025
K001 PANCASILA 3 2 L026

 Contoh 4
Select *
From KULIAH
Where NAMA_KULIAH like ‘ S%’
Untuk atribut yang bertype string dapat melakukan pencarian dengan pola tertentu, dengan memanfaatkan karakter percent ‘ % ‘atau ‘ _ ‘, dengan menambahkan klausa like pada klausa where. Pada contoh diatas akan menampilkan record-record KULIAH yang nama mata kuliahnya diawali dengan huruf ‘ S ‘. Sehingga tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025

 Contoh 5
Select *
from KULIAH
where NAMA_KULIAH like ‘ _ A% ‘

Ekspresi diatas akan menampilkan record-record pada tabel kuliah tentang mata kuliah yang huruf / karakter dari nama mata kuliah nya adalah ‘ A ‘. Tamplannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
K001 PANCASILA 3 2 L026

C. KLAUSA FROM
Klausa ini digunakan untuk menetapkan tabel yang kita jadikan sebagai sumber pencarian data. Basis data terdiri dari beberapa tabel yang saling berhubungan, oleh karena itu sering kali dibutuhkan query dari satu tabel atau dari lebih dari satu tabel sekaligus. Atribut-atribut yang akan kita tampilkan dalam hasil query tidak hanya berasal dari satu tabel , namun bisa jadi dari sejumlah tabel, pada kasus seperti inilah klausa from akan sangat berperan penting. Pada contoh-contoh terdahulu hanya ditampilkan query dari satu tabel. Namun untuk ulasan kali ini akan diberikan contoh query yang menggambarkan hubungan antar tabel.

TABEL 3 : DOSEN
KODE_DOSEN NAMA_DOSEN STATUS ASAL
L022 ISMAYA TETAP MEDAN
L023 GUNAWAN TETAP LAMPUNG
L024 BUDIHARJO KONTRAK SRAGEN
L025 WARDATI TETAP SEMARANG
L026 HARTATI KONTRAK JAKARTA

Tabel dosen diatas akan direlasikan dengan tabel kuliah yang telah dibuat sebelumnya.
 Contoh 1
select *
from KULIAH, DOSEN
where KULIAH . KODE_DOSEN = DOSEN . KODE_DOSEN
Untuk melakukan query antara dua tabel atau lebih, tidak bisa dilakukan dengan sembarangan. Tabel_tabel yang akan dijadikan query haruslah memiliki hubungan. Pada contoh diatas hubungan pada tabel kuliah dengan tabel dosen diwakili oleh kode dosen, dimana atribut ini dimiliki oleh kedua tabel tersebut. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN NAMA_DOSEN STATUS ASAL
M001 BASIS DATA 6 3 L022 ISMAYA TETAP MEDAN
M002 OR_KOM 3 3 L023 GUNAWAN TETAP LAMPUNG
P001 SIMULASI 6 2 L024 BUDIHARJO KONTRAK SRAGEN
F001 SISTEM BERKAS 4 3 L025 WARDATI TETAP SEMARANG
K001 PANCASILA 3 2 L026 HARTATI KONTRAK JAKARTA

 Contoh 2
Select *
from KULIAH K, DOSEN D
where K . KODE_DOSEN = D . KODE_DOSEN
Ekspresi diatas merupakan contoh penggunaan alias, dimana tabel kuliah dialiaskan dengan K dan tabel dosen dialiaskan dengan D. tampilan yang akan diperoleh sama dengan tampilan diatas.
 Contoh 3
select K.KODE_KUL, K.NAMA_KULIAH, D.NAMA_DOSEN
from KULIAH K, DOSEN D
where K . KODE_DOSEN = D . KODE_DOSEN

Ekspresi di atas akan menampilkan record-record pada atribut kode kuliah, nama mata kuliah dari tabel kuliah dan record-record dari atribut nama dosen dari tabel dosen. Tampilannya adalah :
KODE_KUL NAMA_KULIAH NAMA_DOSEN
M001 BASIS DATA ISMAYA
M002 OR-KOM GUNAWAN
P001 SIMULASI BUDIHARJO
F001 SISTEM BERKAS WARDATI
K001 PANCASILA HARTATI

 Contoh 4
select K . KODE_KUL as KODE, K . NAMA_KULIAH as KULIAH, D . NAMA_DOSEN as DOSEN
from KULIAH K, DOSEN D
where K . KODE_DOSEN = D . KODE_DOSEN
and SEMESTER = 4

Ekspresi diatas akan menampilkan record-record pada atribut kode kuliah dengan nama baru yaitu kode, atribut nama kuliah dengan nama baru yaitu kuliah dan atribut nama dosen dengan nama baru yaitu dosen. Atribut- atribut tersebut diambil dari tabel kuliah dan tabel dosen, dengan syarat kuliah yang ditampilkan diajarkan pada semester 4. Tampilanya adalah :
KODE KULIAH DOSEN
F001 SISTEM BERKAS WARDATI

D. PENGURUTAN HASIL QUERY
Pengurutan record-record hasil query disesuaikan dengan struktur penyimpanan yang kita terapkan pada tabel query. Terdapat dua jenis struktur penyimpanan, yaitu :
1. Struktur penyimpanan heap
Dimana pada struktur penyimpaanan ini hasil query akan ditampilkan berdasarkan kronologis ( waktu ) penyimpanan.
2. Struktur penyimpanan sekuensial berindeks
Pada struktur penyimpanan ini hasil query akan ditampilkan sesuai dengan atribut yang menjadi dasar indeks.
Terdapat dua jenis mode pengurutan, yaitu pengurutan naik dan pengurutan turun. Kedua mode pengurutan tersebut sama-sama mengunakan klausa order by, hanya saja pada pengurutan turun ditambahkan dengan klausa desc pada klausa order by nya. Berikut ini adalah contoh pengurutan hasil query;
 Contoh 1
Select *
from KULIAH
order by NAMA_KULIAH

Ekspresi diatas akan menampilkan query dengan urutan naik berdasarkan nama mata kuliah. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
M001 BASIS DATA 6 3 L022
M002 OR-KOM 3 3 L023
K001 PANCASILA 3 2 L026
P001 SIMULASI 6 2 L024
F001 SISTEM BERKAS 4 3 L025

 Contoh 2
select *
from KULIAH
order by NAMA_KULIAH desc
Ekspresi diatas akan menampilkan query dengan urutan turun berdasarkan nama mata kuliah. Tampilannya adalah :
KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOSEN
F001 SISTEM BERKAS 4 3 L025
P001 SIMULASI 6 2 L024
K001 PANCASILA 3 2 L026
M002 OR-KOM 3 3 L023
M001 BASIS DATA 6 3 L022

Contoh penggunaan klausa dasar SQL, yang melibatkan empat buah tabel sekaligus, yaitu tabel MAHASISWA, tabel KULIAH, tabel DOSEN serta tabel NILAI;
TABEL 4 : NILAI
NIM KODE_KUL KODE_NILAI
9961001 M001 B
9961001 P001 A
9961002 M002 C
9961002 P001 C
9961003 K001 A
9961004 F001 A
9961004 M002 C
9961005 F001 C
9961005 K001 B

Contoh berikut akan menampilkan kartu hasil studi dari seorang mahasiswa berdasarkan pada NIM nya.

select
N . NIM, M . NAMA as NAMA_MHS, K . NAMA_KUL, D . NAMA_DOSEN, N . KODE_NILAI
from
MAHASISWA M,
KULIAH K,
DOSEN D,
NILAI N
where N . NIM = M . NIM and
N . KODE_KUL = K . KODE_KUL and
D . KODE_DOSEN = K . KODE_DOSEN and NIM = ‘9961001’

0 komentar:

Posting Komentar