Rumah  >  Artikel  >  pangkalan data  >  Ringkasan mata pengetahuan kekangan kunci asing MySQL

Ringkasan mata pengetahuan kekangan kunci asing MySQL

WBOY
WBOYke hadapan
2022-07-12 17:05:272074semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql, yang terutamanya mengatur isu berkaitan kekangan kunci asing (Kunci Asing) adalah antara dua jadual data dalam pangkalan data lajur tertentu. Sambungan ini biasanya disebabkan oleh medan dengan maksud yang sama dalam senario sebenar.

Ringkasan mata pengetahuan kekangan kunci asing MySQL

Pembelajaran yang disyorkan: tutorial video mysql

1. Fungsi kekangan kunci asing MySQL

Kunci asing kekangan ( Foreign Key) ialah hubungan yang diwujudkan oleh lajur antara dua jadual data dalam pangkalan data. Sambungan ini biasanya disebabkan oleh medan dengan makna yang sama dalam senario sebenar. Melalui pengenalan kekangan kunci asing, MySQL boleh menjadikan integriti data dalam jadual data lebih kukuh dan lebih konsisten dengan situasi paparan. Di bawah, saya memberikan contoh untuk menggambarkan peranan kekangan kunci asing MySQL.
Jika kita membina pangkalan data untuk sistem pengurusan prestasi pelajar universiti, terdapat dua jadual Satu jadual ialah jadual pelajar, yang menyimpan nombor pelajar, nama, jantina, jabatan dan maklumat lain, dan jadual lain ialah jadual. jadual gred Maklumat seperti nombor ID pelajar, nombor kursus, markah ujian, dll. disimpan. Dengan cara ini, kekangan kunci asing akan diwujudkan antara kedua-dua jadual melalui nombor pelajar. Sewajarnya bagi kita untuk berfikir bahawa nombor ID pelajar dalam jadual transkrip bergantung kepada kewujudan nombor ID pelajar dalam jadual pelajar Jika pelajar lulus, atau tercicir, dan dipadamkan daripada jadual pelajar, maka berkaitan dengannya gred tidak perlu dalam jadual transkrip wujud. Sebelum mencipta hubungan kunci asing, kedua-dua jadual ini wujud sepenuhnya secara bebas Kita boleh memasukkan secara paksa skor berkaitan pelajar yang tidak wujud ke dalam jadual skor, atau kita boleh memadam pelajar secara paksa dalam jadual pelajar, tanpa mengira maklumat skor. Sama ada ia wujud dalam lembaran skor. Walau bagaimanapun, selepas mewujudkan hubungan kunci asing, pangkalan data MySQL akan mengekang dua gelagat di atas Setiap kali data dimasukkan atau dipadam, integriti data akan diperiksa, supaya operasi kami mesti mematuhi situasi sebenar.

2. Penciptaan kekangan kunci asing

(1) Syarat untuk mencipta kekangan kunci asing

Untuk mencipta kunci asing dalam pangkalan data MySQL, berikut empat perkara perlu dipenuhi syarat, jika tidak ia akan ditolak oleh pangkalan data MySQL:
1. Jadual dan lajur yang digunakan untuk mencipta kunci asing wujud
2. Lajur yang membentuk kunci asing wujud dalam indeks
3. Enjin jadual data mesti dinyatakan sebagai InnoDB
4. Jenis data medan kunci asing dan medan berkaitan mesti konsisten

(2) Cipta asing kekangan utama semasa mencipta jadual data

Buat semasa mencipta jadual data Untuk kekangan kunci asing, anda hanya perlu menggunakan kata kunci kunci asing untuk menentukan medan kunci asing jadual ini selepas kenyataan cipta jadual data, gunakan kata kunci rujukan untuk menentukan medan berkaitan jadual berkaitan dan mengekang tingkah laku dengan jelas.
Contoh pernyataan SQL untuk mencipta kekangan kunci asing adalah seperti berikut:

create table student (id int(8),name varchar(20),department varchar(20) ,index (id))ENGINE=InnoDB;
create table grade (Sid int(8),Cid int(10),score int,index(Sid),foreign key (Sid) references student(id) on  delete  restrict on update cascade)ENGINE=InnoDB;

Dalam penyataan SQL di atas, pada sekatan padam menunjukkan bahawa kunci asing akan menyekat operasi pemadaman apabila memadam, semasa pada lata kemas kini Ini bermakna operasi kemas kini akan disegerakkan apabila nama dikemas kini.

(3) Tambah kekangan kunci asing selepas mencipta jadual data

Begitu juga, MySQL juga menyokong penambahan kekangan kunci asing selepas mencipta jadual data. Dalam contoh di atas, kami mula-mula memadamkan jadual gred, dan kemudian mencipta jadual gred Kami tidak mencipta kunci asing sekarang. Cuba tambah kunci asing selepas membuat jadual gred adalah seperti berikut:

drop table grade;
create table grade(Sid int(8),Cid int(10),score int);
alter table grade add index(Sid);
alter table grade add foreign key (Sid) references student(id) on delete restrict on update cascade;

Keputusan pelaksanaan adalah seperti berikut :

Ringkasan mata pengetahuan kekangan kunci asing MySQL

3. Demonstrasi fungsi kekangan kunci asing

Seterusnya, mari kita uji fungsi kekangan kunci asing. . Mula-mula, cuba masukkan kekangan kunci asing ke dalam jadual gred pelajar itu tidak wujud, dan didapati ia ditolak:

Ringkasan mata pengetahuan kekangan kunci asing MySQL
Selepas itu, saya cuba memadam. pelajar yang grednya wujud dalam jadual pelajar, dan didapati bahawa ia telah ditolak:

Ringkasan mata pengetahuan kekangan kunci asing MySQL
Seterusnya, kami menguji fungsi kemas kini lata kekangan kunci asing MySQL dan mendapati bahawa jika data dalam jadual pelajar ditukar, jadual gred juga akan berubah, seperti yang ditunjukkan di bawah:

Ringkasan mata pengetahuan kekangan kunci asing MySQL

Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci Ringkasan mata pengetahuan kekangan kunci asing MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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