Rumah > pangkalan data > tutorial mysql > pertanyaan mysql kunci asing

pertanyaan mysql kunci asing

WBOY
Lepaskan: 2023-05-14 10:09:07
asal
2690 orang telah melayarinya

MySQL ialah sistem pengurusan pangkalan data hubungan, dan kunci asing adalah salah satu konsep penting pangkalan data hubungan. Kunci asing ialah kekangan yang digunakan untuk menerangkan hubungan antara jadual, yang boleh memastikan integriti dan konsistensi data. Menyoal kunci asing dalam MySQL juga merupakan operasi yang sangat penting. Artikel ini akan memperkenalkan cara menggunakan MySQL untuk menanyakan kunci asing.

1. Apakah kunci asing?

Kunci asing ialah satu atau lebih lajur dalam jadual data dalam jadual lain Atau padankan kunci utama dalam jadual lain. Jadual yang dipadankan ini dipanggil jadual rujukan. Dalam pangkalan data hubungan, kita boleh menggunakan kunci asing apabila kita ingin memautkan dua atau lebih jadual.

Tujuan kunci asing adalah untuk memastikan integriti dan konsistensi data. Apabila kami menambah baris data pada jadual, jika data perlu sepadan dengan beberapa data dalam jadual lain, dan jika perhubungan yang sepadan diwujudkan melalui kunci asing, maka MySQL akan menyemak kunci asing dalam data yang baru ditambah , kepada lihat jika data wujud dalam jadual yang dirujuk Jika ia tidak wujud, ia akan menolak untuk memasukkan data dalam jadual.

2. Cara mencipta kunci asing

Terdapat banyak cara untuk mencipta kunci asing dalam MySQL Berikut adalah dua cara biasa.

1. Gunakan pernyataan ALTER TABLE

Format sintaks untuk menambah kunci asing melalui pernyataan ALTER TABLE adalah seperti berikut:

nama jadual ALTER TABLE ADD CONSTRAINT nama kunci asing KUNCI ASING (nama lajur ) RUJUKAN Nama jadual (nama lajur) jadual lain

Antaranya, nama kunci asing ialah nama yang diberikan kepada kunci asing Nama ini harus unik, dan nama lajur merujuk kepada nama lajur jadual semasa Petunjuk dan nama lajur jadual lain ialah nama jadual yang dirujuk dan nama lajur jadual yang dirujuk.

Sebagai contoh, kami mempunyai jadual pekerja (pekerja) dan jadual jabatan (jabatan) Mereka dipautkan melalui kunci asing Kami boleh menggunakan pernyataan SQL berikut untuk mencipta kunci asing ini.

ALTER TABLE employees ADD CONSTRAINT dept_fk FOREIGN KEY (dept_id) REFERENCES departments (dept_id);
Salin selepas log masuk

Pernyataan ini bermaksud menambah kunci asing bernama dept_fk pada jadual pekerja (pekerja dept_fk menunjuk ke lajur dept_id jadual pekerja, yang merujuk kepada lajur dept_id jadual jabatan).

2. Tentukan kunci asing semasa membuat jadual

Menentukan kunci asing semasa membuat jadual juga merupakan cara biasa. Format sintaks adalah seperti berikut:

CREATE TABLE 表名 (
列名 数据类型,
外键名称 FOREIGN KEY (列名) REFERENCES 另一个表格的表名 (列名)
);
Salin selepas log masuk

Contohnya, untuk mencipta jadual pekerja (pekerja) dan jadual jabatan (jabatan), dan gunakan lajur dept_id sebagai kunci asing jadual pekerja untuk memautkan dept_id lajur jadual jabatan, anda boleh menggunakan pernyataan SQL berikut.

CREATE TABLE employees (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
dept_id INT,
PRIMARY KEY (id),
FOREIGN KEY (dept_id) REFERENCES departments (dept_id)
)
Salin selepas log masuk

3. Bagaimana untuk menanyakan kunci asing

Selepas kunci asing diwujudkan dalam MySQL, kita boleh menggunakan pernyataan pertanyaan MySQL untuk menanyakan kunci asing. Format sintaks untuk menanyakan kunci asing adalah seperti berikut:

SELECT * FROM 表名 WHERE 列名 IS NULL;
Salin selepas log masuk

Pernyataan ini mengembalikan data dengan nama lajur kosong dalam jadual Jika lajur ini ditakrifkan sebagai kunci asing, maka hasil pertanyaan ialah data dalam jadual dengan kunci asing Tiada baris data yang sepadan. Hasil pertanyaan ini sangat berguna, ia boleh membantu kami mencari rekod yang perlu diselesaikan secara manual dan tidak dipadankan dengan betul.

Sebagai contoh, kami mempunyai jadual jabatan dan lajur dept_idnya ditakrifkan sebagai kunci asing Jika kami ingin menanyakan rekod yang tidak sepadan dengan jadual jabatan, kami boleh menggunakan pernyataan SQL berikut:

SELECT * FROM departments WHERE dept_id NOT IN (SELECT dept_id FROM employees);
Salin selepas log masuk

Pernyataan ini bermaksud untuk menanyakan data dept_id dalam jadual jabatan yang tidak termasuk dalam jadual pekerja.

4. Ringkasan

MySQL menanyakan kunci asing ialah operasi yang sangat penting. Melalui definisi dan pertanyaan kunci asing, kami boleh memastikan integriti dan konsistensi data dalam pangkalan data, mencegah ralat yang tidak perlu, dan menjadikan data lebih tepat dan boleh dipercayai. Apabila menggunakan MySQL, perhatikan definisi dan pertanyaan kunci asing untuk mengelakkan ralat yang tidak perlu disebabkan oleh kekangan kunci asing.

Atas ialah kandungan terperinci pertanyaan mysql kunci asing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan