A foreign key is a set of columns referring to a primary key of another table

Tables are related to other tables with a primary key or foreign key relationship. Primary and foreign key relationships are used in relational databases to define many-to-one relationships between tables.

The primary key/foreign key relationships between tables in a star or snowflake schema, sometimes called many-to-one relationships, represent the paths along which related tables are joined together in the database. These join paths are the basis for forming queries against historical data. For more information about many-to-one relationships, see Many-to-one relationships.

Primary keysA primary key is a column or a set of columns in a table whose values uniquely identify a row in the table. A relational database is designed to enforce the uniqueness of primary keys by allowing only one row with a given primary key value in a table.Foreign keysA foreign key is a column or a set of columns in a table whose values correspond to the values of the primary key in another table. In order to add a row with a given foreign key value, there must exist a row in the related table with the same primary key value.

Primary Key: A primary key is used to ensure that data in the specific column is unique. A column cannot have NULL values. It is either an existing table column or a column that is specifically generated by the database according to a defined sequence. 

QUIZ QUESTION::

Match the appropriate definition or description to each term or column.

ANSWER CHOICES:

Foreign Key

ON accounts.account_id = web_events.id

ON accounts.id = web_events.id

Primary Key

ON web_events.id = accounts.id

ON web_events.account_id = accounts.id

id

account_id

Definition or Column Description

Term or Column

Has a unique value for every row in that column. There is one in every table.

The link to the primary key that exists in another table.

The primary key in every table of our example database.

A foreign key that exists in both the web_events and orders tables.

The ON statement associated with a JOIN of the web_events and accounts tables.

SOLUTION:

Definition or Column Description

Term or Column

The link to the primary key that exists in another table.

Foreign Key

Has a unique value for every row in that column. There is one in every table.

Primary Key

The ON statement associated with a JOIN of the web_events and accounts tables.

ON web_events.account_id = accounts.id

The primary key in every table of our example database.

id

A foreign key that exists in both the web_events and orders tables.

account_id

Keys are attribute that helps you to identify a row(tuple) in a relation(table). They allow you to find the relationship between two tables. Keys help you uniquely identify a row in a table by a combination of one or more columns in that table. The database key is also helpful for finding a unique record or row from the table.

What is Primary Key?

A primary key constrain is a column or group of columns that uniquely identifies every row in the table of the relational database management system. It cannot be a duplicate, meaning the same value should not appear more than once in the table.

A table can not have more than one primary key. Primary key can be defined at the column or the table level. If you create a composite primary key, it should be defined at the table level.

What is Foreign Key?

Foreign key is a column that creates a relationship between two tables. The purpose of the Foreign key is to maintain data integrity and allow navigation between two different instances of an entity. It acts as a cross-reference between two tables as it references the primary key of another table. Every relationship in the database should be supported by a foreign key.

Difference between Primary Key and Foreign Key

Here is the important difference between Primary key and Foreign key:

Primary KeyForeign KeyA primary key constrain is a column or group of columns that uniquely identifies every row in the table of the relational database management system.Foreign key is a column that creates a relationship between two tables.It helps you to uniquely identify a record in the table.It is a field in the table that is a primary key of another table.Primary Key never accepts null values.A foreign key may accept multiple null values.The primary key is a clustered index, and data in the DBMS table are physically organized in the sequence of the clustered index.A foreign key cannot automatically create an index, clustered, or non-clustered.You can have the single Primary key in a table.You can have multiple foreign keys in a table.The value of the primary key can’t be removed from the parent table.The value of foreign key value can be removed from the child table.You can define the primary key implicitly on the temporary tables.You cannot define foreign keys on the local or global temporary tables.Primary key is a clustered index.By default, it is not a clustered index.No two rows can have any identical values for a primary key.A foreign key can contain duplicate values.There is no limitation in inserting the values into the table column.While inserting any value in the foreign key table, ensure that the value is present into a column of a primary key.

What is Database Relationship?

The database relationship is associations between one or more tables that are created using join statements. It is used to efficiently retrieve data from the database. There are primarily three types of relationships 1) One-to-One, 2) One-to-many, 3) Many-to-many.

Why use Primary Key?

Here are the cons/benefits of using primary key:

  • The main aim of the primary key is to identify each and every record in the database table.
  • You can use a primary key when you do not allow someone to enter null values.
  • If you delete or update records, the action you specified will be undertaken to make sure data integrity.
  • Perform restrict operation to rejects delete or update operation for the parent table.
  • Data are organized in a sequence of clustered index whenever you physically organize DBMS table.

Why use Foreign Key?

Here are the important reasons of using foreign key:

  • Foreign keys help you to migrate entities using a primary key from the parent table.
  • A foreign key enables you to link two or more tables together.
  • It makes your database data consistent.
  • A foreign key can be used to match a column or combination of columns with primary key in a parent table.
  • SQL foreign key constraint is used to make sure the referential integrity of the data parent to match values in the child table.

Example of Primary Key

Syntax:

Below is the syntax of Primary Key:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Here,

  • Table_Name is the name of the table you have to create.
  • Column_Name is the name of the column having the primary key.

Example:

StudIDRoll NoFirst NameLast [email protected]@[email protected]

In the above example, we have created a student table with columns like StudID, Roll No, First Name, Last Name, and Email. StudID is chosen as a primary key because it can uniquely identify other rows in the table.

Example of Foreign Key

Syntax:

Below is the syntax of Foreign Key:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);


Here,

  • The parameter Table Name indicates the name of the table that you are going to create.
  • The parameters column1, column2… depicts the columns that need to be added to the table.
  • Constraint denotes the name of constraint you are creating.
  • References indicate a table with the primary key.

Example:

DeptCodeDeptName001Science002English005ComputerTeacher IDFnameLnameB002DavidWarnerB017SaraJosephB009MikeBrunton

In the above example, we have two tables, a teacher and a department in a school. However, there is no way to see which search works in which department.

In this table, adding the foreign key in Deptcode to the Teacher name, we can create a relationship between the two tables.

Can a foreign key be a primary key in another table?

A FOREIGN KEY is a field (or collection of fields) in one table, that refers to the PRIMARY KEY in another table. The table with the foreign key is called the child table, and the table with the primary key is called the referenced or parent table.

What is a foreign key in a table?

A foreign key (FK) is a column or combination of columns that is used to establish and enforce a link between the data in two tables to control the data that can be stored in the foreign key table.

What does a foreign key refer to?

A foreign key is a column or columns of data in one table that refers to the unique data values -- often the primary key data -- in another table. Foreign keys link together two or more tables in a relational database.

Can a foreign key only refer to primary key?

A foreign key can refer to either a unique or a primary key of the parent table. If the foreign key refers to a non-primary unique key, you must specify the column names of the key explicitly.