Select (Oracle)
Salah satu syntax yang paling penting dalam SQL adalah select. Select berfungsi untuk menampilkan data-data pada tabel-tabel yang terdapat dalam database. Di sinilah terdapat banyak perbedaan antara SQL biasa dan SQL Oracle. Oracle banyak sekali meringkas syntax-syntax menjadi lebih sederhana walaupun sebenarnya oracle juga tetap memerima SQL strandar.
Select secara sederhana dapat dituliskan sebagai berikut :
| SELECT [tb1].[nama_kolom1], [tb2].[nama_kolom2], . . . FROM [nama_tabel1] [tb1], [nama_tabel2] [tb2] WHERE [kondisi_join] [operator_boolean] [kondisi_select] ORDER BY [nama_kolom_order] GROUP BY [nama_kolom_group]; |
Keterangan :
| tb | : | Alias dari [nama_tabel1] |
| nama_kolom | : | Nama kolom yang akan ditampilkan |
| kondisi_join | : | Jika pada klausa FORM terdapat dua tabel atau lebih maka harus terdapat kondisi ini yaitu menjoinkan tabel-table pada klausa tersebut |
| operator_boolean | : | Operator-operator untuk kondisi_join seperti AND dan OR |
| kondisi_select | : | Kondisi tambahan untuk menyempurnakan operasi SELECT ini. Biasanya menggunakan operasi perbandingan, seperti : >, <, >=, <=, BETWEEN, <> |
| nama_kolom_order | : | Hasil SELECT ingin di urutkan berdasarkan nama_kolom tersebut. |
| nama_kolom_group | : | Hasil SELECT ingin dikelompokkan berdasarkan nama_kolom. Jadi semua record yang bernilai sama akan dikeluarkan hanya satu record saja. Yang perlu diperhatikan adalah semua kolom yang di-SELECT harus di GROUP BY -kan. |
Sebelum diperjelas dengan contoh maka sebaiknya kita mengisi data untuk tabel-tabel yang telah kita buat pada artikel Create Table “Sistem Belajar-Mengajar” – (Analisa & Desain). Script untuk mengisi data silahkan download di sini.
1. Menampilkan semua siswa kelas I dengan diurutkan berdasarkan nama siswa tersebut.
| SELECT NAMA, ALAMAT FROM TEST.MURID WHERE KELAS_ID = ‘I’ /*[kondisi_select]*/ ORDER BY NAMA, NIS; /*[nama_kolom_order]*/ |
2. Menampilkan guru-guru yang mengajar mata pelajaran biologi.
| SELECT g.NIG, b.NAMA FROM TEST.GURU g, TEST.BELAJAR b WHERE g.NIG = b.NIG /*[kondisi_join]*/ AND b.KODE_MP = ‘DA0007′ /*[kondisi_select]*/ GROUP BY g.NIG, g.NAMA; /*[nama_kolom_group]*/ |
Silahkan anda mencoba contoh-contoh semisal di atas. Coba pula dengan menghilangkan syntax ORDER BY dan GROUP BY dengan amati apa yang terjadi dan mengapa bisa terjadi.

mas.. kok hasilnya g ditampilin?? biar bisa lihat langsung gitu..
iya nih… mungkin bisa dicoba aja sendiri ya… sebelumnya coba insert keseluruhan data yang bisa didapat di sini
thank’s
sama-sama
situs apa Lagi yang bersangkutan tentang oracle??
coba lihat asktom.oracle.com, disana banyak memuat tentang masalah-masalah yang dihadapi para pengguna oracle.. tentunya disertai dengan solusinya
Thanks article nya mas.
Numpang nanya mengenai SELECT di oracle.
Aku ada kasus mau nampilin parameters nya ke dalam SELECT.
berikut contohnya:
SELECT (:TglDari) as DARI, (:TglSampai) as SAMPAI, *
FROM DaftarAnggota
WHERE Tanggal >= :TglDari AND
Tanggal <= :TglSampai
Kalo di MySQL syntax diatas jalan, dgn 2 parameters: TglDari dan TglSampai.
Di Oracle jadi error tu.
Mohon pencerahannya.
Suksma (bhs bali untuk Terima Kasih)
Wawan
SELECT
(:TglDari) as DARI,
(:TglSampai) as SAMPAI,
a.*
FROM DaftarAnggota a
WHERE
a.Tanggal >= :TglDari AND
a.Tanggal <= :TglSampai
tabel DaftarAnggota diberi alias "a"
untuk oracle 11g perintah sqlnya apakah sama mas?
ada beberapa fungsi baru pada oracle 11, akan tetapi secara keumuman untuk oracle versi terbaru akan mengadopsi versi yang lama