Tag

, , , ,


Nah klo pembaca semua udah paham ama materi sebelumnya yakni Introduction to SQL, sekarang berlanjut ke pembahasan ini.

Selamat berlatih!!!!!

Kueri:
SELECT NAME, STARTTERM, ENDTERM
FROM PRESIDENT
WHERE NAME=’LINCOLN’;

Perhatikan contoh diatas, semuanya menggunakan huruf kapital.
Pertanyaan pertama adalah apakah kapital atau tidaknya huruf berpengaruh?
Jawabannya adalah tidak!
Kueri diatas akan berjalan baik-baik saja walaupun hurufnya kita ubah seperti contoh selanjutnya.

select name, startterm, endterm
from president
where name=’LINCOLN’;

Pada contoh kedua, semuanya menggunakan huruf non-kapital, kecuali kata LINCOLN.
Pernyataan SQL tidak case-sensitive, tetapi data dalam basisdata, case sensitive!

Apa itu case sensitive?
Case sensitive: huruf kapital dan non kapital dianggap berbeda.
Contoh: A adalah berbeda dengan a.

Catatan pertama adalah perintah dalam SQL tidak case sensitive.

Pertanyaan selanjutnya adalah apakah baris baru (newline) berpengaruh?
Jawabnya masih tetap tidak!
Contoh kueri diatas dapat kita tulis sebagai berikut:
select name, startterm, endterm from president where name=’LINCOLN’:

Pertanyaan lebih lanjut adalah bagian manakah yang paling penting dalam kueri diatas?
Kapital atau no-kapitalnya huruf? Tentu bukan.
Ada atau tiadanya baris baru (newline)? Ternyata bukan juga.
Jawabannya adalah kata kunci (keyword).
Kata kunci yang terdapat pada contoh kueri diatas adalah:
– SELECT
– FROM
– WHERE

Pilar Utama Pengambilan Data: SELECT dan FROM
SELECT dan FROM adalah kata kunci yang akan selalu digunakan dalam pengambilan data yang ada di basisdata.

Ingat, pengambilan data adalah alasan utama mengapa kita memasukkan data kedalam basisdata. Untuk apa saya menghabiskan banyak waktu dan tenaga untuk memasukkan sebegitu banyak data ke dalam basisdata kalau tidak untuk dapat diambil kembali datanya kan?

Kata kunci SELECT tidak dapat berdiri sendiri.
Apabila kita melakukan kueri sebagai berikut:
SELECT;
Maka akan menghasilkan pesan kesalahan sebagai berikut:
SELECT
*
ERROR at line 1:
ORA-00936: missing expression
Pesan kesalahan memberitahukan bahwa ada sesuatu yang hilang (ekspresi tidak lengkap).
Sesuatu yang hilang itu adalah kata kunci FROM.
Sintak FROM adalah sebagai berikut: FROM

Contoh
Contoh selalu menjadi alat mujarab untuk memahami banyak hal.
Sebelum kita materi, ada baiknya kita melihat contoh terlebih dahulu.
Contoh berikut akan mengilustrasikan fungsi dasar dari SELECT dan FROM.
Kita akan menggunakan tabel CHECKS untuk mendapatkan data tentang cek yang sudah ditulis oleh masing-masing orang.

Tabel CHECKS:
  CHECK# PAYEE                AMOUNT REMARKS
——— ——————– —— ———————
       1 Ma Bell                150 Have sons next time
       2 Reading R.R.         245.34 Train to Chicago
       3 Ma Bell             200.32 Cellular Phone
       4 Local Utilities          98 Gas
       5 Joes Stale $ Dent      150 Groceries
       6 Cash                    25 Wild Night Out
       7 Joans Gas             25.1 Gas

Kueri Pertamaku:
Bila kita melakukan kueri sebagai berikut (masukan):
SQL> select * from checks;
maka akan menghasilkan data sebagai berikut (keluaran):
  CHECK# PAYEE                AMOUNT REMARKS
——— ——————– —— ———————
       1 Ma Bell                150 Have sons next time
       2 Reading R.R.         245.34 Train to Chicago
       3 Ma Bell             200.32 Cellular Phone
       4 Local Utilities          98 Gas
       5 Joes Stale $ Dent      150 Groceries
       6 Cash                    25 Wild Night Out
       7 Joans Gas             25.1 Gas

7 rows selected.

Perhatikan kolom pertama dan ketiga pada keluaran adalah rata kanan, sedangkan kolom kedua dan keempat adalah rata kiri. Rata kanan untuk tipe numerik, dan rata kiri untuk tipe karakter.Â

Tanda asterisk (*) dalam select * memberitahukan kepada basisdata untuk menampilkan semua kolom yang ada dalam tabel yang diminta (dalam kasus ini, tabel CHECKS). Urutan kolom yang ditampilkan ditentukan oleh basisdata.

Saya sudah selesai menulis kueri!
Bagaimana kita memberitahu kepada intrepreter (contoh: Oracle’s SQL*PLUS) bahwa kita sudah selesai menulis kueri dan meminta intrepreter untuk mengeksekusinya?
Oracle’s SQL*PLUS tidak akan mengeksekusi pernyataan kueri sebelum menemukan tanda titik koma (;) atau garis miring (/). Tanda tersebut disebut sebagai terminator.
Tetapi ada juga intrepreter lain, misalnya TOAD, tidak membutuhkan terminator apapun karena kita harus menekan tombol tertentu untuk mengeksekusi kueri.

Mengubah urutan kolom keluaran
Masukan:
SQL> SELECT payee, remarks, amount, check# from checks;
Keluaran:
PAYEEÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â REMARKSÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â AMOUNTÂ Â CHECK#
——————– ——————– ——— ——–
Ma Bell              Have sons next time       150 1
Reading R.R.         Train to Chicago        245.34 2
Ma Bell             Cellular Phone         200.32 3
Local Utilities     Gas                        98 4
Joes Stale $ Dent   Groceries                 150 5
Cash                Wild Night Out              25 6
Joans Gas            Gas                      25.1 7

7 rows selected.

Perhatikan bahwa setiap nama kolom disebutkan setelah kata kunci select.
Perhatikan tanda koma (,) diantara nama kolom dan tanda spasi ( ) sebelum kata kunci from.
Urutan nama kolom yang disebutkan pada masukan menentukan urutan nama kolom yang ditampilkan pada keluaran.

Menampilkan kolom tertentu
Masukan:
SQL> SELECT CHECK#, amount from checks;
Keluaran:
    CHECK#    AMOUNT
——— ———
        1      150
        2    245.34
        3    200.32
        4        98
        5       150
        6        25
        7      25.1

7 rows selected.

Sekarang kita mendapatkan data dari kolom tertentu saja.
Perhatikan bentuk penulisan kueri. Bentuk kapital atau non kapital pada kueri diatas, tidak akan mempengaruhi keluaran.

Saya ingin mendapatkan data dari tabel lain. Bagaimanakah?
Misalkan kita mempunyai tabel bernama DEPOSITS dengan struktur sebagai berikut:
DEPOSIT# WHOPAID Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â AMOUNT REMARKS
——– ———————- —— ——————-
1        Rich Uncle                200 Take off Xmas list
2        Employer                 1000 15 June Payday
3        Credit Union              500 Loan

Yang harus dilakukan hanyalah mengganti nama tabel setelah kata kunci FROM.
Masukan:
SQL> select * from deposits;
Keluaran:
DEPOSIT# WHOPAID Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â AMOUNT REMARKS
——– ———————- —— ——————-
1        Rich Uncle                200 Take off Xmas list
2        Employer                 1000 15 June Payday
3        Credit Union              500 Loan

Kueri dengan Pembedaan (distinction)
Perhatikan isi tabel CHECKS sekali lagi. Kita lihat ada beberapa data yang identik. Contohnya apabila kita melihat kolom AMOUNT dengan menggunakan:
SQL> select amount from checks;
Maka keluarannya adalah:
   AMOUNT
———
      150
   245.34
   200.32
       98
      150
       25
     25.1

7 rows selected.

Perhatikan bahwa jumlah 150 muncul 2 kali pada keluaran.
Bagaimana caranya kita menuliskan kueri apabila kita ingin mendapatkan hasil yang unik? Perhatikan kueri dibawah.
Masukan:
SQL> select DISTINCT amount from checks;
Keluaran:
   AMOUNT
———
       25
     25.1
       98
      150
   200.32
   245.34

6 rows selected.

Perhatikan bahwa hanya ada 6 baris data yang ditampilkan karena kita menambahkan kata kunci DISTINCT.
Kata kunci DISTINCT membuat data yang duplikat hanya ditampilkan 1 kali saja.
Kata kunci ALL adalah kata kunci dasar untuk pernyataan SELECT.
Tetapi kita hampir tidak pernah menemukan kata kunci tersebut karena hasil dari SELECT dan SELECT ALL adalah identik.
Contoh masukan:
SQL> SELECT ALL AMOUNT FROM CHECKS;
Maka keluarannya adalah:
   AMOUNT
———
      150
   245.34
   200.32
       98
      150
       25
     25.1

7 rows selected.

Keluarannya sama persis dengan apabila kita hanya menulis SELECT AMOUNT FROM CHECKS;
Jadi, kalau kita bisa menulis lebih sedikit, mengapa harus menulis banyak? 🙂 🙂

Iklan