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 [*] [<kolom1>, <kolom2>, . . ., <kolomN>] [<alias.kolom1>, <alias.kolom2>, . . . , <alias.kolomN>] FROM <nama_tabel> 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: <kondisi pilihan>(<nama relasi>) 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: <daftar attribut>(<nama relasi>) 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