cari
Rumahpangkalan datatutorial mysqlmysql pertanyaan kunci asing

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!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bilakah anda harus menggunakan indeks komposit berbanding indeks lajur tunggal?Bilakah anda harus menggunakan indeks komposit berbanding indeks lajur tunggal?Apr 11, 2025 am 12:06 AM

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.

Bagaimana untuk mengenal pasti dan mengoptimumkan pertanyaan perlahan di MySQL? (Log pertanyaan perlahan, prestasi_schema)Bagaimana untuk mengenal pasti dan mengoptimumkan pertanyaan perlahan di MySQL? (Log pertanyaan perlahan, prestasi_schema)Apr 10, 2025 am 09:36 AM

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: Kemahiran Penting untuk PemajuMySQL dan SQL: Kemahiran Penting untuk PemajuApr 10, 2025 am 09:30 AM

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.

Huraikan proses replikasi master-hamba MySQL.Huraikan proses replikasi master-hamba MySQL.Apr 10, 2025 am 09:30 AM

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: Konsep mudah untuk pembelajaran mudahMysql: Konsep mudah untuk pembelajaran mudahApr 10, 2025 am 09:29 AM

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.

MySQL: Pengenalan mesra pengguna ke pangkalan dataMySQL: Pengenalan mesra pengguna ke pangkalan dataApr 10, 2025 am 09:27 AM

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.

Bagaimanakah kolam penampan InnoDB berfungsi dan mengapa penting untuk prestasi?Bagaimanakah kolam penampan InnoDB berfungsi dan mengapa penting untuk prestasi?Apr 09, 2025 am 12:12 AM

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: Kemudahan Pengurusan Data untuk PemulaMySQL: Kemudahan Pengurusan Data untuk PemulaApr 09, 2025 am 12:07 AM

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.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

mPDF

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

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)