Dieser Artikel beschreibt anhand von Beispielen die drei Beziehungen der MySQL-Fremdschlüssel. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Aufgrund der Fremdschlüsseleinschränkung bilden die beiden Tabellen drei Arten von Beziehungen:
Eins-zu-viele oder viele-zu-eins Viele zu Eins Tabelle erstellen drücken( ID int Primärschlüssel auto_increment, Name varchar(20) ); Tabelle Buch erstellen( ID int Primärschlüssel auto_increment, Name varchar(20), press_id int ungleich null, Einschränkung fk_book_press Fremdschlüssel (press_id) Referenzen press(id) bei Löschkaskade bei Updatekaskade ); # Fügen Sie zuerst die Datensätze in die zugehörige Tabelle ein, und fügen Sie sie in press(name)-Werte ein. (,,Beijing Industrial Mine Press‘‘), („Volksmusik ist nicht gut für Verlage“) („Geistiges Eigentum ist für Verleger nutzlos“) ; # Datensätze in die zugehörige Tabelle einfügen, in Buchwerte (Name, Press_ID) einfügen ('Neun Yang Magie',1), ('Neun Yin Handbuch',2), ('Neun Yin weiße Knochenklaue',2), ('Dugu Jiujian',3), ('Zehn Ohrfeigen, um den Drachen zu bezwingen', 2), ('Sonnenblumen-Sammlung',3) ; Abfrageergebnisse: mysql> wähle * aus Buch; +----+-----------------+----------+ | ID | Name | Presse-ID | +----+-----------------+----------+ | 1 | Neun-Yang-Magiefertigkeit | 1 | | 2 | Neun Yin-Handbuch | 2 | | 3 | Neun Yin-Knochenklaue | 2 | | 4 | Dugu Jiujian | 3 | | 5 | Zehn Schläge des Drachen | 2 | | 6 | Sunflower Handbuch | 3 | +----+-----------------+----------+ Zeilen im Set (0,00 Sek.) mysql> wählen Sie * aus drücken; +----+--------------------------------+ | Ich würde | Name | +----+--------------------------------+ | 1 | Pekinger Industrie- und Bergbaupresse | | 2 | Volksmusikverlag | | 3 | Geistiges Eigentum ist nutzlos | +----+--------------------------------+ Zeilen im Set (0,00 Sek.) Viele-zu-viele, Einführung einer dritten Tabelle Viele-zu-viele # Erstellen Sie die zugehörige Tabelle „table author“. Die vorherige Tabelle „book“ wurde in einer Viele-zu-eins-Beziehung erstellt. create table author( ID int Primärschlüssel auto_increment, Name varchar(20) ); #Diese Tabelle speichert die Beziehung zwischen der Autorentabelle und der Buchtabelle. Um die Beziehung zwischen den beiden abzufragen, fragen Sie einfach diese Tabelle ab. create table author2book( id int ungleich null eindeutig auto_increment, author_id int ungleich null, book_id int ungleich null, Einschränkung fk_author Fremdschlüssel(author_id) verweist auf author(id) bei Löschkaskade bei Update-Kaskade, Einschränkung fk_book Fremdschlüssel (Buch-ID) Referenzen Buch (ID) bei Löschkaskade bei Update-Kaskade, Primärschlüssel (Autor-ID, Buch-ID) ); #Fügen Sie vier Autoren mit ihren in der Reihenfolge angeordneten IDs ein. Einfügen in Autor(Name)-Werte('egon'),('alex'),('wusir'),('yuanhao'); # Repräsentative Werke jedes Autors egon: Neun Yang Magic Art, Neun Yin Manual, Neun Yin Bones Claw, Dugu Jiujian, Zehn Handflächen der Drachenbezwingung, Sonnenblumensammlung alex: Neun Yang Magic Art, Sonnenblumensammlung wusir: Dugu Jiujian, Zehn Handflächen der Drachenbezwingung, Sonnenblumensammlung yuanhao: Neun Yang Magic Art # Entsprechende Daten in die Tabelle author2book einfügen insert into author2book(author_id,book_id) values (1,1), (1,2), (1,3), (1,4), (1,5), (1,6), (2,1), (2,6), (3,4), (3,5), (3,6), (4,1) ; # Jetzt können Sie die Beziehung zwischen dem Autor und dem Buch entsprechend author2bookmysql> select * from author2book; überprüfen. +----+-----------+---------+ | ID | Autoren-ID | Buch-ID | +----+-----------+---------+ | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 1 | 3 | | 4 | 1 | 4 | | 5 | 1 | 5 | | 6 | 1 | 6 | | 7 | 2 | 1 | | 8 | 2 | 6 | | 9 | 3 | 4 | | 10 | 3 | 5 | | 11 | 3 | 6 | | 12 | 4 | 1 | +----+-----------+---------+ Zeilen im Set (0,00 Sek.) Eins-zu-eins-Situation Eins-zu-eins #Beispiel: Ein Benutzer kann nur ein Blog registrieren. #Zwei Tabellen: Benutzertabelle (Benutzer) und Blogtabelle (Blog) # Eine Benutzertabelle erstellen create table user( ID int Primärschlüssel auto_increment, Name varchar(20) ); # Erstellen Sie eine Blog-Tabelle create table blog( ID int Primärschlüssel auto_increment, URL varchar (100), Benutzer-ID int eindeutig, Einschränkung fk_user Fremdschlüssel (Benutzer-ID) verweist auf Benutzer(-ID) bei Löschkaskade bei Updatekaskade ); #Datensätze in die Benutzertabelle einfügen in Benutzer(name)-Werte einfügen ('Alex'), ('wusir'), ('egon'), ('xiaoma') ; #Datensätze in Blog-Tabelle einfügen in Blog-Werte (URL, Benutzer-ID) einfügen ('http://www.cnblog/alex',1), ('http://www.cnblog/wusir',2), ('http://www.cnblog/egon',3), ('http://www.cnblog/xiaoma',4) ; # Abfrage der Blogadresse von Wusir. Wählen Sie die URL aus dem Blog aus, wo user_id=2 ist. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Vue implementiert rekursiv benutzerdefinierte Baumkomponenten
>>: Detaillierte Erläuterung des Zeitdarstellungsbeispiels des Linux-Zeitsubsystems
Ich habe viele relevante Tutorials im Internet ge...
Exportstandard ({ URL (URL = URL = URL), Methode ...
Inhaltsverzeichnis Docker-Images Was ist ein Spie...
Inhaltsverzeichnis Vorwort Einführung in SessionS...
Wenn MySQL Version 5.0 bereits auf dem Computer v...
Inhaltsverzeichnis Thema analysieren Basislösung ...
Ich weiß nicht, ob Sie schon einmal in eine solch...
Experimentelle Umgebung Apache und Tomcat sind be...
Konfigurieren von Java-Umgebungsvariablen Hier we...
Vorwort: In MySQL wird die Funktion CONCAT() verw...
Inhaltsverzeichnis 1. Einführung in integrierte O...
1. Einleitung Ich habe vor Kurzem die Prinzipien ...
Inhaltsverzeichnis 1. Einleitung 1.1 Babel-Transc...
Einführung Es ist in Ordnung, am Ende eines JS-Co...
Inhaltsverzeichnis 1. Benutzerdefinierter Import ...