Home > Oracle, SQL > Select (Oracle)

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.

  1. Si Dul
    June 14, 2009 at 09:54

    mas.. kok hasilnya g ditampilin?? biar bisa lihat langsung gitu..

    • oracle1st
      June 14, 2009 at 14:00

      iya nih… mungkin bisa dicoba aja sendiri ya… sebelumnya coba insert keseluruhan data yang bisa didapat di sini

  2. June 15, 2009 at 14:23

    thank’s

    • oracle1st
      June 15, 2009 at 20:17

      sama-sama

  3. September 4, 2009 at 14:01

    situs apa Lagi yang bersangkutan tentang oracle??

    • oracle1st
      November 25, 2010 at 22:04

      coba lihat asktom.oracle.com, disana banyak memuat tentang masalah-masalah yang dihadapi para pengguna oracle.. tentunya disertai dengan solusinya

  4. Wawan
    June 8, 2010 at 18:00

    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

    • oracle1st
      November 25, 2010 at 21:58

      SELECT
      (:TglDari) as DARI,
      (:TglSampai) as SAMPAI,
      a.*
      FROM DaftarAnggota a
      WHERE
      a.Tanggal >= :TglDari AND
      a.Tanggal <= :TglSampai

      tabel DaftarAnggota diberi alias "a"

  5. dede
    August 28, 2010 at 05:27

    untuk oracle 11g perintah sqlnya apakah sama mas?

    • oracle1st
      November 25, 2010 at 22:02

      ada beberapa fungsi baru pada oracle 11, akan tetapi secara keumuman untuk oracle versi terbaru akan mengadopsi versi yang lama

  6. marvel
    February 27, 2012 at 11:55

    ketika saya mengetikkan “insert into stnk_05.stcamat (kdpolda, kdpolres, kdprop, kdkab, kdcamat, kddesa, nakab, nacamat, nadesa) values (’16’, ’24’, ’16’, ’24’, ’06’, ’11’, ‘ngawi’, ‘kendal’, ‘ds kuburan’);” pada sql window pada plsql hasilnya adalah
    ORA-04098: trigger ‘STNK_05.DEALER_STCAMAT_AI’ is invalid and failed re-validation
    kira-kira solusinya apa supaya data barunya bisa di-insert-kan kedalam database oracle?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: