Beginner Topic 6 of 51 Databases
Foreign Keys
Column referencing another table's key to link records.
How it works
A foreign key is a column or set of columns in one table that refers to the primary key of another, creating a link between rows and enforcing referential integrity: you cannot insert a reference to a nonexistent parent, or delete a parent that still has children, unless a rule like CASCADE, SET NULL or RESTRICT says otherwise. They document relationships such as one-to-many between customers and orders.
Step-by-step walkthrough
- Orders store the customer_id of who placed them.
- The database checks that id 7 exists in Customers.
- This keeps links valid, called referential integrity.
- An order pointing to id 99 is rejected.
- Deleting a customer can cascade, restrict or set NULL.
Where it is used
Order lines pointing to orders, employees pointing to their manager, and comments pointing to posts use foreign keys. Joins follow these links.
Common pitfall
Missing indexes on foreign-key columns slow joins and parent deletes. CASCADE deletes can remove far more data than expected. Some large systems drop foreign keys for sharding or write speed and then must enforce consistency in application code, which is error-prone. Circular references complicate inserts, requiring deferred constraints or nullable columns.
Where it fits in the course
Foreign Keys is topic 6 of 51 in Databases, rated Beginner. It follows Primary Keys. The next topic is SQL Basics.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Databases quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Databases quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Foreign Keys?
Where do people use Foreign Keys?
What is the most common mistake with Foreign Keys?
What should I learn before this topic?
How can I practice it?
Is Foreign Keys hard to learn?
How long does it take to learn Foreign Keys?
Which topics are related to Foreign Keys?
What should I study after Foreign Keys?
Related topics
- Primary Keys (Databases)
- SQL Basics (Databases)
- Tables, Rows and Columns (Databases)
- SELECT Queries (Databases)
- SSH Keys (DevOps & Tooling)