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

Slides:



Advertisements
Presentasi serupa
SQL (Structured Query Language)
Advertisements

SQL (Struktured Query Language)
SQL ADVANCEADVANCE. SQL Data Type MySQL Text Type : 9/7/2014By : Suwondo, S.Kom2.
Database Relasi Pertemuan 3.
RELASI & JOIN.
SUB QUERY.

QUERY Antar Tabel Basis Data.
DML Lanjutan Pertemuan Minggu Ke-10.
SQL.
Sistem Manajemen Basis Data
Fungsi SQL lanjut dan pengambilan data dari multiple table.
Pertemuan : 8 Basis Data Terapan
Pertemuan : Basisdata Terapan
5. MENAMPILKAN DATA DARI BEBERAPA TABEL
JOINED TABLE Untuk menampilkan data dari dua atau lebih tabel, maka tabel – tabel tersebut harus dihubungkan terlebih dahulu  JOIN.
SQL 2. Database TRANSACTION Tabel yang terlibat : Customer berisi data pelanggan (nama, alamat, dll) OderInfo berisi info pemesanan oleh pelanggan (tgl.
Microsoft SQL Server DDL dan DML dasar
SQL.
INNER JOIN.
Praktikum Database Subquery Lanjutan dan View Abdul Kadir.
QUERY Antar Tabel Basis Data.
Fungsi JOIN.

MANAJEMEN BASIS DATA Pertemuan 6 SQL - SELECT.
P E R T E M U A N 12 SISTEM BASIS DATA.
SQL: DML (2) Basis Data Pertemuan 07.
BAHASA QUERY TERAPAN OLEH : HARSITI, ST.
SQL (Structured Query Language)
MANAJEMEN BASIS DATA Pertemuan 8 SUBQUERY.
SQL (Structure Query Language)
JOIN Kuliah Tambahan.
Q U E R Y V I E W & Q U E R Y D E S I G N
QUERY Antar Tabel Basis Data.
Structure Query Language
Menampilkan Data dari Beberapa Tabel
Teknik Informatika Basis Data (MMT-042)
Rekayasa Perangkat Lunak Materi 3 (Database)
TABEL VIRTUAL (VIEW) SYAIFUL HUDA, S.Kom.
MENAMPILKAN DATA DARI BEBERAPA TABEL
Bahasa query terpan.
JOIN.
Pemrograman Visual Akuntansi III
Praktikum Database Subquery Lanjutan dan View
View dan Trigger Materi 5
Adi Rachmanto – UNIKOM Q U E R Y Adi Rachmanto – UNIKOM
Menggunakan Subquery untuk Memecahkan Query Query
JOIN.
Using Subqueries to Solve Queries
Adi Rachmanto – UNIKOM Q U E R Y D E S I G N Adi Rachmanto – UNIKOM
Praktikum Berkas dan Basis Data
Oleh : Henry Primandari,S.Kom (2006) STMIK MDP Palembang
Sistem Manajemen Basis Data
Zeni Wahyu NurLaili Linda TrisiaHardianti
MENAMPILKAN DATA DARI BEBERAPA TABEL
Structured Query Language
Query dalam sql server Pertemuan 6.
Sesi VI Query dengan SQL
Pertemuan 7 SQL – SELECT (Join Table)
BAHASA QUERY KOMERSIAL
8. MENAMPILKAN DATA DARI BEBERAPA TABEL
Adi Rachmanto – UNIKOM Q U E R Y Adi Rachmanto – UNIKOM
Adi Rachmanto – UNIKOM Q U E R Y Adi Rachmanto – UNIKOM
Structure Query Language (II)
Aplikasi Database Dosen : Sarwo, Skom,.Mkom Url :
.: VIEW :. DB - Wiji Setiyaningsih, M.Kom
5. MENAMPILKAN DATA DARI BEBERAPA TABEL
SUB QUERY DAN VIEW Praktikum SBD – 7 & 8.
MENAMPILKAN DATA DARI BEBERAPA TABEL
BAHASA BASIS DATA Retreiving Data dan Manipulation Function
Transcript presentasi:

© 2010 © 2010

Rizki Arif Firdaus © 2010 © 2010

 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.

 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);

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

 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”

 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’);

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

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

 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);

 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.

 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');

 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.

 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');

 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);

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

 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

 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;

 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;

 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;

 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

 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);

 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);

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

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.

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.

 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;

 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;

 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;