Trang chủ » MySQL » Cách sử dụng khóa ngoại (Foreign Key) trong MySQL

MySQL

Cách sử dụng khóa ngoại (Foreign Key) trong MySQL

24/12/2023

Trong MySQL, Khóa Ngoại (Foreign Key) là một công cụ quan trọng để xác định mối quan hệ giữa hai bảng trong cơ sở dữ liệu. Khóa Ngoại được sử dụng để tạo liên kết giữa hai bảng thông qua cột có chung giá trị. Việc sử dụng Khóa Ngoại giúp duy trì tính nhất quán và tính toàn vẹn dữ liệu trong cơ sở dữ liệu.

Dưới đây là mô tả chi tiết về Khóa Ngoại trong MySQL:

Khóa Ngoại là gì?

Khóa Ngoại là một cột hoặc một tập hợp các cột trong một bảng, chứa các giá trị tham chiếu đến các hàng trong bảng khác (thường là cột chính của bảng đó).

Tạo Khóa Ngoại:

Để tạo Khóa Ngoại trong MySQL, bạn sử dụng câu lệnh FOREIGN KEY trong mệnh đề CREATE TABLE khi bạn định nghĩa bảng.

CREATE TABLE table_name (
  column1 datatype,
  column2 datatype,
  ...
  FOREIGN KEY (column_name) REFERENCES other_table(other_column)
);

Ví dụ:

Giả sử bạn có hai bảng: orderscustomers. Bạn muốn liên kết bảng orders với bảng customers thông qua cột customer_id.

CREATE TABLE customers (
  customer_id INT PRIMARY KEY,
  customer_name VARCHAR(50)
);

CREATE TABLE orders (
  order_id INT PRIMARY KEY,
  order_date DATE,
  customer_id INT,
  FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

Trong ví dụ này, cột customer_id trong bảng orders là một Khóa Ngoại tham chiếu đến cột customer_id trong bảng customers.

Tính Nhất Quán và Tính Toàn Vẹn:

Khóa Ngoại giúp đảm bảo tính nhất quán và tính toàn vẹn dữ liệu trong cơ sở dữ liệu. Nó ngăn chặn việc thêm hoặc cập nhật dữ liệu trong bảng con mà không có tương ứng trong bảng cha.

Tùy chọn xử lý sự kiện:

Bạn có thể đặt tùy chọn xử lý sự kiện khi có thay đổi trong bảng cha, như ON DELETE hoặc ON UPDATE. Ví dụ: ON DELETE CASCADE sẽ xóa tất cả các hàng trong bảng con khi hàng tương ứng trong bảng cha bị xóa.

CREATE TABLE orders (
  order_id INT PRIMARY KEY,
  order_date DATE,
  customer_id INT,
  FOREIGN KEY (customer_id)
    REFERENCES customers(customer_id)
    ON DELETE CASCADE
);

Trong trường hợp này, khi một khách hàng bị xóa khỏi bảng customers, tất cả các đơn đặt hàng của khách hàng đó trong bảng orders cũng sẽ bị xóa.

Đối với việc quản lý cơ sở dữ liệu và duy trì mối quan hệ giữa các bảng, sử dụng Khóa Ngoại là một phần quan trọng của thiết kế cơ sở dữ liệu.

 

 

 

Bài viết liên quan


Trong quá trình học tập và làm việc, nhiều khi chúng ta thêm dữ liệu từ file Excel, trong quá trình thao tác có thể có các bản ghi bị trùng và các bạn muốn tìm kiếm và xóa các bản ghi trùng lặp đó đi, thì các bạn có thể theo dõi bài viết sau của SoftVietDesign.com các bạn nhé.
Có nhiều loại dữ liệu khác nhau được hỗ trợ trong MySQL. Trong số đó đôi khi chúng ta cần dùng đến kiểu dữ liệu DATE để lưu trữ giá trị dữ liệu. Kiểu dữ liệu DATE được sử dụng cho các giá trị có phần ngày nhưng không có phần thời gian.

22:38 . 10/01/2024

Hàm WEEKDAY() trong MySQL được sử dụng để tìm giá trị ngày trong tuần cho một ngày cụ thể. Nếu ngày là NULL thì hàm WEEKDAY() sẽ trả về NULL. Ngược lại, nó trả về chỉ mục cho một ngày, tức là 0 cho Thứ Hai, 1 cho Thứ Ba,... 6 cho Chủ Nhật.

22:38 . 30/12/2023

Hàm SEC_TO_TIME() trong MySQL được sử dụng để chuyển đổi một giá trị thời gian (trong đơn vị giây) thành dạng chuỗi thời gian.

22:33 . 30/12/2023

Hàm YEARWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho tuần trong năm, dựa trên một giá trị ngày hoặc ngày/tháng cung cấp

22:30 . 30/12/2023

Hàm YEAR() trong MySQL được sử dụng để trích xuất phần năm từ một giá trị ngày hoặc ngày/tháng

22:10 . 30/12/2023

Hàm LTRIM() trong MySQL được sử dụng để loại bỏ các ký tự khoảng trắng từ phía bên trái (bắt đầu) của một chuỗi ký tự.

22:03 . 30/12/2023

Hàm DAYOFWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho ngày trong tuần (từ 1 đến 7), với Chủ nhật là ngày đầu tiên (1) và Thứ Bảy là ngày cuối cùng (7).

09:01 . 30/12/2023

Hàm DATE_SUB() trong MySQL được sử dụng để trừ một khoảng thời gian cụ thể từ một giá trị ngày/tháng cung cấp.

 

0988 542 856
0988 542 856