Introduction
A foreign key connects two tables by linking a column in one table to a column in another. This helps keep data organized and related.
Jump into concepts and practice - no test required
A foreign key connects two tables by linking a column in one table to a column in another. This helps keep data organized and related.
CREATE TABLE ChildTable ( id INT PRIMARY KEY, parent_id INT, FOREIGN KEY (parent_id) REFERENCES ParentTable(id) );
CREATE TABLE Orders ( order_id INT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) );
CREATE TABLE Employees ( emp_id INT PRIMARY KEY, dept_id INT, FOREIGN KEY (dept_id) REFERENCES Departments(dept_id) );
ALTER TABLE Reviews ADD CONSTRAINT fk_product FOREIGN KEY (product_id) REFERENCES Products(product_id);
This example creates two tables, Authors and Books, linked by author_id. It inserts authors and books, then shows book titles with their authors.
CREATE TABLE Authors ( author_id INT PRIMARY KEY, name VARCHAR(100) ); CREATE TABLE Books ( book_id INT PRIMARY KEY, title VARCHAR(100), author_id INT, FOREIGN KEY (author_id) REFERENCES Authors(author_id) ); INSERT INTO Authors VALUES (1, 'Jane Austen'); INSERT INTO Authors VALUES (2, 'Mark Twain'); INSERT INTO Books VALUES (101, 'Pride and Prejudice', 1); INSERT INTO Books VALUES (102, 'Adventures of Huckleberry Finn', 2); SELECT Books.title, Authors.name FROM Books JOIN Authors ON Books.author_id = Authors.author_id;
Foreign keys help keep data consistent by preventing invalid links.
Trying to insert a child record with a non-existing parent_id will cause an error.
Deleting a parent record that has children may be blocked or cascade depending on settings.
Foreign keys connect tables by linking columns.
They keep data organized and prevent mistakes.
They are essential for relational database design.
foreign key in a database?CREATE TABLE Authors (AuthorID INT PRIMARY KEY, Name VARCHAR(50));CREATE TABLE Books (BookID INT PRIMARY KEY, Title VARCHAR(100), AuthorID INT, FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID));INSERT INTO Books (BookID, Title, AuthorID) VALUES (1, 'My Book', 99); when there is no author with AuthorID = 99 in Authors?CREATE TABLE Orders (OrderID INT PRIMARY KEY, CustomerID INT, FOREIGN KEY CustomerID REFERENCES Customers(CustomerID));CREATE TABLE Departments (DeptID INT PRIMARY KEY, DeptName VARCHAR(50));CREATE TABLE Employees (EmpID INT PRIMARY KEY, EmpName VARCHAR(50), DeptID INT, FOREIGN KEY (DeptID) REFERENCES Departments(DeptID) ON DELETE SET NULL);