Sunday, May 13, 2012

SQL

Publiser angga Debby Frayudha


a.      SQL
Setelah kita membahas tentang prosedur-prosedur dalam PL/SQL, kali ini akan kita lanjutkan tentang SQL, SQL sangat diperlukan dalam PL/SQL karena query yang digunakan menggunakan query SQL.
Kali ini kita akan mempelajari bagaimana menampilkan data dengan menggunakan perintah-perintah SQL. perintah yang digunakan untuk menampilkan data adalah SELECT.
-          Sintaks Dasar
Perintah SELECT pada Oracle SQL minimal harus terdiri dari SELECT dan FROM.
SELECT [DISTINCT] {*, column [alias], …}FROM table;
   ü  SELECT                     : Menampilkan paling tidak satu kolom
ü  DISTINCT                  : Menghilangkan nilai duplikat
ü  *                                  : Menampilkan semua kolom
ü  Column                       : Menampilkan kolom tertentu
 ü  Alias                            : Memberikan judul lain kolom
 ü  FROM table                : Menunjukkan nama tabel asal
-          Penulisan Perintah SQL
·         Perintah-perintah SQL dapat ditulis dalam satu baris atau lebih, namun untuk kemudahan sebaiknya setiap klausa ditulis dalam baris yang berbeda
·         Perintah-perintah SQL tidak case-sensitive
·         Gunakan perintah ED untuk mengedit perintah-perintah SQL
-          Menampilkan Seluruh Kolom dan Baris
Menampilkan seluruh kolom dari suatu tabel dapat dilakukan dengan dua cara, yaitu:
  • Menyebutkan seluruh nama kolom
SELECT id, name, region_id FROM department;
  • Menggunakan tanda bintang (*)
SELECT * FROM department;
-          Menampilkan Kolom Tertentu
Menampilkan kolom tertentu dapat dilakukan dengan cara menyebutkan nama kolom yang ingin ditampilkan datanya. Contoh berikut ini menunjukkan bagaimana cara menampilkan kolom tertentu dari tabel Department.
SELECT name FROM department;
-          Operasi Aritmatika
Perhitungan dapat dilakukan pada perintah SQL dengan menggunakan ekspresi aritmatika, yang dapat mengandung nama-nama kolom, nilai-nilai numerik yang teta, dan operator-operator aritmatika.
+          : Penjumlahan
-
          : Penguranan
*
         : Perkalian
/
          : Pembagian
  • Operator perkalian dan pembagian memiliki prioritas di atas penjumlahan dan pengurangan
  • Operator dengan prioritas yang sama di evaluasi dari kiri ke kanan
  • Tanda kurung dapat digunakan untuk memaksa prioritas evaluasi dan memperjelas perintah
Contoh:
  • Menampilkan nama belakang dan menghitung gaji tahunan karyawan
SELECT last_name, salary*12 FROM employee;
  • Menampilkan nama belakang, gaji bulanan, dan gaji tahunan karyawan. Gaji tahunan merupakan gaji bulanan di kali dengan 12, ditambah dengan bonus 1.000.000
SELECT last_name, salary, salary*12+1000000 FROM salary;
  • Menampilkan nama belakang, gaji bulanan, dan gaji tahunan karyawan. Gaji tahunan merupakan gaji bulanan ditambah dengan bonus 1.000.000, di kali dengan 12
SELECT last_name, salary, 12*(salary+1000000) FROM employee;
-          Operator Penggabungan
Kita dapat menggabungkan satu kolom dengan lainnya, ekspresi aritmatika, atau nilai tetap untuk menciptakan ekspresi karakter menggunakan operator penggabungan (||). Kolom-kolom pada setiap sisi dari operator di kombinasikan untuk menghasilkan satu output kolom tunggal.
Contoh:
Menampilkan nama lengkap karyawan dengan judul Karyawan.
SELECT first_name||last_name AS “Karyawan” FROM employee;
Menampilkan nama lengkap dan jabatan karyawan dengan judul Karyawan. Dalam contoh ini antara nama depan dan nama belakang di pisahkan spasi, dan antara nama lengkap dan jabatan di pisahkan koma.
SELECT first_name||’ ‘||last_name||’, ‘||title AS “Karyawan” FROM employee;
-          Manajemen Nilai Null
Null adalah nilai yang tidak tersedia, tidak diberikan, tidak diketahui, atau tidak dapat digunakan. Null tidak sama dengan nol atau spasi. Nol adalah angka, dan spasi adalah karakter. Kolom dapat mengandung nilai null, kecuali kolom yang telah didefinisikan sebagai NOT NULL atau PRIMARY KEY ketika tabel diciptakan.
-          Nilai Null dalam Ekspresi Aritmatika
Jika nilai kolom dalam sebuah ekspresi adalah null, maka hasilnya juga null. Sebagai contoh, jika kita berusaha melakukan pembagian terhadap nol, maka akan terjadi kesalahan. Namun jika kita membagi terhadap null, maka hasilnya adalah null.
Contoh
Menampilkan nama belakang, gaji, jabatan, dan hasil perhitungan komisi.
SELECT last_name, title, salary, salary*commission_pct/100 KOMISI FROM employee;
-          Fungsi NVL
Fungsi NVL digunakan untuk mengkonversi nilai null menjadi nilai yang kita kehendaki. Sintaks fungsi NVL adalah sebagai berikut:
NVL (expr1, expr2)
expr1: nilai sumber atau ekspresi yang mungkin bernilai null
expr2: nilai target hasil konversi null
Kita dapat menggunakan fungsi NVL untuk mengkonversi tipe data apapun, namun hasilnya akan selalu sama dengan tipe data dari expr1.
Tipe data dan contoh konversi:
  • NUMBER
    • NVL (kolom_angka,9)
  • DATE
    • NVL (kolom_tanggal,’01-JAN-99′)
  • CHAR dan VARCHAR2
    • NVL (kolom_karakter,’Tidak tersedia’)
Contoh:
Berikut ini adalah modifikasi dari query sebelumnya, namun nilai null yang mungkin dihasilkan oleh prosentase komisi dalam hasil perhitungan komisi dikonversi menjadi nol.
SELECT last_name, title, salary, salary*NVL(commission_pct,0)/100 KOMISI FROM employee;
-          Mencegah Tampilnya Nilai Duplikat
Tampilan default dari query adalah seluruh baris termasuk baris-baris duplikat (dobel).
Contoh:
Menampilkan seluruh nama departemen dari tabel DEPARTMENT.
SELECT name FROM department;
-          Penggunaan Keyword DISTINCT
Baris-baris duplikat hasil query dapat dikurangi dengan menggunakan keyword DISTINCT dan SELECT.
Contoh:
Menampilkan nama departemen secara unik (tidak ada nilai duplikat).
SELECT DISTINCT name FROM department;
Menampilkan kombinasi-kombinasi berbeda dari jabatan dan kode departemen.
SELECT DISTINCT title, dept_id FROM employee;
-          Menampilkan Struktur Tabel
Dalam SQL*Plus kita dapat menampilkan struktur dari suatu tabel dengan menggunakan perintah DESCRIBE. Perintah ini menghasilkan nama kolom, tipe data, dan kolom mana yang harus berisi data (NOT NULL).
DESC[RIBE] tablename
tablename: nama dari tabel, view atau synonym yang boleh diakses user
Contoh:
Menampilkan struktur tabel DEPARTMENT.
DESCRIBE department;
atau
DESC department;
Name: nama kolom
Null?: menunjukkan apakah suatu kolom harus berisi data
Type: tipe data dari kolom
-          Tipe Data
  • NUMBER(p,s)
Digit maksimum p dan s angka dibelakang koma
  • VARCHAR2(s)
Tipe data karakter dengan panjang bervariasi (maksimum 2000)
  • CHAR(s)
Tipe data karakter dengan panjang tetap
  • DATE
Tipe data tanggal antara 1 Januari 4217 BC dan 4712 AD
-          Mengurutkan Data
Kita dapat menampilkan data secara urut berdasarkan satu atau beberapa kolom dengan menambahkan klausa ORDER BY pada perintah SELECT yang telah kita pelajari sebelumnya.
SELECT [DISTINCT] {*, column [alias], . . .} FROM table [ORDER BY {column, expr} [ASC|DESC]];
  • ORDER BY   : menentukan dasar urutan data yang akan ditampilkan
  • ASC                : menampilkan data secara urut menaik (ascending). Ini merupakan default pengurutan data
  • DESC              : menampilkan data secara urut menurun (descending)
-          Default Pengurutan Data
Apabila kita tidak menuliskan klausa ASC atau DESC dalam klausa ORDER BY, maka proses pengurutan dilakukan secara ascending (default). Berikut ini hal-hal yang perlu diketahui mengenai pengurutan data.
  • Nilai-nilai numerik ditampilkan dengan nilai terkecil terlebih dahulu, contoh 1-999
  • Nilai-nilai tanggal ditampilkan dengan nilai paling awal terlebih dahulu, contoh 01-JAN-92 sebelum 01-JAN-95
  • Nilai-nilai karakter ditampilkan secara alphabet, contoh A pertama dan Z terakhir
  • Nilai-nilai null ditampilkan terakhir dalam urutan ascending dan pertama dalam urutan descending
Contoh:
Menampilkan data karyawan urut berdasarkan nama belakang.
SELECT last_name, dept_id, hire_date FROM employee ORDER BY last_name;
Contoh diatas dapat dimodifikasi sehingga urut berdasarkan nama belakang secara menurun (descending) dengan menambahkan klausa DESC.
SELECT last_name, dept_id, hire_date FROM employee ORDER BY last_name DESC;
-          Mengurutkan Data Menggunakan Alias Kolom
Kita dapat menggunakan alias kolom dalam klausa ORDER BY. Fitur ini tersedia sejak Oracle 7 Release 7.0.16.
Contoh
Menampilkan data karyawan urut berdasarkan nama belakang.
SELECT last_name EMPLOYEE, hire_date FROM employee ORDER BY EMPLOYEE DESC;
-          Mengurutkan Data Berdasarkan Posisi Kolom
Metode lain untuk mengurutkan data adalah berdasarkan posisi kolom. Hal ini khususnya berguna jika mengurutkan berdasarkan ekspresi yang panjang. Daripada harus mengetikkan ekspresi yang panjang, kita dapat menentukan posisi kolom dalam SELECT.
Contoh:
Menampilkan data karyawan urut berdasarkan gaji tahunan.
SELECT last_name, salary*12 FROM employee ORDER BY 2;
-          Mengurutkan Data Berdasarkan Beberapa Kolom
Kita dapat mengurutkan hasil query berdasarkan beberapa kolom. Batasannya adalah jumlah kolom dalam tabel.
Contoh
Menampilkan data karyawan urut secara menaik (ascending) berdasarkan kode departemen, kemudian urut secara menurun (descending) berdasarkan gaji.
SELECT last_name, salary FROM employee ORDER BY dept_id, gaji DESC;

publisher Angga Debby Frayudha

Share:

0 comments:

Post a Comment