Basis Data II Pertemuan Ke-2 (Review Data Manipulation Language [DML]) Noor Ifada
Sub Pokok Bahasan DML Klausa SELECT Klausa WHERE Operator BETWEEN Operator IN Operator LIKE Klausa ORDER BY Seluruh Klausa Dalam 1 Statemen
S1 Teknik Informatika - Unijoyo
2
DML INSERT / UPDATE / DELETE, SELECT Klausa statemen SELECT:
– FROM --> menentukan tabel(-tabel) sumber – WHERE --> memilih baris(-baris) yang memenuhi kondisi (-kondisi) – GROUP BY --> menggabungkan baris(-baris) yang kolomnya memiliki nilai yang sama – HAVING --> memilih grup yang memenuhi kondisi(-kondisi) – SELECT --> memilih kolom(-kolom) – ORDER BY --> mengurutkan baris-baris berdasarkan nilainilai yang ada dalam kolom(-kolom)
S1 Teknik Informatika - Unijoyo
3
Klausa SELECT Contoh 1: Tampilkan seluruh data penalti. Query: SELECT * FROM Penalties
Hasil: PAYMENTNO
PLAYERNO PAYMENT_DATE AMOUNT 1 6 1980-12-08 100.00 2 44 1981-05-05 75.00 3 27 1983-09-10 100.00 4 104 1984-12-08 50.00 5 44 1980-12-08 25.00 6 8 1980-12-08 25.00 7 44 1982-12-30 30.00 8 27 1984-11-12 75.00
S1 Teknik Informatika - Unijoyo
4
Klausa SELECT (contd-2) Contoh 2: Tampilkan nomor pembayaran, nomor pemain dan jumlah dari masing-masing penalti Query: SELECT paymentno, playerno, amount FROM Penalties
Hasil: PAYMENTNO
PLAYERNO 1 2 3 4 5 6 7 8
AMOUNT 6 100.00 44 75.00 27 100.00 104 50.00 44 25.00 8 25.00 44 30.00 27 75.00
S1 Teknik Informatika - Unijoyo
5
Klausa SELECT (contd-3) Contoh 3: Tampilkan nomor pemain, nama dan umur ketika bergabung di klub tenis dari masing-masing pemain. Query: SELECTplayerno, name, joined - Year(birth_date) AS join_age FROM Players
S1 Teknik Informatika - Unijoyo
6
Klausa WHERE Contoh 4: Dapatkan nomor, nama, jenis kelamin dan tanggal lahir dari masing-masing pemain pria yang lahir setelah tahun 1970. SELECT playerno, name, sex, birth_date FROM Players WHERE sex = ‘M’ AND Year(birth_date) > 1970 Contoh 5: Dapatkan nomor pemain dan nomor liga dari masingmasing pemain yang memang benar-benar memiliki nomor liga. SELECT playerno, leagueno FROM Players WHERE leagueno IS NOT NULL
S1 Teknik Informatika - Unijoyo
7
Operator BETWEEN Contoh 6: Cari nomor dan tanggal lahir dari masing-masing pemain yang lahir antara tahun 1962 sampai 1964. Query: SELECT playerno, birth_date FROM Players WHERE Year(birth_date) BETWEEN 1962 AND 1964
Hasil: PLAYERNO 6 44 27 7 112 8 100 28 95
BIRTH_DATE 1964-06-25 1963-01-09 1964-12-28 1963-05-11 1963-10-01 1962-07-08 1963-02-28 1963-06-22 1963-05-14 S1 Teknik Informatika - Unijoyo
8
Operator IN Contoh 7: Cari nomor, nama dan kota dari masing-masing pemain yang tinggal di Inglewood, Plymouth, Midhurst atau Douglas. Query dengan OR: SELECT FROM WHERE
playerno, name, town Players town = ‘Inglewood’ OR town = ‘Plymouth’ OR town = ‘Midhurst’ OR town = ‘Douglas’
Query dengan IN: SELECT FROM WHERE
playerno, name, town Players town IN (‘Inglewood’, ‘Plymouth’, ‘Midhurst’, ‘Douglas’)
S1 Teknik Informatika - Unijoyo
9
Operator LIKE Contoh 8: Dapatkan nama dan nomor dari masing-masing pemain yang memiliki huruf “e” pada posisi huruf sebelum huruf terakhir dari namanya. Query: SELECT name, playerno FROM Players WHERE name LIKE '%e_'; Hasil: NAME PLAYERNO Parmenter 6 Baker 44 Miller 95 Bailey 112 Parmenter 100 S1 Teknik Informatika - Unijoyo
10
Klausa ORDER BY Contoh 9: Buat daftar nomor pembayaran dan nomor pemain untuk masing-masing penalti; urutkan hasil berdasarkan nomor pemain dan nomor pembayaran untuk masing-masing pemain. Query: SELECT FROM ORDER BY
atau:
paymentno, playerno Penalties playerno, paymentno
ORDER BY
2, 1
Hasil: PAYMENTNO 1 6 3 8 2 5 7 4
PLAYERNO 6 8 27 27 44 44 44 104
S1 Teknik Informatika - Unijoyo
11
Seluruh Klausa dalam 1 Statemen Contoh 10: Cari nomor dari masing-masing pemain yang telah melakukan lebih dari 1 penalti yang besarnya lebih dari 25. Query: SELECT playerno FROM Penalties WHERE amount > 25 GROUP BY playerno HAVING COUNT(*) > 1 ORDER BY playerno
S1 Teknik Informatika - Unijoyo
12
Latihan
S1 Teknik Informatika - Unijoyo
13
LATIHAN 1 Cari nama dan tahun lahir seluruh presiden dari partai Republik yang dilahirkan di Texas. Query: SELECT PRES_NAME, BIRTH_YR FROM PRESIDENT WHERE PARTY='Republican' AND STATE_BORN='Texas'
S1 Teknik Informatika - Unijoyo
14
LATIHAN 2 Buatlah daftar seluruh pemenang pemilihan presiden yang dilaksanakan sebelum abad 20; urutkan berdasarkan tahun pemilihan! Query: SELECT * FROM ELECTION WHERE WINNER_LOSER_INDIC = 'W' AND ELECTION_YEAR < 1900 ORDER BY ELECTION_YEAR
S1 Teknik Informatika - Unijoyo
15
LATIHAN 3 Buatlah daftar pernikahan presiden yang tidak memiliki anak dan umur salah satu pasangan tersebut ketika menikah setidaknya adalah 'di atas 40 tahun' Query: SELECT * FROM PRES_MARRIAGE WHERE NR_CHILDREN = 0 AND (PR_AGE > 40 OR SP_AGE > 40)
S1 Teknik Informatika - Unijoyo
16
LATIHAN 4 Buat daftar nama presiden dan lamanya pengabdian dari presiden partai non-Republik yang ketika meninggal telah mencapai umur di atas 80 tahun Query: SELECT PRES_NAME, YRS_SERV FROM PRESIDENT WHERE PARTY <> 'Republican' AND DEATH_AGE > 80
S1 Teknik Informatika - Unijoyo
17
LATIHAN 5 Buat daftar peserta pemilihan presiden yang kalah dengan hasil pungutan suara antara 150 – 250! Cantumkan juga tahun pemilihannya! Query: SELECT ELECTION_YEAR, CANDIDATE FROM ELECTION WHERE WINNER_LOSER_INDIC = 'L' AND VOTES BETWEEN 150 AND 250
S1 Teknik Informatika - Unijoyo
18
LATIHAN 6 Buat daftar nama presiden yang dilahirkan di South Carolina, Georgia, Alabama, Lousiana, Florida! Cantumkan juga tahun lahir dan tempat lahirnya, urutkan berdasarkan tahun lahir! Query: SELECT PRES_NAME, BIRTH_YEAR, STATE_BORN FROM PRESIDENT WHERE STATE_BORN IN ('South Carolina', 'Georgia','Alabama','Lousiana', 'Florida') ORDER BY 2
S1 Teknik Informatika - Unijoyo
19