Bagaimana untuk menggunakan kunci asing dan kekangan MySQL untuk meningkatkan integriti dan konsistensi data?
Dalam pangkalan data MySQL, kunci asing dan kekangan adalah dua konsep penting yang boleh membantu meningkatkan integriti dan konsistensi data. Dalam artikel ini, kami akan membincangkan secara terperinci cara menggunakan kunci asing MySQL dan kekangan untuk mencapai matlamat ini, dan menyediakan beberapa contoh kod.
1. Konsep dan fungsi kunci asing
Kunci asing adalah mekanisme yang digunakan untuk mewujudkan hubungan antara jadual. Kunci asing biasanya terdiri daripada kunci utama (atau kunci unik) satu jadual yang merujuk kepada kunci utama (atau kunci unik) jadual lain.
1.1 Definisi kunci asing
Apabila membuat jadual, anda boleh menggunakan kata kunci KUNCI ASING untuk mentakrifkan kunci asing. Berikut ialah contoh:
BUAT JADUAL 1 (
列1 数据类型, 列2 数据类型, ... FOREIGN KEY (列1) REFERENCES 表2(关联的列)
);
di mana, jadual 1 dan jadual 2 ialah dua jadual berbeza, lajur 1 dan lajur yang berkaitan ialah lajur yang berkaitan dalam jadual 1 dan jadual 2.
1.2 Peranan kunci asing
Kunci asing mempunyai fungsi berikut:
1.2.1 Menguatkuasakan konsistensi antara jadual yang berkaitan
Kunci asing boleh memastikan data dalam sub-jadual hanya boleh merujuk data yang telah wujud dalam jadual utama data. Ini boleh mengurangkan ketidakkonsistenan data dan meningkatkan integriti data.
1.2.2 Melaksanakan operasi lata
Satu lagi peranan penting kunci asing ialah melaksanakan operasi lata. Apabila rekod dipadam atau dikemas kini dalam jadual utama, disebabkan kewujudan kunci asing, pangkalan data secara automatik boleh melaksanakan operasi yang sepadan dalam sub-jadual yang berkaitan untuk memastikan ketekalan data.
1.2.3 Meningkatkan kecekapan pertanyaan
Kunci asing boleh meningkatkan kecekapan pertanyaan. Apabila kami membuat pertanyaan, kami boleh mendapatkan semula data yang berkaitan daripada berbilang jadual sekaligus melalui perkaitan yang ditubuhkan oleh kunci asing, mengurangkan operasi pertanyaan tambahan.
2. Konsep dan fungsi kekangan
Kekangan merujuk kepada peraturan yang mengehadkan data dalam jadual. MySQL menyediakan pelbagai jenis kekangan, termasuk kekangan utama utama, kekangan unik, kekangan bukan nol, kekangan nilai lalai, dsb. Dengan menggunakan kekangan, anda boleh memastikan integriti dan konsistensi data.
2.1 Kekangan kunci utama
Kekangan kunci utama digunakan untuk menentukan kunci utama dalam jadual, yang boleh menghalang nilai pendua dalam lajur kunci utama. Dalam MySQL, kekangan kunci utama boleh ditakrifkan melalui kata kunci PRIMARY KEY. Berikut ialah contoh:
BUAT jadual JADUAL (
列1 数据类型, 列2 数据类型, ... PRIMARY KEY (列1)
);
2.2 Kekangan Unik
Kekangan unik digunakan untuk memastikan bahawa nilai lajur dalam jadual adalah unik dan nilai pendua tidak dibenarkan. Apabila membuat jadual, anda boleh menggunakan kata kunci UNIK untuk menentukan kekangan unik. Berikut ialah contoh:
BUAT jadual JADUAL (
列1 数据类型, 列2 数据类型, ... UNIQUE (列1)
);
2.3 Kekangan bukan nol
Kekangan bukan nol digunakan untuk memastikan bahawa nilai lajur dalam jadual bukan nol. Apabila membuat jadual, anda boleh menggunakan kata kunci NOT NULL untuk menentukan kekangan bukan nol. Berikut ialah contoh:
BUAT jadual JADUAL (
列1 数据类型 NOT NULL, 列2 数据类型, ...
);
2.4 Kekangan nilai lalai
Kekangan nilai lalai digunakan untuk menentukan nilai lalai lajur dalam jadual. Apabila membuat jadual, anda boleh menggunakan kata kunci DEFAULT untuk menentukan kekangan nilai lalai. Berikut ialah contoh:
BUAT jadual (
列1 数据类型 DEFAULT 默认值, 列2 数据类型, ...
); ketekalan.
Andaikan kita mempunyai dua meja: meja pelajar (pelajar) dan meja kursus (kursus). Jadual pelajar merangkumi dua medan: ID pelajar (id) dan nama pelajar (nama), dan jadual kursus termasuk dua medan: ID kursus (id) dan nama kursus (nama). Kami ingin menambah kunci asing pada jadual pelajar untuk mengaitkan ID pelajar dengan ID kursus dalam jadual kursus.
Mula-mula, kami mencipta jadual pelajar dan jadual kursus:
CIPTA pelajar JADUAL (
id INT PRIMARY KEY, name VARCHAR(50)
);
CREATE TABLE kursus (
id INT PRIMARY KEY, name VARCHAR(50)
);
Kemudian, kami menambah kunci asing pada jadual pelajar:
ALTER TABLE pelajarTAMBAH KUNCI ASING (course_id) RUJUKAN course(id);
Dengan cara ini, apabila kita memasukkan rekod dalam jadual pelajar, pangkalan data akan menyemak secara automatik sama ada ID kursus yang sepadan wujud dalam jadual kursus Jika ia tidak wujud, masukkan Operasi akan ditolak.
Ringkasan:
Atas ialah kandungan terperinci Bagaimana untuk menggunakan kunci asing MySQL dan kekangan untuk meningkatkan integriti dan konsistensi data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!