What are Keys in Relational Databases?
In a relational database, keys are crucial for ensuring data integrity and establishing relationships between tables. The two most important types of keys are:
- Primary Key: A unique identifier for each record in a table.
 - Foreign Key: A field in one table that references the primary key in another table.
 
Primary Key
- Ensures each row in a table is unique.
 - Can’t contain 
NULLvalues. - 
Examples:
- 
IDcolumn in auserstable. - 
OrderIDin anorderstable. 
 - 
 
Code Example: Creating a Primary Key
CREATE TABLE users (
    ID INT PRIMARY KEY,
    Name VARCHAR(50),
    Email VARCHAR(100)
);
Foreign Key
- Establishes a link between two tables.
 - Enforces referential integrity by ensuring the referenced record exists.
Code Example: Creating a Foreign Key 
Here’s how you link the 
orderstable to theuserstable using a foreign key: 
CREATE TABLE orders (
    OrderID INT PRIMARY KEY,
    OrderDate DATE,
    UserID INT,
    FOREIGN KEY (UserID) REFERENCES users(ID)
);
Relationships in Action
Consider these tables:
users Table:
| ID | Name | |
|---|---|---|
| 1 | Alice | alice@example.com | 
| 2 | Bob | bob@example.com | 
orders Table:
| OrderID | OrderDate | UserID | 
|---|---|---|
| 101 | 2025-01-10 | 1 | 
| 102 | 2025-01-11 | 2 | 
Query: Retrieve all orders along with user information.
SELECT orders.OrderID, orders.OrderDate, users.Name, users.Email
FROM orders
JOIN users ON orders.UserID = users.ID;
Why Keys Matter
Without keys, it’s easy to end up with duplicate or inconsistent data. For example:
- Orders with no valid 
UserIDwould exist. - Duplicate user records might clutter the database.
 
Challenge: Design Your Own Keys
Scenario: You’re building a database for a library system.
- What would you use as a primary key for books?
 - How would you design a foreign key to track which user has borrowed a specific book?
 
Think About It
- Why is it important to have a primary key in every table?
 - Can a table have multiple foreign keys? Why or why not?
 
              
    
Top comments (0)