En aquest article, aprendrem a afegir una clau estrangera a la columna de la taula de la nostra base de dades SQL.
El CLAU ESTRANGERA en SQL s'utilitza per unir el registre de dues taules a la base de dades. La columna definida com a CLAU ESTRANGERA en una taula ha de ser la CLAU PRIMÀRIA en una altra taula de la mateixa base de dades.
Podem afegir fàcilment la clau estrangera a la columna de les dues maneres següents:
- Afegiu una clau estrangera mitjançant la instrucció Crea una taula
- Afegiu una clau estrangera mitjançant la instrucció Alter Table
Si voleu afegir una CLAU ESTRANGERA a la columna de la taula SQL, heu de seguir els passos següents en la seqüència donada:
- Creeu la base de dades al sistema.
- Creeu dues taules a la mateixa base de dades.
- Veure l'estructura de la taula abans d'afegir la clau estrangera.
- Afegiu una clau estrangera a la taula.
- Veure l'estructura de la taula.
Ara, explicarem els passos anteriors amb un exemple:
Pas 1: creeu una base de dades
En el llenguatge de consulta estructurat, la creació d'una base de dades és el primer pas per emmagatzemar les taules estructurades a la base de dades.
Utilitzeu la sintaxi SQL següent per crear una base de dades:
CREATE DATABASE Database_Name;
Suposem que voleu crear el Vehicles base de dades. Per a això, heu d'escriure la següent comanda en llenguatge de consulta estructurat:
CREATE DATABASE Vehicles;
Pas 2: creeu dues taules a la base de dades
Ara, heu d'utilitzar la següent sintaxi SQL per crear les taules a la vostra base de dades:
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) );
La consulta SQL següent crea el Cotxes_Detalls taula a la Vehicles base de dades.
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), );
Es crea la següent consulta Detalls_preu_cotxes taula a la Vehicles base de dades:
CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL );
Pas 3: visualitzeu l'estructura de la taula abans de l'addició de clau estrangera
Després de la creació de la taula i la inserció de dades, podeu veure l'estructura d'ambdues taules escrivint la consulta següent a la vostra aplicació SQL:
DESC Cars or DESCRIBE Cars ;
Camp | Tipus | NUL | clau | Per defecte | Extra |
---|---|---|---|---|---|
Número_cotxe | INT | NO | AT | NUL | increment_automàtic |
Model | INT | Sí | - | NUL | - |
Nom_cotxe | Varchar (20) | Sí | - | NUL | |
Color | Varchar (20) | Sí | - | NUL | - |
DESC Cars_Price_Details;
Camp | Tipus | NUL | clau | Per defecte | Extra |
---|---|---|---|---|---|
Model_cotxe | INT | No | AT | NUL | - |
Preu_cotxe | INT | No | - | NUL |
Pas 4: afegiu una clau estrangera a la columna de la taula
Si voleu afegir la clau estrangera en el moment de la creació de la taula, heu d'utilitzar la següent sintaxi CREATE TABLE a 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) ) ;
Exemple
La consulta següent afegeix la CLAU EXTRANJERA a la columna 'Model' de la taula 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 ) ;
Aquesta consulta en SQL s'uneix els Cotxes_Detalls taula amb el Detalls_preu_cotxes taula amb l'ajuda d'una clau estrangera.
Pas 5: visualitzeu l'estructura de la taula després de l'addició de clau estrangera
Per comprovar el resultat de la consulta executada a el 4thpas, heu d'escriure la següent comanda DESC a SQL:
DESC Cars_Details;
Camp | Tipus | NUL | clau | Per defecte | Extra |
---|---|---|---|---|---|
Número_cotxe | INT | Sí | PRIMÀRIA | NUL | increment_automàtic |
Model | INT | No | ESTRANGER | NUL | - |
Nom_cotxe | Varchar (20) | Sí | - | NUL | - |
Color | Varchar (20) | Sí | - | NUL | - |
Preu | INT | NO | - | NUL | - |
Mitjana | INT | NO | - | 0 | - |
Com es mostra a la sortida anterior, la columna Model es crea com a clau estrangera.
Afegiu la clau estrangera a la taula existent
Si voleu afegir la clau estrangera a la taula existent, heu d'utilitzar la següent sintaxi ALTER a SQL:
ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name);
La consulta següent afegeix una CLAU FORA a la columna Model quan la taula Cars_Details ja existeix al sistema de base de dades:
ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model);
Aquesta consulta ALTER en SQL s'uneix els Cotxes_Detalls taula amb el Detalls_preu_cotxes taula amb l'ajuda d'una clau estrangera.
Suprimeix la clau estrangera de la taula
Si voleu eliminar la clau estrangera de la columna de la taula, heu d'utilitzar el següent ALTERA sintaxi en SQL:
ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name;
La consulta següent suprimeix la CLAU ESTRANGERA creada de la columna Model de la taula Cars_Details:
ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;