Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

© 2010 © 2010. Rizki Arif Firdaus © 2010 © 2010.

Presentasi serupa


Presentasi berjudul: "© 2010 © 2010. Rizki Arif Firdaus © 2010 © 2010."— Transcript presentasi:

1 © 2010 © 2010

2 Rizki Arif Firdaus © 2010 © 2010

3  Subquery merupakan bentuk query yang berada dalam query lain atau disebut juga nested query atau subselect.  Dengan kata lain, dimungkinkan terdapat statement SELECT di dalam statement SQL lainnya.

4  Contoh: Tampilkan nama mahasiswa dengan angkatan tertua  Dengan Query select biasa: SELECT nama FROM mahasiswa WHERE angkatan = MIN(angkatan);  dalam klausa WHERE tidak boleh ada fungsi AGGREGATE  Dengan Subquery: SELECT nama FROM mahasiswa WHERE angkatan = ( SELECT MIN(angkatan) FROM mahasiswa);

5  Latihan 1 Tampilkan nama mahasiswa yang lahir setelah ‘Cici’ SELECT nama FROM mahasiswa WHERE tanggal_lahir > ( SELECT tanggal_lahir FROM mahasiswa WHERE nama = 'Cici' );

6  Latihan 2 Tampilkan kode dan nama matakuliah yang jumlah sksnya lebih besar dari matakuliah dengan kode ‘MMS2401’ dan disediakan pada semester yang sama dengan matakuliah “Teknik Digital”

7  Latihan 2 SELECT kode_mata_kuliah,nama FROM mata_kuliah WHERE sks > ( SELECT sks FROM mata_kuliah WHERE kode_mata_kuliah = ‘MMS2401' ) AND semester = ( SELECT semester from mata_kuliah WHERE nama = ‘Teknik Digital’);

8 Syntax :  operand IN (subquery)  operand comparison_operator ANY (subquery)  operand comparison_operator ALL (subquery)  EXISTS (subquery) Comparison_operator : =, >, =,, !=,

9  Contoh 1 Tampilkan nama program studi yang terdapat mahasiswanya. SELECT nama FROM program_studi WHERE kode_prodi IN (SELECT DISTINCT kode_prodi FROM mahasiswa);

10  Contoh 1 lagi Tampilkan nama program studi yang tidak punya mahasiswa. SELECT nama FROM program_studi WHERE kode_prodi NOT IN (SELECT DISTINCT kode_prodi FROM mahasiswa);

11  Contoh 2 Tampilkan data mahasiswa yang berusia lebih muda dari SEMBARANG mahasiswa dengan kode prodi ‘IKP’. Data mahasiswa yang ditampilkan yaitu niu, nama, usia, kode prodi.

12  Contoh 2 SELECT niu, nama, ROUND(DATEDIFF(NOW(),tanggal_lahir)/365, 0) AS usia, kode_prodi FROM mahasiswa WHERE tanggal_lahir > ANY( SELECT tanggal_lahir FROM mahasiswa WHERE kode_prodi = 'IKP');

13  Contoh 3 Tampilkan data mahasiswa yang berusia lebih muda dari SEMUA mahasiswa dengan kode prodi ‘IKP’. Data mahasiswa yang ditampilkan yaitu niu, nama, usia, kode prodi.

14  Contoh 3 SELECT niu, nama, ROUND(DATEDIFF(NOW(),tanggal_lahir)/365, 0) AS usia, kode_prodi FROM mahasiswa WHERE tanggal_lahir > ALL( SELECT tanggal_lahir FROM mahasiswa WHERE kode_prodi = 'IKP');

15  Contoh 4 Tampilkan nama prodi dan kode jurusan yang prodinya terdapat dalam tabel mahasiswa. SELECT nama, kode_jurusan FROM program_studi WHERE EXISTS ( SELECT * FROM mahasiswa WHERE mahasiswa.kode_prodi = program_studi.kode_prodi);

16  View merupakan query yang disimpan. Ketika dipanggil, view akan menampilkan hasil query yang disimpan tersebut.  View berperan sebagai virtual tabel.

17  Syntax: CREATE [or REPLACE] VIEW view_name AS select_statement ALTER [or REPLACE] VIEW view_name AS select_statement DROP VIEW view_name SELECT * FROM view_name

18  Contoh: CREATE VIEW usia AS SELECT niu, nama, ROUND(DATEDIFF(NOW(),tanggal_lahir)/365,0) FROM mahasiswa; ALTER VIEW usia AS SELECT niu, nama, ROUND(DATEDIFF(NOW(),tanggal_lahir)/365,0) AS usia FROM mahasiswa;

19  Latihan 1 Buat view untuk menampilkan data mahasiswa yang berisi nama dan nim. Format nim: [kode prodi] - [nif], misal: ‘TEI-3’. CREATE VIEW namanim AS SELECT nama,CONCAT(kode_prodi,'-',nif) AS nim FROM mahasiswa;

20  Latihan 2 Ubahlah view pada latihan 1 dengan format nim: [angkatan] / [niu] / [kode prodi] / [nif], misal: ’09/2/IKP/2’. ALTER VIEW namanim AS SELECT nama,CONCAT(SUBSTRING(angkatan,3,2), '/',niu,'/',kode_prodi,'/',nif) AS nim FROM mahasiswa;

21  Digunakan untuk menampilkan data dari banyak tabel (lebih dari satu tabel).  Macam-macam join: [INNER | CROSS] JOIN {LEFT | RIGHT} [OUTER] JOIN NATURAL {LEFT | RIGHT} [OUTER] JOIN  Dalam MySQL, INNER JOIN = CROSS JOIN  INNER JOIN juga dapat diganti dengan koma (,) + klausa WHERE

22  Contoh INNER JOIN: Gabungkan semua data pada tabel mahasiswa dan tabel program_studi SELECT * FROM mahasiswa INNER JOIN program_studi ON mahasiswa.kode_prodi = program_studi.kode_prodi; atau SELECT * FROM mahasiswa INNER JOIN program_studi USING (kode_prodi);

23  Contoh LEFT JOIN: Gabungkan semua data pada tabel mahasiswa dan tabel program_studi SELECT * FROM mahasiswa LEFT JOIN program_studi ON mahasiswa.kode_prodi = program_studi.kode_prodi; atau SELECT * FROM mahasiswa LEFT JOIN program_studi USING(kode_prodi);

24  Contoh NATURAL LEFT JOIN: Gabungkan semua data pada tabel jurusan dan tabel program_studi SELECT * FROM jurusan NATURAL LEFT JOIN program_studi;

25 Kesimpulan:  Dengan klausa ON, INNER JOIN = CROSS JOIN = JOIN.  Jika klausa ON diganti dengan klausa WHERE, INNER JOIN = tanda koma (,).  Penggunaan klausa USING dapat digunakan untuk menghilangkan redundansi kolom (kolom yang sama).  Pada INNER JOIN, data mengikuti operand kiri sedangkan urutan baris mengikuti operand kanan.  Pada LEFT JOIN, data dan urutan mengikuti operand kiri.  Pada RIGHT JOIN, data dan urutan mengikuti operand kanan.

26 Kesimpulan (lanjutan):  Pada NATURAL {LEFT | RIGHT} JOIN, tidak perlu digunakan klausa ON, WHERE, atau USING karena kolom yang sama ditampilkan satu kali saja.  Pada NATURAL JOIN, yang ditampilkan hanya baris yang memiliki data yang sama pada kolom yang sama.  Pada NATURAL LEFT JOIN, urutan kolom mengikuti operand kiri sedangkan data mengikuti operand kanan.  Pada NATURAL RIGHT JOIN, urutan kolom mengikuti operand kanan sedangkan data mengikuti operand kiri.

27  Latihan 1 Tampilkan nama mahasiswa beserta nama matakuliah yang diambil. SELECT mahasiswa.nama AS mahasiswa, mata_kuliah.nama AS ‘mata kuliah’ FROM mahasiswa, krs, mata_kuliah WHERE mahasiswa.niu = krs.niu AND kode_mk = kode_mata_kuliah;

28  Latihan 2 Tampilkan nama dan nim mahasiswa dengan format nim: [angkatan]/[niu]/[kode fakultas]/[nif], misal : 08/3/PA/3 SELECT mahasiswa.nama, concat( substring( angkatan, 3, 2 ), '/', niu, '/', jurusan.kode_fakultas, '/', nif ) AS nim FROM mahasiswa, program_studi, jurusan WHERE mahasiswa.kode_prodi = program_studi.kode_prodi AND program_studi.kode_jurusan = jurusan.kode_jurusan;

29  Latihan 3 Tampilkan nama mahasiswa beserta nama program studi, nama jurusan, dan nama fakultas. SELECT mahasiswa.nama AS mahasiswa, program_studi.nama AS 'program studi', jurusan.nama AS jurusan, fakultas.nama AS fakultas FROM mahasiswa, program_studi, jurusan, fakultas WHERE mahasiswa.kode_prodi = program_studi.kode_prodi AND program_studi.kode_jurusan = jurusan.kode_jurusan AND jurusan.kode_fakultas = fakultas.kode_fakultas;


Download ppt "© 2010 © 2010. Rizki Arif Firdaus © 2010 © 2010."

Presentasi serupa


Iklan oleh Google