Dalam pangkalan data MySQL, kunci asing bermakna satu atau lebih lajur dalam satu jadual boleh merujuk kepada lajur dalam jadual lain, membentuk hubungan antara jadual induk dan jadual hamba. Kunci asing adalah salah satu cara penting untuk memastikan integriti dan konsistensi data. Walau bagaimanapun, dalam pembangunan sebenar, kita selalunya perlu menanyakan data yang dikaitkan dengan kunci asing, dan operasi pertanyaan yang melibatkan kunci asing memerlukan perhatian kepada beberapa isu.
Artikel ini akan memperkenalkan secara terperinci pengetahuan berkaitan kekunci asing pertanyaan MySQL.
1. Pengenalan kepada kunci asing
Kunci asing, juga dikenali sebagai kunci luaran dan kunci berkaitan, ialah kekangan yang digunakan dalam pangkalan data MySQL untuk mengekalkan integriti dan konsistensi data. Ia mengaitkan lajur satu jadual dengan lajur jadual lain.
Apabila jadual mempunyai hubungan kunci asing dengan jadual lain, ia membentuk hubungan antara jadual induk dan jadual hamba. Lajur jadual induk dipanggil kunci utama, dan lajur jadual hamba dipanggil kunci asing.
Kekangan kunci asing boleh dibahagikan kepada dua kategori:
1 Kemas kini Cascade (KEMASKINI CASCADE): Apabila kunci utama jadual induk dikemas kini, kunci asing jadual hamba akan. dikemas kini dengan sewajarnya.
2. Padam lata (CASCADE DELETE): Apabila kunci utama jadual utama dipadamkan, kunci asing jadual hamba juga akan dipadamkan dengan sewajarnya.
2. Pertanyaan kunci asing
1 Pertanyaan kunci asing tunggal
Apabila kita perlu menanyakan data yang dikaitkan dengan kunci asing dalam lajur jadual, kita boleh menggunakan INNER JOIN melaksanakan pertanyaan berkaitan. Operasi khusus adalah seperti berikut:
SELECT 表1.列1, 表2.列2 FROM 表1 INNER JOIN 表2 ON 表1.外键列 = 表2.主键列
Antaranya, jadual 1 dan jadual 2 adalah jadual yang perlu dikaitkan, lajur 1 adalah lajur untuk disoal dalam jadual 1, lajur 2 adalah lajur yang perlu ditanya dalam jadual 2, dan lajur kunci asing ialah lajur dalam jadual 1 yang dikaitkan dengan jadual 2, dan lajur kunci utama ialah lajur kunci utama dalam jadual 2.
Contoh:
Kami mempunyai dua meja, satu meja pelajar dan satu lagi meja gred. Jadual pelajar mempunyai medan nombor pelajar dan jadual gred mempunyai medan kunci asing yang berkaitan dengan medan nombor pelajar dalam jadual pelajar. Kami perlu menanyakan nama, mata pelajaran dan gred pelajar dalam jadual gred Operasi khusus adalah seperti berikut:
SELECT s.name, c.subject, c.score FROM student s INNER JOIN score c ON s.sid = c.sid
2. Tanya berbilang kunci asing
Apabila kita perlu bertanya berbilang asing perkaitan utama jadual Semasa mengumpul data, kami boleh menggunakan berbilang INNER JOIN untuk melaksanakan pertanyaan berkaitan. Operasi khusus adalah seperti berikut:
SELECT 表1.列1, 表2.列2, 表3.列3, … FROM 表1 INNER JOIN 表2 ON 表1.外键列1 = 表2.主键列1 INNER JOIN 表3 ON 表2.外键列2 = 表3.主键列2 …
Antaranya, Jadual 1, Jadual 2, dan Jadual 3 adalah jadual yang perlu dikaitkan, Lajur 1 ialah lajur untuk disoal dalam Jadual 1, dan Lajur 2 ialah lajur untuk disoal dalam Jadual 2. Lajur 3 ialah lajur untuk disoal dalam jadual 3, lajur kunci asing 1 ialah lajur dalam jadual 1 yang dikaitkan dengan jadual 2, lajur kunci asing 2 ialah lajur dalam jadual 2 yang dikaitkan dengan jadual 3, dan lajur kunci utama 1 ialah lajur dalam jadual 2 Lajur kunci utama , lajur kunci utama 2 ialah lajur kunci utama dalam jadual 3.
Contoh:
Kami mempunyai tiga meja, satu meja pelajar, satu jadual mata pelajaran, dan satu jadual gred. Jadual pelajar dan jadual mata pelajaran masing-masing mempunyai medan id Terdapat dua medan kunci asing, id pelajar dan id subjek, dalam jadual gred yang berkaitan dengan medan id dalam jadual pelajar dan jadual mata pelajaran. Sekarang kita perlu menanyakan nama, mata pelajaran dan gred pelajar dalam jadual gred Operasi khusus adalah seperti berikut:
SELECT s.name, se.subject, c.score FROM student s INNER JOIN score c ON s.sid = c.sid INNER JOIN subject se ON c.subject_id = se.id
3. Langkah berjaga-jaga untuk menanyakan kunci asing
Apabila menggunakan kunci asing untuk. pertanyaan, anda perlu memberi perhatian kepada Beberapa aspek berikut:
1 Pastikan jadual yang berkaitan sudah wujud.
Sebelum mewujudkan hubungan kunci asing, anda perlu memastikan kedua-dua jadual sudah wujud. Jika tidak, ralat akan berlaku semasa mencipta hubungan kunci asing.
2. Pastikan jenis data dan panjang lajur kunci asing dan lajur kunci utama adalah konsisten.
Apabila mewujudkan perkaitan kunci asing, anda perlu memastikan bahawa jenis data dan panjang lajur kunci asing yang berkaitan dan lajur kunci utama adalah konsisten, jika tidak, ralat akan berlaku. Pada masa yang sama, anda juga perlu memberi perhatian semasa membuat pertanyaan, jika tidak mungkin terdapat masalah dengan hasil pertanyaan.
3. Elakkan nilai NULL dalam lajur kunci asing.
Apabila melakukan pertanyaan kunci asing, elakkan nilai NULL dalam lajur kunci asing. Kehadiran nilai NULL akan menyebabkan hasil pertanyaan yang tidak konsisten.
4. Elakkan gabungan data yang besar.
Apabila melakukan pertanyaan berbilang jadual, berhati-hati untuk mengelakkan gabungan data dalam jumlah besar, jika tidak prestasi pertanyaan akan terjejas dengan teruk.
5. Beri perhatian kepada operasi lata perhubungan utama asing.
Apabila membuat pertanyaan menggunakan perhubungan kunci asing, anda perlu memberi perhatian kepada operasi melata bagi kekangan kunci asing untuk mengelakkan operasi pemadaman atau kemas kini daripada menyebabkan kesan buruk pada jadual yang berkaitan.
4. Ringkasan
Melalui pengenalan artikel ini, saya percaya bahawa semua orang telah memahami konsep asas dan kaedah operasi pertanyaan kunci asing MySQL, serta isu yang perlu dibayar perhatian apabila melakukan pertanyaan kunci asing. Dalam pembangunan sebenar, adalah perlu untuk menggunakan perhubungan utama asing secara munasabah untuk pertanyaan data berdasarkan keperluan perniagaan tertentu dan reka bentuk struktur jadual pangkalan data, yang bukan sahaja dapat meningkatkan kecekapan pertanyaan, tetapi juga memastikan integriti dan konsistensi data.
Atas ialah kandungan terperinci mysql pertanyaan kunci asing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Dalam pengoptimuman pangkalan data, strategi pengindeksan hendaklah dipilih mengikut keperluan pertanyaan: 1. Apabila pertanyaan melibatkan pelbagai lajur dan urutan syarat ditetapkan, gunakan indeks komposit; 2. Apabila pertanyaan melibatkan pelbagai lajur tetapi urutan syarat tidak ditetapkan, gunakan pelbagai indeks lajur tunggal. Indeks komposit sesuai untuk mengoptimumkan pertanyaan berbilang lajur, manakala indeks lajur tunggal sesuai untuk pertanyaan tunggal lajur.

Untuk mengoptimumkan pertanyaan perlahan MySQL, SlowQuerylog dan Performance_Schema perlu digunakan: 1. Dayakan SlowQueryLog dan tetapkan ambang untuk merakam pertanyaan perlahan; 2. Gunakan Performance_Schema untuk menganalisis butiran pelaksanaan pertanyaan, cari kesesakan prestasi dan mengoptimumkan.

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.

MySQL Asynchronous Master-Slave Replikasi membolehkan penyegerakan data melalui binlog, meningkatkan prestasi baca dan ketersediaan yang tinggi. 1) Rekod pelayan induk berubah kepada binlog; 2) Pelayan hamba membaca binlog melalui benang I/O; 3) Server SQL Thread menggunakan binlog untuk menyegerakkan data.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Pemasangan dan operasi asas MySQL termasuk: 1. Muat turun dan pasang MySQL, tetapkan kata laluan pengguna root; 2. Gunakan arahan SQL untuk membuat pangkalan data dan jadual, seperti CreateTatabase dan Createtable; 3. Melaksanakan operasi CRUD, gunakan memasukkan, pilih, kemas kini, padamkan arahan; 4. Buat indeks dan prosedur tersimpan untuk mengoptimumkan prestasi dan melaksanakan logik kompleks. Dengan langkah -langkah ini, anda boleh membina dan mengurus pangkalan data MySQL dari awal.

Innodbbufferpool meningkatkan prestasi pangkalan data MySQL dengan memuatkan data dan halaman indeks ke dalam ingatan. 1) Halaman data dimuatkan ke dalam bufferpool untuk mengurangkan cakera I/O. 2) Halaman kotor ditandakan dan disegarkan ke cakera secara teratur. 3) Pengurusan Data Pengurusan Algoritma LRU Penghapusan. 4) Mekanisme pembacaan memuatkan halaman data yang mungkin terlebih dahulu.

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)