Unlocking the Key Differences: Primary Key vs Foreign Key

Discover the essential disparities between Primary Keys and Foreign Keys in this informative guide.
Primary Key vs Foreign Key


SQL keys are the basic elements for building a relationship between two tables in a Relational Database Management System (RDBMS). They are very valuable in the maintenance of a relational database system. The main difference between primary and foreign key is that the primary key makes indexes of every record in a table through one column that has unique data, whereas the foreign key links two tables through common column as well as data

Now, we are going to discuss the major differences between Primary keys and Foreign Keys as per different factors. Prior to compare, we will discuss in brief on these keys.

What is use of Primary Key?

The primary key is a unique key that uniquely detects each record in a data table or relation. It can’t be null. Each database desires a unique detector for each row of a table, and the primary key acts significantly in identifying rows in the table uniquely. The primary key column can't store duplicate data. It is also popularly known as a minimal super key; hence, we cannot mention more than a single primary key within any relationship.

For illustration, we have a table having name student with attributes like ID, Name, and City. Only the column ID can’t possess duplicate information and NULL values as each student has a unique id number. This specific feature assists to detect every record in the database in a unique way. Hence, we can mention the ID column as a primary key.

create database student

What is use of Foreign Key?

The foreign key is a combination of one or more columns in a relational database to uniquely detect the record in other table to achieve the referential integrity. Also, it is called as the referencing key that builds a relationship between two tables in a database. Often, a foreign key  links the primary key column in another table. Hence, it indicates a foreign key column of a table links to the primary key column of another table. A foreign key plays a significant role in normalization of RDBMS, especially when we desire to obtain records from different tables.

A foreign key develops a parent-child relationship with the various tables where the parent table contains the starting column values, and the child table references the values of the parent column. We can have this relationship only while the foreign key restriction is obtained on the child table.

For instance: we have a table named student_contact with columns such as ID, student_Id, student_Info, and Type. Here we can make the Student_Id column a foreign key.

If we wish to remove the referential information that removes the targeted records from both tables, we can explain the foreign key in the student_contact table as below:

1. FOREIGN KEY (Student_Id) REFERENCES student(ID)



When we want to delete any record from the student table, the relevant rows will be also deleted in the student_contact table, and both tables will be updated automatically.

Major differences between Primary Key and Foreign Key

The following are the differences between primary and foreign keys:

A primary key restriction in the relational database management plays the role of a unique identifier for each record in the table. Infact, a foreign key restriction builds a relationship between two tables to uniquely obtain a row of the same table or other table.

  • The primary key column never stores NULL values, but the foreign key accepts multiple NULL values.
  • Each table in a relational database can't have more than one primary key while we can make multiple foreign keys in a table.
  • We won’t be able to delete the primary key data of the parent table that referred to a foreign key column in the child table. In contrast, we will be able to remove the foreign key value of child table even though they refer to the primary key of parent table.
  • Since, a primary key is considered as a unique and non-null restriction, so no two rows can possess identical values for a primary key column, whereas foreign key fields can contain duplicate data.
  • We can insert the data into the primary key column unlimitedly. In contrast, we have to make sure that the value is available in a primary key column while adding values to the foreign key table.

  • We can define the primary key restriction implicitly on temporary tables, but we cannot enforce foreign key restrictions on temporary tables.
  • The primary key is known as a clustered index by default, which indicates that it is indexed automatically. A foreign key cannot be a clustered index by default. But manually we can build clustered indexes.


Hope, the readers must have gone through an appropriate comparison between primary key and foreign key restrictions. Here we have concluded that both primary and foreign keys play a significant role in the relational database management (either sql or any other) as they build relations between different tables. Often, the primary key column contains the unique information for each row in the table, whereas foreign key column can have duplicate value. Both restriction structure is similar, but their function is different as the primary key detects a record in the same table or relational table uniquely. And the foreign key links two tables together.


Anjan kant

Outstanding journey in Microsoft Technologies (ASP.Net, C#, SQL Programming, WPF, Silverlight, WCF etc.), client side technologies AngularJS, KnockoutJS, Javascript, Ajax Calls, Json and Hybrid apps etc. I love to devote free time in writing, blogging, social networking and adventurous life

Post A Comment: