Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mencipta dan menanyakan kunci asing dalam mysql

Bagaimana untuk mencipta dan menanyakan kunci asing dalam mysql

PHPz
PHPzke hadapan
2023-05-30 21:55:303991semak imbas

1. Apakah kunci asing

Kunci asing ialah satu atau lebih lajur dalam jadual dalam lajur ini atau berbilang lajur Nilai mesti sepadan dengan data dalam jadual lain atau kunci utama dalam jadual lain. Jadual yang dipadankan ini dipanggil jadual rujukan. Kunci asing ialah mekanisme dalam pangkalan data hubungan yang digunakan untuk menyertai dua atau lebih jadual.

Tujuan kunci asing adalah untuk memastikan integriti dan konsistensi data. Apabila kami menambah baris data pada jadual, jika data itu 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);

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 另一个表格的表名 (列名)
);

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)
)

3. Cara membuat pertanyaan kekunci asing

Setelah kunci asing diwujudkan dalam MySQL, anda boleh menggunakan pernyataan pertanyaan MySQL untuk menanyakannya. Format sintaks untuk menanyakan kunci asing adalah seperti berikut:

SELECT * FROM 表名 WHERE 列名 IS NULL;

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. Keputusan pertanyaan ini sangat berguna dalam membantu kami menentukan rekod yang tidak dipadankan dengan betul dan perlu diselesaikan secara manual.

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);

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

Atas ialah kandungan terperinci Bagaimana untuk mencipta dan menanyakan kunci asing dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam