Advanced SQL
Advanced SQL
Ikhtisar
2
tujuan
• mendefinisikan istilah-istilah
3
Isi
• Bergabung vs subquery
4
Isi
5
Pengolahan Beberapa Tabel
• Bergabunglah-operasi relasional yang menyebabkan dua atau lebih tabel dengan domain yang umum
untuk digabungkan menjadi satu tabel atau melihat
• Uni bergabung-mencakup semua kolom dari setiap tabel dalam bergabung, dan sebuah contoh untuk
setiap baris dari setiap tabel
Kolom umum dalam tabel bergabung biasanya kunci utama yang dominan
meja dan kunci asing dari tabel tergantung di 1: hubungan M. 6
Berbeda Bergabung Jenis dengan Hasil
Kembali di Shaded Lokasi
7
Equi-Gabung Contoh
• Untuk setiap pelanggan yang memesan, siapa nama dan nomor urut
pelanggan?
8
Equi-Gabung Contoh - Alternatif Sintaks
INNER JOIN klausa adalah sebuah alternatif untuk klausa WHERE, dan digunakan untuk
mencocokkan kunci primer dan asing.
Sebuah INNER bergabung hanya akan kembali baris dari setiap tabel yang memiliki baris yang
cocok di lain.
query ini menghasilkan hasil yang sama seperti equi-join sebelumnya misalnya. 9
Natural Bergabung Contoh
• Untuk setiap pelanggan yang memesan, siapa nama dan nomor urut
pelanggan?
Bergabunglah dengan melibatkan beberapa tabel di klausa FROM
ON klausul melakukan cek kesetaraan Catatan:. Dari Gambar 7-1, Anda melihat bahwa hanya 10
untuk kolom umum dari dua tabel Pelanggan memiliki hubungan dengan perintah.
• Daftar nama pelanggan, nomor ID, dan nomor pesanan untuk semua pelanggan.
Sertakan informasi pelanggan bahkan untuk pelanggan yang memiliki perintah.
muncul bahkan jika tidak ada data dengan urutan yang cocok baris
pesanan sesuai
11
Outer Join
Hasil
mencakup pelanggan
baris dengan
urutan yang cocok
baris
12
Beberapa Tabel Bergabung Contoh
• Merakit semua informasi yang diperlukan untuk membuat faktur untuk pesanan nomor 1006
bergabung
Setiap pasang tabel membutuhkan kondisi kesetaraan-cek di klausa WHERE, pencocokan kunci
primer terhadap kunci asing. 13
Hasil Dari Empat-Table Bergabung
14
Self-Join Contoh
16
Pengolahan Beberapa Tabel Menggunakan
Subqueries
• Pilihan:
• Dalam kondisi klausa WHERE
• Sebagai “meja” dari klausa FROM
• Dalam klausa HAVING
• Subqueries dapat:
• Noncorrelated-dieksekusi sekali untuk permintaan luar seluruh
• Berkorelasi-dieksekusi sekali untuk setiap baris yang dikembalikan oleh permintaan luar
17
Contoh subquery
• Tampilkan semua pelanggan yang telah menempatkan pesanan
bergabung versi
versi subquery
19
Cont ...
20
Cont ...
21
Berkorelasi VS. Subqueries
Noncorrelated
• subqueries Noncorrelated:
• Jangan tergantung pada data dari permintaan luar
• Mengeksekusi sekali untuk permintaan luar seluruh
22
Pengolahan A Noncorrelated Subquery
23
Berkorelasi Subquery Contoh
• Tampilkan semua perintah yang mencakup furnitur selesai dalam abu alami.
The ADA Operator akan mengembalikan nilai TRUE
jika subquery mengakibatkan satu set non-kosong,
jika tidak ia mengembalikan SALAH
Subquery
baris dari outer query
Catatan: Hanya
perintah yang
melibatkan produk
dengan Alam Ash
akan disertakan
dalam hasil akhir.
25
Lain Subquery Contoh
• Tampilkan semua produk yang harganya standar lebih tinggi dari harga rata-rata
Klausa WHERE biasanya tidak dapat mencakup fungsi agregat, tetapi karena agregat dilakukan di
subquery hasilnya dapat digunakan dalam klausa WHERE permintaan luar itu.
26
UNION Query
• Menggabungkan output (penyatuan beberapa query) bersama-sama ke meja hasil
tunggal
pertanyaan pertama
Menggabungkan
kedua permintaan
27
Menggabungkan Query Menggunakan UNION
Catatan: Dengan
query UNION,
kuantitas dan data
jenis atribut dalam
klausa SELECT dari
kedua query harus
identik.
28
Ekspresi kondisional Menggunakan CASE
Sintaks
29
Tips Untuk Mengembangkan Proses
• Ulasan ERD
• Membangun kesetaraan MANA untuk setiap link
• Fine tune dengan GROUP BY dan HAVING klausa jika diperlukan
• Mempertimbangkan efek pada data yang tidak biasa
30
Pertimbangan permintaan Efisiensi
• Alih-alih SELECT *, mengidentifikasi atribut tertentu dalam klausa SELECT; ini membantu
mengurangi lalu lintas jaringan dari hasil set
• Batasi jumlah subqueries; mencoba untuk membuat segala sesuatu yang dilakukan dalam satu query jika
mungkin
• Jika data yang akan digunakan berkali-kali, membuat query yang terpisah dan menyimpannya sebagai
tampilan
31
Pedoman Untuk Query Desain Lebih Baik
• Transaksi = Sebuah unit diskrit pekerjaan yang harus benar-benar diproses atau tidak
diproses sama sekali
• Mungkin melibatkan beberapa pembaruan
• Jika pembaruan setiap gagal, maka semua pembaruan lainnya harus dibatalkan
• ROLLBACK
• Membatalkan update sejak terakhir COMMIT
33
34
Data Fasilitas Kamus
35
Cont ...
36
Perangkat tambahan SQL baru-baru ini dan
Ekstensi
• jenis pengguna-didefinisikan data (UDT) - SQL: 1999
• Subclass dari jenis standar atau jenis objek
• CREATE TABLE SEPERTI-membuat tabel baru yang mirip dengan yang sudah ada
• MENGGABUNGKAN
• ekstensi pemrograman
37
Cont ...
• Oracle memiliki versi kepatutan disebut PL / SQL, dan Microsoft SQL Server memiliki
Transact / SQL
38
Rutinitas dan Pemicu
• rutinitas
• Programmodules yang mengeksekusi permintaan
39
Pemicu Constrasted dengan Stored
Prosedur
40
Sederhana Pemicu Sintaks, SQL:
2008
41
Sintaks Untuk Membuat Rutin, SQL:
2011
42
43
Tertanam Dan SQL Dinamis
• embedded SQL
• Termasuk pernyataan SQL keras-kode dalam sebuah program yang ditulis dalam bahasa lain seperti C
atau Java
• SQL dinamis
• Kemampuan untuk sebuah program aplikasi untuk menghasilkan kode SQL on the fly, seperti aplikasi
berjalan
44
Alasan Untuk Embed SQL Dalam 3GL
45
Ikhtisar pelajaran
46
Ringkasan
47
Pertanyaan & Jawaban