Easy Tutorial
❮ Sql Func Avg Sql Func Sum ❯

SQL FOREIGN KEY Constraint


SQL FOREIGN KEY Constraint

A FOREIGN KEY in one table points to a UNIQUE KEY (a key with a unique constraint) in another table.

Let's explain the foreign key through an example. Consider the following two tables:

"Persons" table:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

"Orders" table:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Note that the "P_Id" column in the "Orders" table points to the "P_Id" column in the "Persons" table.

The "P_Id" column in the "Persons" table is the PRIMARY KEY in the "Persons" table.

The "P_Id" column in the "Orders" table is the FOREIGN KEY in the "Orders" table.

The FOREIGN KEY constraint is used to prevent actions that would destroy links between tables.

The FOREIGN KEY constraint also prevents invalid data from being inserted into the foreign key column, as it has to be one of the values contained in the table it points to.


SQL FOREIGN KEY Constraint When Creating a Table

The following SQL creates a FOREIGN KEY constraint on the "P_Id" column when the "Orders" table is created:

MySQL:

SQL Server / Oracle / MS Access:

To name a FOREIGN KEY constraint and define a FOREIGN KEY constraint for multiple columns, use the following SQL syntax:

MySQL / SQL Server / Oracle / MS Access:


SQL FOREIGN KEY Constraint When Altering a Table

When the "Orders" table has already been created, to create a FOREIGN KEY constraint on the "P_Id" column, use the following SQL:

MySQL / SQL Server / Oracle / MS Access:

To name a FOREIGN KEY constraint and define a FOREIGN KEY constraint for multiple columns, use the following SQL syntax:

MySQL / SQL Server / Oracle / MS Access:


Drop a FOREIGN KEY Constraint

To drop a FOREIGN KEY constraint, use the following SQL:

MySQL:

SQL Server / Oracle / MS Access:

❮ Sql Func Avg Sql Func Sum ❯