Publiser angga Debby Frayudha
publisher 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
- : 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
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
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