What is the difference between Primary Key and Foreign Key in SQL? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 14

What is the difference between Primary Key and Foreign Key in SQL?

SQL course

13th Aug 2018, 11:37 PM
Kristel Apolinar
Kristel Apolinar - avatar
15 Answers
+ 8
Primary key is used as a unique record identity in a table, primary key usually also be indexed, to support quick search based on the column used as a primary key. A primary key does not depend on any other key, be it in the same table, or a different one. A foreign key is commonly used as reference to point to another column in different table, to create a "relationship" between tables and to enforce data integrity. A foreign key is also used for table connectors, a connector table contains only primary keys of the tables that it is connecting. A connector table is used for a "many to many" relationship between two tables. Hth, cmiiw
14th Aug 2018, 3:02 AM
Ipang
+ 6
The Primary Key is one and only in every table. It is unique in the table and always indexed (usually clustered). Every row has a single and unique value as a primary key. You can have a table without primary key but that is an exception and not a good practice as it makes difficult to handle data manipulation for the table. On the other hand, foreign Keys are fields that are Primary keys on other tables, and commonly are used to create relationship between these two tables giving options (like cascade delete, Insert) to the database administrator.
14th Aug 2018, 9:57 AM
Konstantinos Malliaridis
Konstantinos Malliaridis - avatar
+ 5
Think about a primary key like something that identifies the entity among other entities of the same type. Like the id card, a person has one, never repeats, and it's used to identify the person. Now if we have cars, someone has to own those cars, might be the dealership, maybe your own car. So let's say, if a car has an owner, it has a foreign key from his owner, so that we know whose car is. Another example: table persons id: 0 name: Mattew id: 1 name: Sasha table cars id_owner: 1 color: red id_owner is the foreign key and links the tables cars and persons in a way that if we have a car, we can identify who he is, because that foreign key, is primary key in 'persons'
14th Aug 2018, 12:07 AM
voidneo
+ 5
It will be wider topic to explain it here as it include more and more terminology of sql as we go deeper in it. I would try to explain it in simple words : Take example of university. Lets think there may be student table and course table (many more table also.....) Now enrollment number will be the primary key for student table as it uniquely identity each student and it doesn't have any duplication. And for course table , course_id will be the primary key. Now course table will also contain enrollment number attribute or field which is primary key for student table. Therefore enrollment number is foreign key for course table. I hope my little example would help you understand it☺️☺️.
14th Aug 2018, 5:46 AM
Meet Mehta
Meet Mehta - avatar
+ 3
u make the primary first because it like parents and the foreign key next because it like child
14th Aug 2018, 12:42 AM
Sahar Mohammed Ali ALrabi
Sahar Mohammed Ali ALrabi - avatar
+ 3
primary key is unique identity in the table. foreign key is field in the table that in another table is primary key.
14th Aug 2018, 8:02 AM
Ben Zabid
Ben Zabid - avatar
14th Aug 2018, 11:14 AM
Z_Vova
+ 2
Las claves primarias se usan para identificar cada tabla de tu base de datos y las claves foraneas se usan para enlazar estas claves primarias desde tablas diferentes.
13th Aug 2018, 11:46 PM
Michaell Alavedra
+ 2
Thank you very much 😀
14th Aug 2018, 3:00 AM
Kristel Apolinar
Kristel Apolinar - avatar
+ 2
Primary key uniquely identify a record in the table. Foreign key is a field in the table that is primary key in another table. Primary Key can't accept null values. Foreign key can accept multiple null value. By default, Primary key is clustered index and data in the database table is physically organized in the sequence of clustered index. Foreign key do not automatically create an index, clustered or non-clustered. You can manually create an index on foreign key. We can have only one Primary key in a table. We can have more than one foreign key in a table. https://www.dotnettricks.com/learn/sqlserver/difference-between-primary-key-and-foreign-key
14th Aug 2018, 6:49 AM
Amin Golmahalle
Amin Golmahalle - avatar
+ 2
Primary Key - uniquely identify a record in the table. - can't accept null values. - By default, Primary key is clustered index and data in the database table is physically organized in the sequence of clustered index. - you can have only one Primary key in a table. ******************************* Foreign Key - is a field in the table that is primary key in another table. - can accept multiple null value. - do not automatically create an index, clustered or non-clustered. You can manually create an index on foreign key. - you can have more than one foreign key in a table.
14th Aug 2018, 8:51 PM
Abdulla Zaqout
Abdulla Zaqout - avatar
+ 2
primary key have unique value which is never repeat while table is existing in your database foreign key is use for connecting two or more tables like if you have one table customer that table should have one primary key which is ID and other table is products which connects with customers table. This is possible with primary key and foreign key
15th Aug 2018, 3:59 PM
Meet Soni
+ 2
- Primary key: is a field (column) in a database table that uniquly identifies records(rows in the table) - Foriegn key: is a column or collection of columns that refer to a primary key in another database table. thanks!
18th Aug 2018, 4:13 PM
Abreham W.
+ 2
Thank you po and God bless😀
10th Sep 2018, 5:39 AM
Kristel Apolinar
Kristel Apolinar - avatar
0
Foreign keys are used to relate to the primary key in another table in order to create a relationship. Let's say you have a table called people where at index 1 is John and he has green eyes and at index 2 is Jane and she has blue eyes. Then you have a second table called 'people with blue eyes' and you put Jane at index 1 but you give her a foreign key of 2 to relate to her place on the 'people' table.
4th Nov 2018, 1:55 PM
Logan
Logan - avatar