במאמר זה נלמד כיצד להוסיף מפתח זר לעמודה בטבלה של מסד הנתונים של SQL שלנו.
ה מפתח זר ב-SQL משמש כדי להצטרף לרשומה של שתי טבלאות במסד הנתונים. העמודה המוגדרת כ- FOREIGN KEY בטבלה אחת חייבת להיות ה- PRIMARY KEY בטבלה אחרת באותו מסד נתונים.
אנו יכולים בקלות להוסיף מפתח זר לעמודה בשתי הדרכים הבאות:
- הוסף מפתח זר באמצעות הצהרת צור טבלה
- הוסף מפתח זר באמצעות הצהרת Alter Table
אם ברצונך להוסיף מפתח FOREIGN KEY לעמודה לטבלת SQL, עליך לבצע את השלבים הבאים ברצף הנתון:
- צור את מסד הנתונים במערכת.
- צור שתי טבלאות באותו מסד נתונים.
- הצג את מבנה הטבלה לפני הוספת מפתח זר.
- הוסף מפתח זר לטבלה.
- הצג את מבנה הטבלה.
כעת, אנו הולכים להסביר את השלבים לעיל עם דוגמה:
שלב 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;