KomputerPerisian

MySQL JOIN: perihalan, contoh menggunakan arahan dan cadangan

Perkembangan pangkalan data sumber-sumber Internet praktikal tidak berbeza dari pangkalan data standard yang dibangunkan dalam MS SQL SERVER. Biasanya, untuk sumber tersebut, bahasa MY SQL digunakan, walaupun ia juga boleh digunakan untuk membangunkan produk perisian standard untuk kegunaan tempatan. Tetapi artikel ini bukan tentang perkara ini.

Seringkali apabila bekerja dengan pangkalan data dalam setiap bahasa, tugasnya adalah untuk membuat pilihan data untuk output kepada pelbagai laporan, graf dan sebagainya. Sebagai peraturan, apabila melaksanakan tugas-tugas sedemikian, adalah perlu untuk tidak menggunakan satu, tetapi beberapa jadual, menggabungkannya menjadi satu pertanyaan, dengan sangat merumitkan reka bentuknya. Pada masa yang sama, adalah perlu untuk mengambil kira bagaimana data akan dihasilkan, bagaimana jadual akan "ditarik" dan apa yang akan menjadi hasil yang paling boleh diterima untuk programmer. Untuk menyelesaikan masalah tersebut, salah satu daripada pembinaan standard bahasa MySQL adalah Sertai.

Konsep perkataan Sertai

Bahasa-bahasa pembangunan pangkalan data, tidak kira apa bahasa itu, perkataan standard dari kamus berbahasa Inggeris digunakan sebagai asas (itulah sebabnya, dengan syarat anda tahu bahasa Inggeris, lebih mudah bagi anda untuk bekerja dengan jadual). Untuk melaksanakan sambungan jadual dalam sampel, perkataan yang sama digunakan - Sertai. Dalam bahasa pengaturcaraan pangkalan data My SQL digunakan. Terjemahan perkataan rasmi ini adalah sama seperti dalam bahasa itu sendiri - "penyatuan".

Mentafsirkan MySQL-Bergabung, dan mana-mana daripada mereka, akan sama persis. Jika kita menguraikan tujuan reka bentuk, iaitu skim operasi, kita dapat memperoleh nilai berikut: pembinaan akan membolehkan untuk mengumpulkan medan yang diperlukan dari jadual yang berlainan atau pertanyaan bersarang ke dalam satu sampel.

Jenis pembinaan bagi persatuan

Sekiranya pengaturcara perlu mengumpul sampel dari beberapa jadual dan dia tahu bidang utama di dalamnya dan data yang diperlukan untuk laporan itu, maka salah satu daripada asas pembinaan kesatuan itu boleh digunakan untuk mencapai hasil yang diinginkan. Pembinaan utama (untuk penggabungan meja) adalah empat:

  1. Masuk dalaman.
  2. Cross Join.
  3. Sertai kiri.
  4. Sertai kanan.

Bergantung kepada tugas itu, setiap reka bentuk piawai akan memberikan hasil yang berbeza, yang akan membolehkan anda menerima laporan mengenai parameter yang berbeza dalam masa yang singkat.

Membuat dan populasi jadual untuk kegunaan kemudian

Sebelum memulakan, sebagai contoh, pertimbangkan mekanisme untuk bekerja dengan federasi data, adalah berbaloi untuk menyediakan beberapa jadual, dengan mana kami akan terus bekerja. Ini akan membantu secara visual menunjukkan semua prinsip pengendali, di samping itu, pemula lebih mudah mempelajari semua asas jadual pengaturcaraan.

Jadual pertama akan menerangkan beberapa perkara yang seseorang sentiasa bertemu sepanjang hayatnya.

Dalam jadual kedua, kami menerangkan beberapa sifat objek dari jadual pertama, supaya anda dapat bekerja dengan mereka pada masa akan datang.

Secara umum, dua jadual akan cukup untuk menunjukkan kerja mereka melalui contoh. Kini anda boleh mula mempertimbangkan reka bentuk kami.

Menggunakan Kemasukan Dalaman

Apabila menggunakan MySQL-Join Ineer membina, ia bernilai mengambil kira beberapa ciri-cirinya. Reka bentuk ini membolehkan anda memilih dari kedua-dua jadual sahaja rekod-rekod yang kedua-duanya dalam jadual pertama dan kedua. Bagaimana ia berfungsi? Dalam jadual pertama, kami mempunyai kunci tuan - ID, yang menunjukkan nombor siri rekod dalam jadual.

Apabila mencipta jadual kedua, kunci yang sama digunakan sebagai nombor bersiri, contohnya dapat dilihat dalam angka. Apabila anda memilih data, operator Pilih hanya akan menentukan rekod yang nombor urutnya sama, yang bermaksud ia berada dalam jadual pertama dan kedua.

Apabila menggunakan reka bentuk, anda perlu memahami data yang anda perlukan. Kesilapan yang paling biasa, terutamanya untuk pemrogram pangkalan data pemula , adalah penggunaan yang tidak rasional dan tidak betul dalam reka bentuk Inner Join. Sebagai contoh, MySQL Inner Join, anda boleh mempertimbangkan skrip yang akan dikembalikan kepada kami dari maklumat yang telah dijelaskan dan diisi jadual mengenai objek dan sifatnya. Tetapi ada beberapa cara untuk menggunakan struktur. Dalam hal ini, SQL saya adalah bahasa yang sangat fleksibel. Jadi, anda boleh mempertimbangkan contoh menggunakan MySQL Inner Join.

Gabungkan jadual tanpa menyatakan sebarang parameter. Dalam kes ini, kami mendapat hasil daripada pelan sedemikian:

Jika kami menunjukkan menggunakan perkataan Utilitas "Menggunakan", bahawa perlu mengambil kira kunci utama rekod dalam jadual, hasil pemilihan akan berubah secara radikal. Dalam kes ini, kita mendapat contoh yang akan kembali hanya baris yang mempunyai kunci utama yang sama.

Ia juga mungkin untuk menggunakan varian ketiga menggunakan struktur, apabila dalam pertanyaan, bidang di mana jadual yang akan disertakan harus ditunjukkan melalui kata "on". Dalam kes ini, sampel akan mengembalikan data berikut:

Ciri-ciri penggunaan Sertai Kiri

Jika kita mempertimbangkan cara lain untuk menggabungkan jadual menggunakan MySQL-Join construct, anda dapat melihat perbezaan dalam data yang dihasilkan. Mekanisme sedemikian adalah pembinaan Kiri.

Menggunakan Kiri Sertai membina MySQL mempunyai beberapa ciri dan, seperti Inner, memerlukan pemahaman yang jelas tentang hasil yang perlu diperolehi.

Dalam kes ini, semua rekod dari jadual pertama akan dipilih terlebih dahulu, dan seterusnya rekod dari jadual harta kedua akan dilampirkan kepada mereka. Dalam kes ini, jika terdapat kemasukan dalam jadual pertama, contohnya "bangku", dan dalam jadual kedua tidak ada sifat untuknya, maka pernyataan Kiri akan memaparkan nilai null di hadapan rekod ini, yang memberitahu pengaturcara bahawa tidak terdapat tanda-tanda untuk objek jenis ini .

Menggunakan reka bentuk ini akan membolehkan anda menentukan bidang mana atau, sebagai contoh, barangan di kedai tidak terdedah kepada harga, tempoh jaminan dan sebagainya.

Contoh kiri

Untuk memeriksa Kiri Sertai pengendali membina MySQL dalam amalan, kami menggunakan jadual yang telah diterangkan sebelumnya. Katakanlah, anda perlu memilih keseluruhan senarai produk yang ada di kedai, dan periksa yang mana tidak ditandai dengan tanda atau sifat. Dalam kes ini, sampel akan memaparkan semua produk di skrin, dan bagi mereka yang tidak mempunyai harta, nilai kosong akan dipaparkan.

Menggunakan Di mana dalam Sertai membina

Sebagai parameter, peserta boleh memasukkan bukan sahaja bidang yang anda mahu sambungkan ke jadual, tetapi juga boleh memasukkan operator klausa Di mana.

Sebagai contoh, pertimbangkan skrip yang sepatutnya kembali kepada kami hanya rekod yang tidak mempunyai ciri. Dalam kes ini, dalam membina Sertai, anda mesti menambah kenyataan keadaan dan nyatakan dengan tepat apa yang anda ingin pulangkan.

Apabila digunakan dalam MySQL Join - Di mana, anda perlu memahami dengan jelas bahawa hanya rekod-rekod yang mana syarat yang ditetapkan akan ditunjukkan dan pemilihan akan kelihatan seperti ini:

Permintaan semacam itu membolehkan anda membuat pilihan pada data tertentu yang berkaitan dengan keadaan yang dipilih oleh pengaturcara. Terdapat beberapa syarat sedemikian, tetapi pada masa yang sama menentukan parameter pemilihan data dari gabungan jadual.

Menggunakan Sertai untuk menukar data dalam jadual

Konstruksinya menyertai, sebenarnya, sejagat. Ia bukan sahaja membolehkan membuat pelbagai sampel, tetapi juga termasuk dalam permintaan dari satu hingga beberapa jadual, masukkan syarat tambahan ke dalam sampel. Reka bentuk juga boleh digunakan untuk operasi data lain. Jadi, Sertai boleh digunakan untuk menukar data dalam jadual. Sebaliknya, untuk memperjelaskan keadaan dalam jadual atau dalam kes itu, jika anda ingin mengemas kini data dalam beberapa jadual untuk keadaan yang sama.

Sebagai contoh, pertimbangkan masalah ini. Tiga jadual diberikan di mana terdapat beberapa data. Anda perlu membuat perubahan kepada data dalam kedua-dua jadual menggunakan pertanyaan tunggal. Hanya untuk menyelesaikan tugas semacam ini, anda boleh menggunakan Join membina dalam perintah Kemas Kini. Jenis Join membina sendiri bergantung, seperti dalam hal pengambilan data, pada hasil programmer ingin mendapatkannya.

Mari kita pertimbangkan contoh paling mudah. Anda perlu mengemas kini pertanyaan yang sama untuk keadaan yang sama. Pertanyaan tersebut dibina untuk mengoptimumkan kerja dengan pangkalan data. Mengapa menulis pertanyaan berbeza untuk setiap jadual, jika anda boleh melakukan semua manipulasi data dengan satu pertanyaan? Kemas Kini MySQL Bergabung dalam contoh ini ialah:

Membina pertanyaan kompleks

Seringkali apabila bekerja dengan pangkalan data, adalah perlu untuk membina pertanyaan bukan sahaja dengan penggabungan beberapa jadual, tetapi juga dengan penggunaan subquery. Tugas-tugas semacam itu agak sukar difahami untuk pemrogram pangkalan data pemula. Kesukaran ialah anda perlu berfikir melalui setiap langkah, menentukan data yang mana jadual atau pertanyaan yang anda perlukan dan bagaimana anda perlu bekerjasama dengannya pada masa akan datang.

Untuk pemahaman yang lebih spesifik, anda boleh mempertimbangkan (dalam MySQL Sertai) contoh pertanyaan kompleks. Jika anda seorang pemula dan baru mula bekerja dengan pangkalan data, maka latihan sedemikian hanya akan memberi manfaat. Pilihan yang ideal akan menjadi contoh MySQL Kiri Sertai.

Permintaan ini akan mengembalikan 58 rekod kontrak jualan yang mana baki dana untuk tarikh yang dipilih diisi atau wujud. Dalam kes ini, ini adalah tarikh semasa. Juga dalam sampel keadaan itu ditambah bahawa nama kontrak harus mengandungi simbol "123". Maklumat yang dipaparkan pada skrin (data) akan disusun - memerintahkan oleh nombor kontrak.

Contoh berikut akan memaparkan butir-butir semua bayaran di mana nombor kontrak ditentukan.

Menggunakan Subqueries

Seperti yang dinyatakan sebelum ini, apabila bekerja dengan pangkalan data, anda boleh menggabungkan bukan sahaja jadual, tetapi juga jadual dengan pertanyaan. Reka bentuk ini digunakan terutamanya untuk mempercepat pertanyaan dan mengoptimumkannya.

Sebagai contoh, jika anda hanya perlu memilih dua medan daripada jadual yang mempunyai beberapa ratus bidang dan, katakan, seribu rekod, maka anda harus menggunakan pertanyaan yang akan mengembalikan hanya medan yang diperlukan, dan menggabungkannya dengan sampel data utama. Sebagai contoh MySQL Join Select, anda boleh mempertimbangkan permintaan jenis ini:

Ini bukan semua cara untuk menggunakan pembinaan MySQL standard, tetapi hanya standard. Bagaimana cara untuk menggunakan membina Sertai dan di mana bentuknya, pemrogram itu memutuskan, tetapi perlu diingati dan mengambil kira keputusan yang perlu diperoleh apabila pertanyaan dijalankan.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ms.birmiss.com. Theme powered by WordPress.