Gambaran
Malas dan bagikan catatan dari koleksi sebelumnya. Semua orang tahu bahwa sintaks SQL Join memiliki banyak inner, outer dan left. Terkadang, agak tidak jelas seperti apa hasil set dari Select. Hari ini saya menggunakan gambar. Perbedaan antara metode koneksi sql: Gabung dalam, Gabung Kiri, Gabung Kanan, Gabung Luar Penuh, Gabungan, Semua Gabungan.
Lingkungan dasar
Misalkan kita memiliki dua tabel. Tabel A adalah tabel di sebelah kiri. Tabel B adalah tabel di sebelah kanan. Masing-masing memiliki empat record, dua di antaranya memiliki nama yang sama, seperti yang ditunjukkan di bawah ini:
Mari kita tunjukkan Perbedaan antara inner join, left join, right join, full outer join, union, union semua:
1. GABUNG DALAM
PILIH * DARI TableA GABUNG DALAM TableB ON TableA.name = TableB.name
2. GABUNG LENGKAP
(1) PILIH * DARI TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
Catatan: Saat mendapatkan data untuk ditampilkan, perhatikan penilaian NULL.
(2) PILIH * DARI TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name dengan TableA.id null atau TableB.id null
Ringkasan: Dengan menggunakan penilaian ISNULL pada saat yang sama, kumpulan data tanpa persimpangan antara A dan B dapat diperoleh. Ini sangat berguna dan dapat digunakan untuk melengkapi data tentang produksi atau data pengujian.
3. BERGABUNG
(1) pilih * dari TableA LEFT OUTER JOIN TableB on TableA.name = TableB.name
(2) pilih * dari TableA LEFT OUTER JOIN TableB pada TableA.name = TableB.name dimana TableB.id adalah null
4. GABUNG KANAN
RIGHT OUTERJOIN didasarkan pada tabel berikut, mirip dengan penggunaan LEFT OUTER JOIN. Tidak diperkenalkan di sini.
5. UNION melawan UNI SEMUA
Operator UNION digunakan untuk menggabungkan set hasil dari dua atau lebih pernyataan SELECT.
Catatan: Pernyataan SELECT di dalam UNION harus memiliki jumlah kolom yang sama. Kolom juga harus memiliki tipe data yang serupa. Pada saat yang sama, urutan kolom di setiap pernyataan SELECT harus sama. UNION hanya memilih record, sedangkan UNION ALL akan mendaftar semua record.
(1) PILIH nama DARI TabelA PERSATUAN PILIH nama DARI TableB
Pilih nilai yang berbeda
(2) PILIH nama DARI TabelA UNI SEMUA PILIH nama DARI TableB
Buat daftar semua
(3) PILIH * DARI TableA PERSATUAN PILIH * DARI TableB
Karena Bajak Laut id 1 dan Bajak Laut id 2 tidak sama, mereka tidak akan digabungkan.
Penjelasan: Gabungan silang "Kumpulan titik potong", gabungan semacam ini tidak dapat diwakili oleh diagram teks, karena merupakan kombinasi N * M dari data tabel A dan tabel B, yaitu hasil kali Kartesius. Ekspresi tersebut adalah sebagai berikut: SELECT * FROM TableA CROSS JOIN TableB
Produk Cartesian ini akan menghasilkan record 4 x 4 = 16. Secara umum, kita jarang menggunakan sintaks ini. Tetapi kita harus berhati-hati, jika Anda tidak menggunakan pernyataan pilih bersarang, sistem umum akan menghasilkan produk Cartesian dan kemudian memfilter. Ini sangat berbahaya untuk performa, terutama jika mejanya besar.
Ada beberapa metode koneksi untuk sql: inner join, left join, right join, full outer join, union, union semua diperkenalkan di sini. Volume data yang berbeda juga perlu dipertimbangkan secara berbeda. Misalnya, Tabel A memiliki angka kecil dan Tabel B Ada ratusan ribu data, jelas tidak pantas menggunakan left join, Anda harus menggunakan inner join untuk mengurangi jumlah record yang ditemukan.
Nanti saya akan share lebih banyak tentang DBA, dan teman-teman yang tertarik bisa mengikutinya! !
- Perangkat lunak yang diperlukan untuk pengukuran suhu industri, berbagi perangkat lunak hijau termokopel dan tabel indeks tahan panas!
- Zhang Huimei terlalu gemuk untuk dikenali. Media Hong Kong menunjukkan lima alasan mengapa metode Dong Chou Amei tidak dapat dipelajari
- Deng Chao mengirim esai panjang untuk mengungkapkan kemarahannya pada Niangniang. Kalimat terakhir dipuji sebagai prescient