Heim > Datenbank > MySQL-Tutorial > Grundkenntnisse über Fremdschlüssel in MySQL?

Grundkenntnisse über Fremdschlüssel in MySQL?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-09-04 10:49:02
nach vorne
554 Leute haben es durchsucht

MySQL 中外键的基础知识?

Fremdschlüssel ist eine Art Einschränkung, die verwendet werden kann, um die Integrität zwischen Tabellen aufrechtzuerhalten. Wenn wir einen Fremdschlüssel für eine Tabelle erstellen, wird diese Tabelle als untergeordnete Tabelle und die zweite Tabelle als übergeordnete Tabelle bezeichnet.

In der übergeordneten Tabelle fungiert der Fremdschlüssel als Primärschlüssel. Lassen Sie uns eine Tabelle erstellen.

Untertabellen erstellen.

mysql> create table StudentEnrollment
   -> (
   -> StudentId int,
   -> StudentName varchar(200),
   -> StudentFKPK int
   -> );
Query OK, 0 rows affected (0.91 sec)
Nach dem Login kopieren

Übergeordnete Tabelle erstellen

mysql> create table College
   -> (
   -> StudentFKPK int,
   -> CourseId int,
   -> CourseName varchar(200),
   -> CollegeName varchar(200),
   -> primary key(StudentFKPK)
   -> );
Query OK, 0 rows affected (0.46 sec)
Nach dem Login kopieren

In der übergeordneten Tabelle ist die Spalte „StudentFKPK“ der Primärschlüssel. Wir werden Fremdschlüssel mit dem ALTER-Befehl hinzufügen.

Das Folgende ist die Syntax zum Hinzufügen von Fremdschlüsseln.

ALTER table yourChildTableName add constraint anyConstraintName
foreign key(primary key column name for parent table) 
references College(primary key column name for parent table);
Nach dem Login kopieren

Hier ist die Implementierung der obigen Syntax in der folgenden Abfrage.

mysql> alter table StudentEnrollment add constraint StudCollegeConst foreign key(StudentFKPK) references College(StudentFKPK);
Query OK, 0 rows affected (1.78 sec)
Records: 0  Duplicates: 0  Warnings: 0
Nach dem Login kopieren

Syntax zum Überprüfen der Existenz von Fremdschlüsseleinschränkungen.

SELECT  TABLE_NAME, COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NA FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHER  REFERENCED_TABLE_NAME = 'yourParentTableName or your referencedTableName';
Nach dem Login kopieren

Die obige Syntax ist in der folgenden Abfrage implementiert.

mysql> SELECT
   ->   TABLE_NAME,
   ->   COLUMN_NAME,
   ->   CONSTRAINT_NAME,
   ->   REFERENCED_TABLE_NAME,
   ->   REFERENCED_COLUMN_NAME
   ->   FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
   ->   WHERE
   ->   REFERENCED_TABLE_NAME = 'College';
Nach dem Login kopieren

Dies ist die Ausgabe.

+-------------------+-------------+------------------+-----------------------+------------------------+
| TABLE_NAME        | COLUMN_NAME | CONSTRAINT_NAME  | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME |
+-------------------+-------------+------------------+-----------------------+------------------------+
| StudentEnrollment | StudentFKPK | StudCollegeConst | College               | StudentFKPK            |
+-------------------+-------------+------------------+-----------------------+------------------------+
1 row in set, 2 warnings (0.03 sec)
Nach dem Login kopieren

Wir haben eine Spalte namens StudentFKPK und CONSTRAINT_NAME ist StudCollegeConst.

Das obige ist der detaillierte Inhalt vonGrundkenntnisse über Fremdschlüssel in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage