16/12/2010
Structured Query Language - DML
(Pert. 12) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
1
SQL Data Definition Language (DDL) • Perintah DDL dalam SQL meliputi : – CREATE TABLE – membuat tabel baru dalam database – ALTER TABLE – mengubah definisi tabel – DROP TABLE – menghapus tabel – CREATE INDEX – membuat index (search key) – DROP INDEX - menghapus index
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
1
16/12/2010
SQL Data Manipulation Language (DML) • Perintah SQl untuk DML (Data Manipulation Language) antara lain : – – – –
SELECT – Mengekstrak data dari tabel-tabel di database UPDATE – Mengupdate data dalam tabel di database DELETE – Menghapus data dari tabel di database INSERT INTO – Menyisipkan/menambah data baru ke dalam tabel di database
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
ER-D dbCompany
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
2
16/12/2010
Syntax SQL SELECT [DISTINCT] select_list FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC] ]
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
Pernyataan SELECT • Pernyataan SELECT digunakan untuk menyeleksi (memilih) data dari satu atau beberapa tabel. • Hasil tabulasi disimpan dalam tabel hasil (disebut sebagai result-set). • Syntax : SELECT column_name(s) FROM table_name
SELECT [*] [
, , . . ., ] [, , . . . , ] FROM
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
3
16/12/2010
Contoh Pemakaian Select •
Soal : Dapatkan Informasi NIP, Nama Depan, Alamat dan Gaji Pegawai Syntax :
•
SELECT NIP, NmDepan, Alamat, Gaji From Pegawai
Hasil:
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
Klausa Where • WHERE digunakan jika informasi yang ditampilkan (pernyataan SELECT) memiliki kriteria tertentu. • Syntax: SELECT column FROM table WHERE column operator value
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
4
16/12/2010
Operator dalam klausa WHERE • Operator yang dapat digunakan dalam klausa WHERE adalah: Operator = <>
Description Equal (sama dengan) Not equal (tidak sama dengan)
>
Greater than (Lebih dari)
<
Less than (kurang dari)
>=
Greater than or equal (lebih dari sama dengan)
<=
Less than or equal (kurang dari sama dengan)
BETWEEN LIKE
Between an inclusive range Search for a pattern (pencarian dengan pola tertentu)
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
Contoh Pemakaian Klausa Where • Soal: Dapatkan Informasi NIP, Nama Depan, Alamat dan Gaji Pegawai yang gajinya lebih dari 25000 • Syntax: SELECT NIP, NmDepan, Alamat, Gaji From Pegawai Where Gaji>25000
Hasil:
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
5
16/12/2010
PEMETAAN ALJABAR RELASIONAL KE SQL BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
11
Pemetaan Operasi Selection ke SQL Untuk memilih baris tertentu dari sebuah himpunan baris data (record) yang memenuhi kondisi dan membuang baris yang lain. Notasi:
()
Dapatkan pegawai yang gajinya kurang dari 200
Dapatkan pegawai yang nomornya >= 7 dan gajinya kurang dari 200
salary<200(E)
nr>=7
AND salary < 200(E)
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
12
6
16/12/2010
Pemetaan Operasi Projection ke SQL Untuk memilih attribut (kolom) tertentu dari himpunan / sub himpunan dan membuang yang lain. Notasi:
()
Tampilkan gaji pegawai
Tampilkan nomor pegawai Beserta gajinya
salary(E)
nr, salary(E)
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
13
Gabungan Selection & Projection Dapatkan nama dan gaji pegawai yang gajinya kurang dari 200
name, salary(
salary<200(E))
atau step by step Temp salary<200(E) Result name, salary(Temp)
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
14
7
16/12/2010
Pemetaan Cartesian Product (Cross Product) •Pada prakteknya jarang digunakan •Seringkali error •Memberikan hasil yang besar
EXD
SELECT * FROM E, D
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
15
JOIN • Operasi umum yang berguna • Sama dengan cartesian product yang diikuti dengan selection • Lebih efisien untuk menggunakan join secara langsung dari pada cartesian product • SQl query yang sama dapat ditranslasikan ke beberapa pernyataan aljabar relasional yang memberikan hasil yang sama BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
16
8
16/12/2010
Pemetaan INNER JOIN
dept=dnr(E X D)
atau E JOIN dept=dnrD
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
17
Latihan SQL
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
9
16/12/2010
LATIHAN Tuliskan SQL dari latihan berikut
1. Dapatkan nama, alamat dan gaji pegawai yang berada pada departemen research 2. Dapatkan nama, alamat dan no KTP pegawai yang menjadi menjadi supervisor dari pegawai lain 3. Dapatkan nama dan noKTP pegawai beserta nama dan noKTP supervisornya 4. dapatkan nama, alamat dan NoKTP dari pegawai yang menjadi manajer departemen 4 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
19
LATIHAN Tuliskan SQL dari latihan berikut
5. Dapatkan nama, alamat beserta nama proyek dari pegawai yang terlibat di proyek ProductZ 6. Dapatkan nama proyek yang dikedalikan oleh departemen research 7. Dapatkan nama proyek yang berlokasi di houston atau di stafford 8. Dapatkan nama dan lokasi proyek tempat john bekerja BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
20
10
16/12/2010
LATIHAN Tuliskan SQL dari latihan berikut
9. Dapatkan nama dan alamat pegawai laki-laki yang memiliki gaji kurang dari 40000 10. Dapatkan nama dan gaji dari manajer departemen Administration
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
21
Pustaka • Ramakrishnan, Raghu, Gehrke, Johannes. 2003. Database Management Systems, Third Edition. New York: The McGraw-Hill Companies, Inc. • http://www.databasteknik.se/webbkursen/rel alg-lecture/index.html • http://www.w3schools.com/sql
BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011
22
11