logo

כיצד להוסיף מפתח זר ב-SQL

במאמר זה נלמד כיצד להוסיף מפתח זר לעמודה בטבלה של מסד הנתונים של SQL שלנו.

ה מפתח זר ב-SQL משמש כדי להצטרף לרשומה של שתי טבלאות במסד הנתונים. העמודה המוגדרת כ- FOREIGN KEY בטבלה אחת חייבת להיות ה- PRIMARY KEY בטבלה אחרת באותו מסד נתונים.

אנו יכולים בקלות להוסיף מפתח זר לעמודה בשתי הדרכים הבאות:

  1. הוסף מפתח זר באמצעות הצהרת צור טבלה
  2. הוסף מפתח זר באמצעות הצהרת Alter Table

אם ברצונך להוסיף מפתח FOREIGN KEY לעמודה לטבלת SQL, עליך לבצע את השלבים הבאים ברצף הנתון:

  1. צור את מסד הנתונים במערכת.
  2. צור שתי טבלאות באותו מסד נתונים.
  3. הצג את מבנה הטבלה לפני הוספת מפתח זר.
  4. הוסף מפתח זר לטבלה.
  5. הצג את מבנה הטבלה.

כעת, אנו הולכים להסביר את השלבים לעיל עם דוגמה:

שלב 1: צור מסד נתונים

ב-Structured Query Language, יצירת מסד נתונים היא השלב הראשון לאחסון הטבלאות המובנות במסד הנתונים.

השתמש בתחביר SQL הבא כדי ליצור מסד נתונים:

 CREATE DATABASE Database_Name; 

נניח שאתה רוצה ליצור את כלי רכב מאגר מידע. לשם כך, עליך להקליד את הפקודה הבאה ב-Structured Query Language:

 CREATE DATABASE Vehicles; 

שלב 2: צור שתי טבלאות במסד הנתונים

כעת, עליך להשתמש בתחביר SQL הבא ליצירת הטבלאות במסד הנתונים שלך:

 CREATE TABLE table_name ( column_Name_1 data type (size of the column_1), column_Name_2 data type (size of the column_2), column_Name_3 data type (size of the column_3), ... column_Name_N data type (size of the column_1) ); 

שאילתת SQL הבאה יוצרת את מכוניות_פרטים שולחן ב כלי רכב מאגר מידע.

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), ); 

השאילתה הבאה יוצרת מכוניות_מחיר_פרטים שולחן ב כלי רכב מאגר מידע:

 CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL ); 

שלב 3: הצג את מבנה הטבלה לפני הוספת מפתח זר

לאחר יצירת טבלה והכנסת נתונים, תוכל להציג את המבנה של שתי הטבלאות על ידי הקלדת השאילתה הבאה ביישום SQL שלך:

 DESC Cars or DESCRIBE Cars ; 

שדה סוּג ריק מַפְתֵחַ בְּרִירַת מֶחדָל תוֹסֶפֶת
מספר מכונית INT לא בְּ ריק auto_increment
דֶגֶם INT כן - ריק -
שם_מכונית Varchar(20) כן - ריק
צֶבַע Varchar(20) כן - ריק -

 DESC Cars_Price_Details; 

שדה סוּג ריק מַפְתֵחַ בְּרִירַת מֶחדָל תוֹסֶפֶת
דגם רכב INT לא בְּ ריק -
רכב_מחיר INT לא - ריק

שלב 4: הוסף מפתח זר לעמודה בטבלה

אם ברצונך להוסיף את המפתח הזר בזמן יצירת הטבלה, עליך להשתמש בתחביר CREATE TABLE הבא ב-SQL:

 CREATE TABLE table_name1 ( Column_Name_1 data type (size of the column_1), Column_Name_2 data type (size of the column_2), ......, Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name) ) ; 

דוגמא

השאילתה הבאה מוסיפה את המפתח FOREIGN בעמודה 'דגם' בטבלה Cars_Details:

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT, Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model), Cars_Name VARCHAR (20), Color VARCHAR (20) UNIQUE, Price INT NOT NULL ) ; 

שאילתה זו ב-SQL מצטרפת את המכוניות_פרטים שולחן עם ה מכוניות_מחיר_פרטים טבלה בעזרת מפתח זר.

שלב 5: הצג את מבנה הטבלה לאחר הוספת מפתח זר

כדי לבדוק את התוצאה של השאילתה שבוצעה ב ה-4ה'שלב, עליך להקליד את פקודת DESC הבאה ב-SQL:

 DESC Cars_Details; 

שדה סוּג ריק מַפְתֵחַ בְּרִירַת מֶחדָל תוֹסֶפֶת
מספר מכונית INT כן יְסוֹדִי ריק auto_increment
דֶגֶם INT לא זָר ריק -
שם_מכונית Varchar(20) כן - ריק -
צֶבַע Varchar(20) כן - ריק -
מחיר INT לא - ריק -
מְמוּצָע INT לא - 0 -

כפי שמוצג בפלט לעיל, העמודה Model נוצרת כמפתח הזר.

הוסף מפתח זר לטבלה הקיימת

אם ברצונך להוסיף את המפתח הזר לטבלה הקיימת, עליך להשתמש בתחביר ALTER הבא ב-SQL:

 ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name); 

השאילתה הבאה מוסיפה מפתח FOREIGN בעמודה Model כאשר הטבלה Cars_Details כבר קיימת במערכת מסד הנתונים:

 ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model); 

שאילתת ALTER זו ב-SQL מצטרפת את המכוניות_פרטים שולחן עם ה מכוניות_מחיר_פרטים טבלה בעזרת מפתח זר.

מחק מפתח זר מהטבלה

אם ברצונך למחוק את המפתח הזר מהעמודה של הטבלה, עליך להשתמש בדברים הבאים לשנות תחביר ב-SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

השאילתה הבאה מוחקת את מפתח FOREIGN KEY שנוצר מהעמודה Model של טבלת Cars_Details:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;