Khoá ngoại – Hướng dẫn liên kết bảng MySQL trong phpmyadmin

Trong bài viết này, chúng ta sẽ khám phá khái niệm khoá ngoại trong MySQL và hướng dẫn cách kết nối các bảng trong phpmyadmin.

Khóa ngoại trong MySQL

Khóa ngoại trong MySQL
Hình ảnh minh họa khóa ngoại trong MySQL

Khóa ngoại (foreign key) trong MySQL là thuộc tính cho phép xác định mối quan hệ giữa hai bảng trong cơ sở dữ liệu. Khóa ngoại giúp thiết lập các quy tắc và ràng buộc để đảm bảo tính nhất quán và toàn vẹn dữ liệu.

Ví dụ, chúng ta có hai bảng là “Users” chứa thông tin người dùng và “Order” chứa thông tin đơn hàng của người dùng. Ta có thể thiết lập khóa ngoại trong bảng “Order” bằng cách liên kết cột “user_id” với cột “id” trong bảng “Users”. Điều này giúp xác định rằng mỗi đơn hàng thuộc về người dùng nào.

Việc sử dụng khóa ngoại trong MySQL giúp tăng tốc độ truy vấn dữ liệu khi JOIN nhiều bảng. Nếu như hai bảng có mối quan hệ nhưng chưa được liên kết bằng khóa ngoại, việc truy vấn dữ liệu sẽ trở nên chậm chạp. Nhưng khi đã có liên kết, MySQL có thể lấy được dữ liệu tương ứng trong bảng thứ hai một cách nhanh chóng.

Cú pháp tạo khóa ngoại bằng lệnh SQL như sau:

FOREIGN KEY (Custom_ID) REFERENCES TABLE(ID)

Trong đó:

  • FOREIGN KEY: Là câu lệnh để tạo khóa ngoại.
  • Custom_ID: Là tên cột sẽ tạo khóa ngoại trong bảng thứ hai.
  • TABLE: Tên bảng thứ nhất (Bảng cần thiết lập mối quan hệ).
  • ID: Là khóa chính trong bảng thứ nhất.

Ví dụ, có bảng “users” với các cột “ID, name, phone, pass, address” và bảng “order” với các cột “ID, user_id, num, product_id” cũng có cột “ID” là khóa chính. Để thiết lập khóa ngoại cho cột “user_id” liên kết với bảng “users” sử dụng khóa chính là “ID”, ta có thể sử dụng câu lệnh sau:

FOREIGN KEY (user_id) REFERENCES users(ID)

Hướng dẫn kết nối bảng MySQL trong phpmyadmin

Trong công cụ quản lý cơ sở dữ liệu MySQL, phpmyadmin cung cấp chức năng để tạo khóa ngoại cho các bảng mà không cần sử dụng câu lệnh SQL.

Để tạo khóa ngoại trong phpmyadmin, vào bảng cần tạo khóa ngoại, chọn tab “Structure” (Cấu trúc bảng) và bấm vào nút “Relation view” (Hiển thị quan hệ).

Tạo khóa ngoại trong phpmyadmin
Hình ảnh minh họa tạo khóa ngoại trong phpmyadmin

Tại đây, bạn có thể tạo nhiều khóa ngoại cho các cột của bảng này với các bảng khác.

Tạo khóa ngoại trong phpmyadmin
Hình ảnh minh họa tạo khóa ngoại trong phpmyadmin

Trên ảnh ví dụ, có các số từ 1 đến 7, tương ứng với các ô thông tin như sau:

  1. Đặt tên cho ràng buộc.
  2. Thuộc tính ràng buộc khi dữ liệu liên kết bị xóa.
  3. Thuộc tính ràng buộc khi dữ liệu liên kết bên bảng chính có sự thay đổi.
  4. Tên cột tạo ràng buộc trong bảng hiện tại (khóa ngoại).
  5. Database chứa bảng sẽ được ràng buộc.
  6. Tên bảng sẽ được ràng buộc tới.
  7. Cột ràng buộc (Khóa chính trong bảng).

Trong thuộc tính ràng buộc “ON DELETE” và “ON UPDATE” có 4 thuộc tính để lựa chọn là “CASCADE, SET NULL, NO ACTION, RESTRICT”.

  • “CASCADE” thay đổi cùng, khi khóa chính bị xóa, dữ liệu bảng bên khóa ngoại tương ứng cũng bị xóa. Ngược lại, khi cập nhật khóa ngoại, khóa ngoại tương ứng được cập nhật.
  • “SET NULL” đặt khóa ngoại về giá trị rỗng.
  • “NO ACTION” và “RESTRICT” cho phép khóa ngoại không bị tác động khi xóa dữ liệu hoặc cập nhật khóa chính.

Kết nối bảng trong phpmyadmin
Hình ảnh minh họa liên kết bảng trong phpmyadmin

Sau khi nhập thông tin, chỉ cần bấm nút “Save”, phpmyadmin sẽ tự động tạo khóa ngoại và kết nối giữa hai bảng này.

Để xem tất cả các liên kết bảng trong một cơ sở dữ liệu, chọn cơ sở dữ liệu đó và chọn tab “Designer” (Bộ thiết kế).

Bảng thiết kế trong phpmyadmin
Hình ảnh minh họa bảng thiết kế trong phpmyadmin

Ở đây, bạn có thể xem tất cả các liên kết bảng một cách chi tiết và dễ theo dõi.

Cảm ơn bạn đã đọc đến cuối bài viết! Chúc bạn học tốt!

Xem thêm các bài hướng dẫn MySQL tại đây

XEM THÊM

FEATURED TOPIC