Konsep dan aplikasi praktikal kunci asing dalam MySQL

王林
Lepaskan: 2024-03-16 12:42:03
asal
902 orang telah melayarinya

Konsep dan aplikasi praktikal kunci asing dalam MySQL

Konsep dan aplikasi praktikal kunci asing dalam MySQL

1. Konsep kunci asing

Dalam reka bentuk pangkalan data, kunci asing adalah kekangan penting yang digunakan untuk menggambarkan hubungan antara jadual. Kekunci asing digunakan untuk memastikan bahawa nilai dalam lajur tertentu dalam satu jadual mesti mempunyai nilai yang sepadan dalam lajur yang sepadan dalam jadual lain. Kewujudan kunci asing boleh memastikan ketekalan dan integriti data dan mengelakkan sisipan data atau kemas kini yang tidak mematuhi hubungan logik.

2. Aplikasi praktikal kunci asing

Dalam reka bentuk pangkalan data sebenar, kunci asing digunakan secara meluas. Berikut menggunakan contoh kod khusus untuk menggambarkan penggunaan kunci asing dalam MySQL.

1. Buat dua jadual berkaitan

Pertama, kami buat dua jadual berkaitan, satu jadual pesanan (pesanan) dan satu lagi jadual pelanggan (pelanggan). Jadual pesanan akan mengandungi kunci asing kepada jadual pelanggan untuk mewujudkan hubungan antara pesanan dan pelanggan.

CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    customer_name VARCHAR(50)
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    order_date DATE,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
Salin selepas log masuk

Dalam kod di atas, kami mencipta dua jadual, jadual pelanggan dan jadual pesanan. Lajur customer_id dalam jadual pesanan mentakrifkan kunci asing yang menunjuk ke lajur customer_id dalam jadual pelanggan.

2. Masukkan data

Seterusnya, kami masukkan beberapa data ke dalam jadual pelanggan dan jadual pesanan. Mula-mula masukkan data jadual pelanggan:

INSERT INTO customers (customer_id, customer_name) VALUES (1, 'Alice');
INSERT INTO customers (customer_id, customer_name) VALUES (2, 'Bob');
Salin selepas log masuk

Kemudian masukkan data jadual pesanan Pastikan pelanggan_id yang dimasukkan wujud dalam jadual pelanggan:

INSERT INTO orders (order_id, order_date, customer_id) VALUES (1, '2022-01-01', 1);
INSERT INTO orders (order_id, order_date, customer_id) VALUES (2, '2022-01-02', 2);
Salin selepas log masuk

3. Uji kekangan kunci asing

Seterusnya kami menunjukkan kesan Kekangan kunci asing, apabila cuba memasukkan customer_id yang tidak sah, ia akan dihadkan oleh kekangan kunci asing:

INSERT INTO orders (order_id, order_date, customer_id) VALUES (3, '2022-01-05', 3);
Salin selepas log masuk

Ralat akan digesa pada masa ini, kerana tiada rekod dengan customer_id 3 dalam jadual pelanggan, dengan itu mengelakkan pemasukan data Pesanan yang tidak sesuai.

4 Peraturan operasi kunci asing

Dalam MySQL, terdapat beberapa peraturan operasi untuk kekangan kunci asing, secara amnya termasuk CASCADE, SET NULL, RESTRICT, dll. Mengambil CASCADE sebagai contoh, apabila pelanggan dipadamkan daripada jadual pelanggan, data pesanan yang sepadan akan dipadamkan secara automatik, mengelakkan pengasingan data.

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    order_date DATE,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE
);
Salin selepas log masuk

Melalui contoh di atas, kita dapat melihat kepentingan dan aplikasi praktikal kunci asing. Penggunaan munasabah kekangan kunci asing dalam reka bentuk pangkalan data boleh memastikan ketekalan dan integriti data dan mengelakkan ralat semasa memasukkan dan mengemas kini data. Konsep kunci asing dalam MySQL tidak terhad kepada contoh di atas Terdapat senario yang lebih kompleks dalam aplikasi sebenar, yang perlu digunakan secara fleksibel mengikut keadaan tertentu.

Atas ialah kandungan terperinci Konsep dan aplikasi praktikal kunci asing dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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