31
MODUL PERKULIAHAN PEMROGRAMAN DATABASE 1 MULYADI, S.KOM, M.S.I SISTEM INFORMASI

1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

MODUL PERKULIAHANPEMROGRAMAN DATABASE 1

MULYADI, S.KOM, M.S.I

SISTEM INFORMASI

STIKOM DINAMIKA BANGSA JAMBI

2019

Page 2: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

BASIC INSTUCTION OFSQL DATA RETRIEVAL

Perintah dasar SQL yang digunakan untuk menampilkan data (Data Retrieval) adalah

SELECT dengan bentuk umum penulisan adalah sebagai berikut :

SELECT digunakan mengidentifikasi kolom/field

FROM digunakan mengidentifikasi tabel

Ada beberapa cara dalam menampilkan seluruh data dalam suatu tabel, yaitu :

1. Menampilkan seluruh isi tabel (seluruh field)

Contoh :

SELECT * FROM employees;

2. Menampilkan sebagian saja dari isi tabel (sebagian field)

Contoh :

SELECT last_name, job_id, salary FROM employees;

3. Menggunakan Operator Arithmetik :

2

SELECT * |{[DISTINCT] fields | expression [alias],….}

FROM table

SELECT * FROM table

SELECT field1, field2, …., fieldn FROM table

+ = Tambah - = Kurang * = Kali / = Bagi

Perioritas : * / + -

Page 3: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Contoh :

SELECT last_name, salary, salary + 300 FROM employees;

SELECT last_name, salary, 12*(salary+100) FROM employees;

4. Menggunakan Kolom Alias

Contoh :

SELECT Last_name Nama, Commission_pct Komisi FROM employees

5. Menggunakan Concatenation Operator ( || )

Operator Concatenation digunakan untuk menggabungkan field dengan field dan field

dengan karakter/string.

Contoh Penggabungan field dengan field:

SELECT last_name || department_id “Employees” FROM employees

Contoh penggabungan field dengan karakter/string :

SELECT last_name || ‘ memperoleh gaji Rp. ‘ || job_id “Data Karyawan” FROM

employees

6. Duplikasi Baris

Contoh :

SELECT department_id FROM employees

7. Menghindari Duplikasi Baris

Contoh :

SELECT DISTINCT department_id FROM employees

8. Menampilkan Struktur dari Tabel :

Contoh :

3

DESC nama_tabel

SELECT field1 nama_kolom_alias1, field1 nama_kolom_alias1, …………………………….. , fieldn nama_kolom_aliasn

FROM table

Page 4: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

DESC departments

SELECTION & SORT

Pada bab ini membahas tentang penyeleksian data dan pengurutan data yang akan

ditampilkan. Berikut ini penjelasan tentang metode penyeleksian dan pengurutan data :

1. Mengunakan klausa WHERE untuk menyeleksi data / record.

Bentuk umum penulisan perintah SQL menggunakan klausa WHERE adalah sebagai

berikut :

Penulisan klausa WHERE diletakkan setelah klausa FROM

Penggunaan :

Where : mengakses record tertentu berdasarkan kondisi

Kondisi : terdiri dari kolom / field, ekspresi, suatu operator / kondisi

pembanding dan konstanta.

Operator Pembanding :

Operator Arti

= Sama dengan

> Lebih dari

>= Lebih dari atau sama dengan

< Kurang dari

<= Kurang dari atau sama dengan

<> Tidak sama dengan

4

SELECT * |{DISTINCT] field / expression [alias],…}FROM tabelWHERE kondisi;

Page 5: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Kondisi perbandingan :

Operator Arti

BETWEEN …… AND

…….

Antara dua nilai

IN (set) Nilai yang sama dengan nilai pada tanda

kurung

LIKE Menyerupai karakter tertentu

IS NULL Nilai null (kosong)

Kondisi Logika :

Operator Meaning

AND Bernilai benar jika kedua kondisi bernilai benar

OR Bernilai benar jika salah satu kondisi bernilai benar

NOT Bernilai benar jika tidak sama dengan kondisi

Prioritas :

Order Evaluated

Operator

1 Operator aritmatika ( * / + - )

2 Operator Concatenation ( || )

3 Operator Pembanding ( = > < >= <= <> )

4 IS [NOT] NULL, LIKE, [NOT] IN

5 [NOT] BETWEEN

6 Not Logical condition

7 And Logical condition

8 Or Logical Condition

Berikut beberapa contoh pemakaian operator / kondisi pembanding :

a. Contoh Pengunaan “=” untuk Numeric

5

Page 6: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

SELECT Last_name, Department_id

FROM employees

WHERE department_id = 50

b. Contoh Pengunaan “=” untuk Character

 c. Contoh Pengunaan BETWEEN

d. Contoh Pengunaan IN

e. Contoh Pengunaan LIKE

f. Contoh Pengunaan IS NULL

6

SELECT Last_name, Department_id

from employees

WHERE last_name = ‘OConnell’

SELECT Last_name, salary

FROM employees

WHERE salary BETWEEN 1500 AND 3500

SELECT last_name, salary, manager_id

FROM employees

WHERE manager_id IN (101, 108)

SELECT first_name

FROM employees

WHERE first_name LIKE ‘A%’

SELECT last_name, Manager_id

FROM employees

WHERE manager_id IS NULL

Page 7: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

g. Contoh Pengunaan AND Operator

h. Contoh Pengunaan OR Operator

i. Contoh Pengunaan NOT Operator

j. Contoh Pengunaan Rules of Precedence 1

k. Contoh Pengunaan Rules of Precedence 2

2. Mengunakan klausa ORDER BY untuk mengurutkan data

Mengurutkan record dengan menggunakan klausa ORDER BY

- ASC : Secara Ascending, default

- DESC : Secara Descending

7

SELECT Last_name, Department_id, salary

FROM employees

WHERE salary >=1400 AND last_name LIKE ‘E%’

SELECT last_name, salary, manager_id

FROM employees

WHERE manager_id NOT IN (101, 102, 108)

SELECT Last_name, Department_id, salary

FROM employees

WHERE department_id= 40

OR department_id= 50 AND salary > 1400

SELECT Last_name, Department_id, salary

FROM employees

WHERE ( department_id = 40 OR department_id =

50 )

SELECT Last_name, Department_id, salary

FROM employees

WHERE salary >=1400 OR Last_name LIKE ‘E%’

Page 8: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Penggunaan kalusa ORDER BY diletakkan di akhir pernyataan SELECT

a. Pengunaan ORDER BY dengan ASC

b. Pengunaan ORDER BY dengan DESC

8

SELECT last_name, department_id, manager_id,

salary

FROM employees

ORDER BY department_id

SELECT last_name, department_id, manager_id,

salary

FROM employees

ORDER BY department_id DESC

Page 9: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

FUNCTION

Pada bab ini mempelajari penggunaan fungsi dalam perintah SQL yang berguna untuk

memanipulasi record-record yang ditampilkan sesuai dengan kebutuhan informasinya. Bentuk

umum pemakaian fungsi adalah sebagai berikut :

Beberapa fungsi yang akan dibahas antara lain :

1. Character Functions terbagi 2, yaitu :

a. Case-manipulation functions

Fungsi ini digunakan untuk mengkonversi tampilan format huruf (Besar/Kecil), antara

lain :

LOWER digunakan untuk mengkonversi ke huruf kecil semua

UPPER digunakan untuk mengkonversi ke huruf besar semua

INITCAP digunakan untuk mengkonversi huruf awal setiap kata ke huruf besar dan

huruf lainnya ke huruf kecil.

Contoh 1:

Fungsi Hasil

LOWER(‘SQL Course’) sql course

UPPER(‘SQL Course’) SQL COURSE

INITCAP(‘SQL Course’) Sql Course

9

Nama_Fungsi [(ekspresi1, ekspresi2, …..)]

Page 10: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Contoh 2 :

b. Character-manipulation functions

Fungsi ini digunakan untuk memanipulasi karakter, antara lain :

CONCAT digunakan untuk menggabungkan nilai dari suatu ekspresi dengan nilai

dari ekspresi yang lain. Hampir sama dengan concatenation operator (||)

SUBSTR digunakan untuk mengambil karakter tertentu dari suatu ekspresi

LENGTH digunakan untuk menghitung jumlah karakter dari suatu ekspresi

INSTR digunakan untuk mengetahui letak dari suatu karakter tertentu dari suatu

ekspresi

LPAD digunakan untuk menempatkan karakter tertentu disisi kiri suatu nilai

sebanyak n dari seluruh total jumlah karakter.

RPAD digunakan untuk menempatkan karakter tertentu disisi kanan suatu nilai

sebanyak n dari seluruh total jumlah karakter.

TRIM digunakan untuk menghilangkan karakter awal atau akhir dari suatu ekspresi.

REPLACE digunakan untuk mencari karakter tertentu dari suatu ekspresi, bila

ditemukan akan digantikan dengan karakter yang lain.

Contoh 1 :

FUNGSI HASIL

CONCAT(‘Hello’, ‘World’) HelloWorld

SUBSTR(‘HelloWorld’,1,5) Hello

LENGTH(‘HelloWorld’) 10

INSTR(‘HelloWorld’, ‘W’) 6

LPAD(salary,10,’*’) *****24000

RPAD(salary, 10, ‘*’) 24000*****

10

SELECT ‘Jabatan untuk ’ || UPPER(last_name) || ‘ adalah ‘ ||

LOWER(job_id) “Data Karyawan”

FROM employees

Page 11: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

TRIM(‘H’ FROM ‘HelloWorld’) elloWorld

Contoh 2 :

2. Number Function

Fungsi ini digunakan untuk memformat tampilan angka. Berikut ini beberapa fungsi dari

Number Function

ROUND : digunakan untuk pembulatan angka hingga mengikuti format angka

desimal tertentu

ROUND (45.926, 2) = 45.93

TRUNC : digunakan untuk memformat angka hingga mengikuti format angka

desimal tertentu

TRUNC (45.926,2) = 45.92

MOD : digunakan untuk menentukan sisa hasil pembagian.

MOD(1600,300) =100

Contoh :

3. Working with Dates

Sebelum membahas tentang fungsi yang berhubungan dengan penggunaan data tanggal,

berikut ini ada penggolongan dari suatu format data waktu, misalnya untuk tanggal 12

Juni 2007 Jam 19:05:43 dijabarkan sebagai berikut :

11

SELECT department_id, CONCAT(first_name, last_name) “Nama”,

LENGTH(last_name) “Jumlah Karakter pada Nama”,

INSTR(last_name, ‘a’) “posisi huruf ‘a’ pada Nama” FROM employees

SELECT Last_name “Nama”, Salary “Gaji perbulan” ,

ROUND(Salary/30,0) “Kebutuhan perhari” , MOD(Salary , 30) “Sisa

Gaji”

FROM Employees ;

Century Year Month Day Hour Minute Second

20 11 12 20 19 05 43

Page 12: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Berikut ini adalah beberapa fungsi yang berhubungan dengan penggunaan data tanggal

a. SYSDATE adalah fungsi yang digunakan untuk menampilkan tanggal dan waktu dari

sistem.

Contoh :

SELECT SYSDATE FROM DUAL;

b. Operasi Aritmatika pada data tanggal

Operasi aritmatika pada data tanggal mengikuti aturan sebagai berikut :

Operasi Hasil Penjelasan

Date + number(n) Date Menambah n hari pada data tanggal

Date – number(n) Date Mengurangi n hari dari data tanggal

Date-date Number Menghasilkan selisih hari diantara 2 tanggal

Date + number(n)/24 Date Menambah n jam dari data tanggal

Contoh :

c. Date Functions

FUNGSI Keterangan

MONTHS_BETWEEN Menampilkan Jumlah Bulan antara 2 tanggal

ADD_MONTHS Menambah Jumlah Bulan pada suatu tanggal

NEXT_DAY Menampilkan tanggal dari nama hari tertentu

LAST_DAY Menampilkan tanggal akhir bulan

ROUND Pembulatan data tanggal

TRUNC Truncate data tanggal

Contoh :

12

SELECT SYSDATE “Tgl. Sekarang” , SYSDATE + 7 “Tgl. Minggu

Depan”,

SYSDATE – 30 “Tgl. Bulan Lalu”, SYSDATE + 48/24 “Tgl. Lusa”

FROM DUAL ;

Page 13: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

* MONTHS_BETWEEN (’01-SEP-95’,’11-JAN-94’) = 19.6774194

* ADD_MONTHS (’11-JAN-94,6) = ’11-JUL-94’

* NEXT_DAY (’01-SEP-95’,’FRIDAY’) = ’08-SEP-95’

* LAST_DAY(’01-FEB-95’) = ’28-FEB-95’

Mengunakan DATE Functions

MISALKAN SYSDATE = ’12-JUN-08’ :

* ROUND (SYSDATE,’MONTH’) 01-JUN-08

* ROUND (SYSDATE,’YEAR’) 01-JAN-08

* TRUNC (SYSDATE,’MONTH’) 01-JUN-08

* TRUNC (SYSDATE,’YEAR’) 01-JAN-08

Contoh :

Menggunakan TO_CHAR Function With Date

Menggunakan TO_CHAR Function With Number

13

SELECT department_id, Hire_date, ROUND(Hire_date,'MONTH'),

TRUNC(Hire_date,'MONTH') FROM employees

WHERE Hire_date LIKE '%90'

SELECT Last_name, TO_CHAR(Hire_date,'DD Month YYYY')

“Tanggal Mulai Bekerja”

FROM employees

9 = mewakili digit angka

0 = menampilkan angka 0

$ = menampilkan simbol $

. = menampilkan simbol desimal

, = menampilkan simbol pemisah

ribuan

Page 14: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Contoh :

Menggunakan TO_NUMBER DAN TO_DATE Function

Syntax :

Contoh :

Current Year Specified Date RR Format YY Format

1995 27-oct-95 1995 1995

1995 27-oct-17 2017 1917

2001 27-oct-17 2017 2017

2001 27-0ct-95 1995 2095

Keterangan :

2 digits year of Spesified Date (Format RR)

0 - 49 50 - 99

2 digits year of Current

Year

0 – 49Abad / century sama

dengan abad pd Current Year

Abad / century dibawah dari abad pada Current Year

50 - 99Abad / century di atas

dari abad pada Current Year

Abad / century sama dengan abad pd Current Year

Contoh :

14

SELECT Last_Name, TO_CHAR(salary, '$99,999.00') “Gaji”

FROM employees

WHERE last_name ='Whalen'

TO_NUMBER(char, [’format_model’])

TO_DATE(char, [’format_model’])

SELECT Last_name, TO_CHAR(hire_date, 'DD-Mon-

YYYY')

FROM employees

WHERE hire_date > TO_DATE('01-Jan-90','DD-Mon-RR')

Page 15: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

3. General Function

Fungsi-fungsi berikut digunakan sehubungan dengan type data NULL

NVL : mengkonversi data Null ke nilai tertentu

Contoh :

SELECT last_name, salary “Gaji”, NVL(commission_pct,0) “Komisi”,

(salary*12) + (salary*12*NVL(commission_pct,0)) “Penghasilan pertahun”

FROM employees ;

NVL2 : Mengkonversi data dengan 2 kondisi

Contoh :

SELECT last_name, salary “Gaji”, commission_pct “Komisi”,

NVL2(commission_pct, 'Gaji + Komisi', 'Gaji') “Penghasilan”

FROM employees WHERE department_id in (40,80)

NULLIF : Membandingkan dua ekspresi, jika keduanya bernilai sama maka akan

ditampilkan nilai NULL, namun jika berbeda yang ditampilkan

adalah nilai pada ekspresi pertama.

15

NVL (eksp1, eksp2)Keterangan

Eksp1 : Ekspresi yang mengandung nilai NULLEksp2 : Nilai yang akan menggantikan nilai NULL

Pada Eksp1

NVL (eksp1, eksp2, eksp3)

Keterangan Jika eksp1 mengandung nilai NULL, maka akan digantikan dengan nilai pada eksp3, namun jika tidak mengandung nilai NULL maka akan digantikan dengan nilai pada eksp2

NULLIF (eksp1, eksp2)

Page 16: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Contoh :

SELECT first_name, LENGTH(first_name) "Ekspresi 1",

last_name, LENGTH(last_name) "Ekspresi 2",

NULLIF(LENGTH(First_name), LENGTH(last_name)) “Hasil”

FROM employees

COALESCE : Menampilkan nilai NOT NULL dari urutan ekspresi yang dituliskan.

Contoh :

SELECT last_name, COALESCE(commission_pct, salary, 10) “Komisi” FROM

employees ORDER BY commission_pct

4. Group Functions

Pada kasus seleksi data seringkali diminta untuk menampilkan atau memilih sekumpulan

data berdasarkan kelompok data tertentu. Untuk menyelesaikan masalah tersebut, SQL

menyediakan perintah atau sintax Group By. Pada pengelompokan data biasanya

disertakan bersama Aggregate Function. Dalam hal ini implementasinya, Aggregate

Function harus diikuti group by bila terdapat field lain yang dijadikan sebagai kriteria

pengelompokkan.

Bentuk Umum

16

COALESCE(eksp1, eksp2,…..ekspn)

SELECT column, group_function(column)

FROM table

[WHERE condition]

[GROUP BY group_by_expression]

[HAVING group_condition]

[ORDER BY column];

Page 17: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

Kriteria HAVING adalah : kriteria pemilihan atau seleksi data dengan menggunakan

kata HAVING, Kata HAVING ini bisa berupa HAVING Count(nama_field), having

SUM(nama_field), dan lain-lain.

Berikut ini adalah beberapa group functions yang digunakan :

1. Penggunaan AVG

Fungsi ini digunakan untuk mencari harga rata-rata dari sekumpulan data yang ada.

Tampilkan rata-rata dari gaji berdasarkan kode Departement :

Input :

SELECT Department_id, AVG(salary) from employees

GROUP BY Department_id

2. Penggunaan COUNT( )

Fungsi ini digunakan untuk mencari cacah atau banyaknya data.

Contoh :

SELECT COUNT(DISTINCT department_id)

FROM employees

3. Penggunaan MIN( ) dan MAX( ), SUM( )

Fungsi MIN( ) digunakan untuk mencari harga minimum dan MAX( ) mencari harga

maximum serta SUM( ) mencari total dari sekumpulan data yang ada.

Contoh :

SELECT MIN(salary), MAX(salary), SUM(salary)

FROM employees

Contoh lain :

SELECT MIN(salary), MAX(salary), SUM(salary)

FROM employees

WHERE Last_name LIKE 'E%'

Bisa juga menggunakan klausa WHERE dan klausa GROUP BY serta HAVING, seperti

contoh-contoh berikut :

Contoh :

SELECT AVG(salary) FROM employees

WHERE department_id=30

Contoh :

17

Page 18: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

SELECT department_id, MAX(salary)

FROM employees

GROUP BY department_id

Bandingkan hasil jika menggunakan HAVING :

Contoh :

SELECT department_id, MAX(salary)

FROM employees

GROUP BY department_id

HAVING MAX(salary) >15000

Bandingkan hasil jika menggunakan Order By Descending:

Contoh :

SELECT department_id, MAX(salary)

FROM employees

GROUP BY department_id

HAVING MAX(salary) >15000

ORDER BY department_id DESC

4. Conditional Expressions :

Fungsi ini sama dengan logika IF-THEN-ELSE, yang kita tuliskan sebagai pernyataan

SQL. Ada 2 fungsi, yaitu CASE dan DECODE

CASE Function :

Contoh :

Select last_name, department_id, Salary,

CASE department_id WHEN 40 THEN 1.10*salary

WHEN 50 THEN 1.15*salary

WHEN 70 THEN 1.20*salary

ELSE salary

END "Kenaikan Gaji"

18

CASE Ekpresi WHEN nilai1 THEN Pernyataan 1 WHEN nilai2 THEN Pernyataan 2 ……………………………………………..

WHEN nilain THEN Pernyataan n ELSE Pernyataan_alternatif

END

Page 19: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

FROM Employees

DECODE Function :

Contoh :

SELECT last_name, department_id, Salary,

DECODE (department_id, 40, 1.10*salary, 50, 1.15*salary,

70, 1.20*salary, salary)

“Kenaikan Gaji”

FROM Employees

19

DECODE (Kolom / ekspresi, Nilai1, Pernyataan1,

Nilai2, Pernyataan2,

……………………,

Nilain,Pernyataann,

Pernyataan_alternatif )

Page 20: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

DISPLAYING DATA FROM MULTIPLE TABLES

Salah satu fitur SQL yang paling berguna adalah kemampuan untuk mengabungkan

tabel – tabel dan mendapatkan data dari tabel tabel tersebut. Namun untuk mempelajari ini

terlebih dahulu anda harus memahami tabel relasional dan rancangan database relasional.

Berikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang

menyebabkan terjadinya Cartesian Product.

Cartesian Product adalah : Hasil yang dikembalikan oleh sebuah tabel relasional dimana

Jumlah baris yang didapatkan kembali akan menjadi jumlah baris dalam tabel pertama

dikalikan dengan jumlah baris pada tabel kedua.

Contoh :

SELECT last_name, department_name

FROM employees, departments

 Jika dilihat dari hasil diatas terdapat 300 rows padahal didalam contoh diatas datanya

hanya sebanyak 25 rows, hal diatas terjadi karena tidak adanya Filter sehingga dalam

prosesnya komputer mengkombinasikan kedua tabel diatas. Untuk itu diperlukan cara yang

benar dalam mengakses data yang bersumber lebih dari satu tabel.

1. Penggunaan klausa WHERE

Contoh :

SELECT Employees.department_id, Employees.last_name,

Departments.department_name

20

SELECT table1.column, table2.columnFROM table1, table2WHERE table1.column1 = table2.column2

Page 21: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

FROM Employees, Departments

WHERE Employees.Department_id=Departments.Department_id

Didalam pencarian datanya juga bisa menggunakan kondisi.

Contoh :

SELECT Employees.department_id, Employees.last_name,

Departments.department_name

FROM Employees, Departments

WHERE Employees.Department_id=Departments.Department_id AND

Last_name = ‘Fay’ ;

Serta juga bisa menggunakan Tabel alias.

Contoh :

SELECT E.department_id, E.last_name, D.department_name

FROM Employees E, Departments D

WHERE E.Department_id=D.Department_id

(Jelas bagi kita ternyata hasilnya sama dengan yang tidak menggunakan kolom alias)

2. Penggunaan JOIN ON

Fungsi ini sama halnya dengan penggunaan klausa WHERE, namun pernyataan relational

databasenya di tuliskan setelah perintah ON

Contoh :

SELECT E.department_id, E.last_name, D.department_name

FROM Employees E JOIN Departments D

ON E.Department_id=D.Department_id

3. Penggunaan NATURAL JOIN :

Kapanpun tabel digabungkan, sedikitnya ada satu kolom yang akan muncul pada lebih

dari satu tabel (kolom akan digabungkan). Penggabungan standar mengembalikan semua

data, bahkan banyak kejadian pada kolom yang sama. Natural Join hanya mengurangi

kejadian tersebut sehingga hanya satu pada setiap kolom yang dikembalikan.

Contoh :

SELECT last_name, department_name

FROM employees

NATURAL JOIN departments

21

Page 22: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

4. Penggunaan OUTER JOIN

Kebanyakan join menghubungkan baris-baris dalam satu tabel dengan baris-baris tabel

lainnya. Tetapi kadang-kadang Anda perlu memasukkan baris yang tidak mempunyai

baris-baris yang berhubungan.

Contoh :

SELECT E.department_id, E.last_name, D. department_id,

D.department_name

FROM Employees E, Departments D

WHERE E.Department_id(+)=D.Department_id

5. Joining a Table to Itself

Penggabungan tabel juga bisa dilakukan dengan tabel itu sendiri

Contoh :

SELECT Karyawan.last_name || ' bawahan dari ' || Manager.last_name

FROM Employees Karyawan, Employees Manager

WHERE Karyawan.manager_id= Manager.employee_id

6. Creating Cross Joins

Klausa CROSS JOIN menghasilkan hasil persilangan dari dua tabel, sama halnya dengan

Cartesian Product pada dua table.

Contoh :

SELECT last_name, department_name

FROM employees

CROSS JOIN departments

22

Page 23: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

SUBQUERIES

Subquery adalah Query didalam query. Artinya seleksi data berdasarkan hasil seleksi

data yang telah ada. Sintax SQL nya sama syntax SQL pada umumnya, tetapi kondisi setelah

where diikuti dengan query baru atau subquery. Syntaxnya :

Contoh :

SELECT Last_name, salary, department_id, manager_id

FROM employees

WHERE salary =

(SELECT salary

FROM employees

WHERE department_id=40)

Contoh Menggunakan AND Single-ROW Subqueries:

SELECT Last_name, salary, department_id, Manager_id

FROM employees

WHERE salary =

(SELECT salary

FROM employees

WHERE department_id=40)

AND manager_id =

(SELECT manager_id

FROM employees

23

SELECT nama_field-1,…..,nama_field-n

FROM nama_tabel

WHERE kriteria (SELECT nama_field-1, ……., nama_field-n

FROM nama_tabel

WHERE kriteria)

Page 24: 1 · Web viewBerikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan terjadinya Cartesian Product. Cartesian Product adalah Hasil yang dikembalikan oleh

Pemrograman Database STIKOM Dinamika Bangsa

WHERE department_id=40)

Contoh Menggunakan OR Single-ROW Subqueries:

SELECT Last_name, salary, department_id, Manager_id

FROM employees

WHERE salary =

(SELECT salary

FROM employees

WHERE department_id=40)

OR manager_id =

(SELECT manager_id

FROM employees

WHERE department_id=40)

Contoh Menggunakan Function dalam Subqueries:

SELECT last_name, Department_id, salary

FROM employees

WHERE salary = ( SELECT MIN(salary)

FROM employees)

Contoh Menggunakan HAVING dan Subqueries:

SELECT department_id, MIN(salary)

FROM employees

GROUP BY Department_id

HAVING MIN(salary) >

(SELECT MIN(salary)

FROM employees

WHERE Department_id=40)

24