basis data i...baker 44 miller 95 bailey 112 parmenter 100 operator like s1 teknik informatika -...

16
1 Basis Data I Pertemuan Ke-11 (SQL – Part 2) Noor Ifada [email protected] 1 1

Upload: others

Post on 12-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

1

Basis Data I

Pertemuan Ke-11(SQL – Part 2)

Noor Ifada

[email protected]

11

Page 2: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

22

Sub Pokok Bahasan

Operator Is Null

Operator Between

Operator In

Operator Like

Distinct

Fungsi dalam Select: Count, Max, Min, Sum, Avg

Union

Join: Inner & Outer (Left/Right)

2

Page 3: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

3

Contoh 1: Buat daftar seluruh pemain yang memiliki nomor liga!SQL:

SELECT PLAYERNO, LEAGUENOFROM PLAYERSWHERE LEAGUENO IS NOT NULL

Digunakan untuk memilih baris (record) dalam kolom tertentu yang tidak

memiliki nilai

Contoh 2: Cari nomor pemain yang tidak memiliki nomor liga!

SQL:

SELECT PLAYERNOFROM PLAYERSWHERE LEAGUENO IS NULL

Operator IS NULL

Page 4: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

4

Contoh 3: Cari nomor dan tanggal lahir dari masing-masing pemain yang lahir antara tahun 1962 sampai 1964.

SQL:

SELECT playerno, birth_dateFROM PlayersWHERE Year(birth_date) BETWEEN 1962 AND 1964

Hasil:

PLAYERNO BIRTH_DATE 6 1964-06-25 44 1963-01-09 27 1964-12-28 7 1963-05-11 112 1963-10-01 8 1962-07-08 100 1963-02-28 28 1963-06-22 95 1963-05-14

Operator BETWEEN

Page 5: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

5

Contoh 4: Cari nomor, nama dan kota dari masing-masing pemain yang tinggal di Inglewood, Plymouth, Midhurst atau Douglas.

SQL dengan OR:

SELECT playerno, name, townFROM PlayersWHERE town = ‘Inglewood’ OR town = ‘Plymouth’ OR town = ‘Midhurst’ OR town = ‘Douglas’

SQL dengan IN:

SELECT playerno, name, townFROM PlayersWHERE town IN (‘Inglewood’, ‘Plymouth’, ‘Midhurst’, ‘Douglas’)

Operator IN

Page 6: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

6

Contoh 5: Dapatkan nama dan nomor dari masing-masing pemain yang memiliki huruf “e” pada posisi huruf sebelum huruf terakhir dari namanya.

SQL:SELECT name, playernoFROM PlayersWHERE name LIKE '%e_';

 Hasil: 

NAME PLAYERNOParmenter 6Baker 44Miller 95Bailey 112Parmenter 100

Operator LIKE

Page 7: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

7

Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS!

Query:

SELECT DISTINCT TOWNFROM PLAYERS

Menghilangkan baris yang isinya sama

Distinct

Page 8: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

8

COUNT ( [ DISTINCT | ALL ] { * | <expression> } ) |MIN ( [ DISTINCT | ALL ] <expression> ) |MAX ( [ DISTINCT | ALL ] <expression> ) |SUM ( [ DISTINCT | ALL ] <expression> ) |AVG ( [ DISTINCT | ALL ] <expression> )

Fungsi dalam Select

Page 9: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

9

Contoh 7: Hitung jumlah pemain yang tercatat di dalam tabel PLAYERS!

SQL:

SELECT COUNT(*)FROM PLAYERS

Contoh 8: Ada berapa nama kota yang tercatat di dalam kolom TOWN dalam tabel PLAYERS?

SQL:

SELECT COUNT(DISTINCT(TOWN))FROM PLAYERS

Fungsi dalam Select: Count

Page 10: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

10

Contoh 9: Berapakah jumlah penalti yang tertinggi?

SQL:

SELECT MAX(AMOUNT)FROM PENALTIES

Fungsi dalam Select: Max & Min

Contoh 10: Berapakah jumlah penalti yang terendah?

SQL:

SELECT MIN(AMOUNT)FROM PENALTIES

Page 11: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

Contoh 11: Berapa banyak total SET yang telah dimenangkan, total SET yang telah kalah, dan berapa perbedaan di antara keduanya?

SQL:

SELECT SUM(WON),SUM(LOST),SUM(WON)-SUM(LOST) AS DifferenceFROM MATCHES

Hanya dapat digunakan pada ekspresi dengan tipe data numerik

Fungsi dalam Select: Sum

11

Page 12: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

12

Contoh 12: Berapakah jumlah rata-rata penalti yang dilakukan oleh pemain nomor 44?

SQL:

SELECT AVG(AMOUNT)FROM PENALTIESWHERE PLAYERNO = 44

Fungsi dalam Select: Avg

Page 13: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

13

UNION = (A ᑌ B)

Aturan Penggunaan:klausa SELECT dari seluruh blok select harus memiliki jumlah ekspresi yang sama, dan hasil ekspresi yang akan ditempatkan dalam kolom yang sama dengan hasil ekspresi yang lainnya harus memiliki tipe data yang sama atau masih dapat ditransformasi menjadi tipe data yang sama

klausa ORDER BY hanya dapat diletakkan setelah blok select yang terakhir

di klausa SELECT tidak boleh mengunakan DISTINCT; SQL secara otomatis akan menghapus duplikasi baris yang memiliki nilai yang sama

Operator Union

Page 14: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

14

Contoh 13: Cari nomor dan tempat tinggal masing-masing pemain yang berasal dari Inglewood and Plymouth! Urutkan berdasarkan nomor pemain!

Catatan: “berasal dari Inglewood dan Plymouth” berarti “berasal dari Inglewood atau dari Plymouth”. 

Operator Union (contd-2)

Dengan menggunakan operator UNION: 

SELECT PLAYERNO, TOWNFROM PLAYERSWHERE TOWN = 'Inglewood'UNIONSELECT PLAYERNO, TOWNFROM PLAYERSWHERE TOWN = 'Plymouth'ORDER BY PLAYERNO;

 

Solusi menggunakan operator OR: 

SELECT PLAYERNO, TOWNFROM PLAYERSWHERE TOWN = 'Inglewood' OR TOWN = 'Plymouth'ORDER BY PLAYERNO;

Page 15: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

15

Contoh 14: Untuk masing-masing tim, carilah nomor tim dan nama kaptennya!

Join: Inner

Solusi menggunakan “Equi JOIN”: 

SELECT TEAMNO, NAMEFROM PLAYERS P, TEAMS T

WHERE P.PLAYERNO = T.PLAYERNO 

Solusi menggunakan INNER JOIN: 

SELECT TEAMNO, NAMEFROM PLAYERS P INNER JOIN TEAMS T

ON (P.PLAYERNO = T.PLAYERNO)

Page 16: Basis Data I...Baker 44 Miller 95 Bailey 112 Parmenter 100 Operator LIKE S1 Teknik Informatika - Unijoyo 7 Contoh 6: Cari nama-nama kota yang berbeda dalam tabel PLAYERS! Query: SELECTDISTINCT

S1 Teknik Informatika - Unijoyo

16

Contoh 15: Untuk masing-masing pemain, buatlah daftar nama dan nomor teleponnya (jika memang terdaftar)! Khusus untuk pemain yang menjadi kapten suatu tim, cantumkan juga nomor timnya dan dan divisinya.

Join: Outer (Left/Right)

Solusi menggunakan LEFT JOIN: 

SELECT NAME, PHONENO, TEAMNO, DIVISIONFROM PLAYERS AS P LEFT JOIN TEAMS AS T ON P.PLAYERNO = T.PLAYERNO

 

Solusi menggunakan RIGHT JOIN: 

SELECT NAME, PHONENO, TEAMNO, DIVISIONFROM TEAMS AS T RIGHT JOIN PLAYERS AS P ON T.PLAYERNO = P.PLAYERNO