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
Peranan MySQL: Pangkalan Data dalam Aplikasi WebPeranan MySQL: Pangkalan Data dalam Aplikasi WebApr 17, 2025 am 12:23 AM

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

MySQL: Membina pangkalan data pertama andaMySQL: Membina pangkalan data pertama andaApr 17, 2025 am 12:22 AM

Langkah -langkah untuk membina pangkalan data MySQL termasuk: 1. Buat pangkalan data dan jadual, 2. Masukkan data, dan 3. Pertama, gunakan pernyataan CreatedataBase dan createtable untuk membuat pangkalan data dan jadual, kemudian gunakan pernyataan InsertInto untuk memasukkan data, dan akhirnya gunakan pernyataan PILIH untuk menanyakan data.

MySQL: Pendekatan mesra pemula untuk penyimpanan dataMySQL: Pendekatan mesra pemula untuk penyimpanan dataApr 17, 2025 am 12:21 AM

MySQL sesuai untuk pemula kerana mudah digunakan dan berkuasa. 1.MYSQL adalah pangkalan data relasi, dan menggunakan SQL untuk operasi CRUD. 2. Ia mudah dipasang dan memerlukan kata laluan pengguna root untuk dikonfigurasi. 3. Gunakan Masukkan, Kemas kini, Padam, dan Pilih untuk Melaksanakan Operasi Data. 4. Orderby, di mana dan menyertai boleh digunakan untuk pertanyaan yang kompleks. 5. Debugging memerlukan memeriksa sintaks dan gunakan Jelaskan untuk menganalisis pertanyaan. 6. Cadangan pengoptimuman termasuk menggunakan indeks, memilih jenis data yang betul dan tabiat pengaturcaraan yang baik.

Adakah MySQL Beginner-mesra? Menilai lengkung pembelajaranAdakah MySQL Beginner-mesra? Menilai lengkung pembelajaranApr 17, 2025 am 12:19 AM

MySQL sesuai untuk pemula kerana: 1) mudah dipasang dan mengkonfigurasi, 2) sumber pembelajaran yang kaya, 3) sintaks SQL intuitif, 4) sokongan alat yang kuat. Walau bagaimanapun, pemula perlu mengatasi cabaran seperti reka bentuk pangkalan data, pengoptimuman pertanyaan, pengurusan keselamatan, dan sandaran data.

Adakah SQL adalah bahasa pengaturcaraan? Menjelaskan istilahAdakah SQL adalah bahasa pengaturcaraan? Menjelaskan istilahApr 17, 2025 am 12:17 AM

Ya, sqlisaprogramminglanguagespecializedfordatamanagement.1) it'sdeclarative, focusingonwhathattoachieverthanhan.2) sqlisesessentialforquerying, memasukkan, mengemas kini, dandeleletingdatainrelationaldatabases.3)

Terangkan sifat asid (atom, konsistensi, pengasingan, ketahanan).Terangkan sifat asid (atom, konsistensi, pengasingan, ketahanan).Apr 16, 2025 am 12:20 AM

Atribut asid termasuk atom, konsistensi, pengasingan dan ketahanan, dan merupakan asas reka bentuk pangkalan data. 1. Atomicity memastikan bahawa urus niaga sama ada berjaya atau gagal sepenuhnya. 2. Konsistensi memastikan pangkalan data tetap konsisten sebelum dan selepas transaksi. 3. Pengasingan memastikan bahawa urus niaga tidak mengganggu satu sama lain. 4. Kegigihan memastikan data disimpan secara kekal selepas penyerahan transaksi.

MySQL: Sistem Pengurusan Pangkalan Data vs Bahasa PengaturcaraanMySQL: Sistem Pengurusan Pangkalan Data vs Bahasa PengaturcaraanApr 16, 2025 am 12:19 AM

MySQL bukan sahaja sistem pengurusan pangkalan data (DBMS) tetapi juga berkait rapat dengan bahasa pengaturcaraan. 1) Sebagai DBMS, MySQL digunakan untuk menyimpan, menyusun dan mengambil data, dan mengoptimumkan indeks dapat meningkatkan prestasi pertanyaan. 2) Menggabungkan SQL dengan bahasa pengaturcaraan, tertanam dalam Python, menggunakan alat ORM seperti SQLalChemy dapat memudahkan operasi. 3) Pengoptimuman prestasi termasuk pengindeksan, pertanyaan, caching, perpustakaan dan bahagian meja dan pengurusan transaksi.

MySQL: Menguruskan data dengan arahan SQLMySQL: Menguruskan data dengan arahan SQLApr 16, 2025 am 12:19 AM

MySQL menggunakan arahan SQL untuk menguruskan data. 1. Perintah asas termasuk pilih, masukkan, kemas kini dan padam. 2. Penggunaan lanjutan melibatkan fungsi gabungan, subquery dan agregat. 3. Kesilapan umum termasuk isu sintaks, logik dan prestasi. 4. Petua Pengoptimuman termasuk menggunakan indeks, mengelakkan Pilih* dan menggunakan had.

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)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

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