Chủ Nhật, 8 Tháng Chín 2024
Trang chủPHP & MysqlMySQLKhoá ngoại - Hướng dẫn liên kết bảng MySQL trong phpmyadmin

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ẽ tìm hiểu về khóa ngoại trong MySQL là gì. Và hướng dẫn liên kết bảng MySQL trong phpmyadmin.

DANH SÁCH BÀI VIẾT
Khoá ngoại - Hướng dẫn liên kết bảng MySQL trong phpmyadmin
Toán tử Like và Not Like - Tìm kiếm khớp chuỗi trong MySQL
Thuộc tính ràng buộc PRIMARY KEY trong MySQL - Khóa chính
Các kiểu dữ liệu trong MySQL (Data Types) - Học MySQL
Tìm hiểu thuộc tính AUTO_INCREMENT trong MySQL - Giá trị tự tăng dần

Khóa ngoại trong MySQL

Khóa ngoại (foreign key) trong MySQL là một thuộc tính để xác định mối quan hệ giữa hai bảng trong cơ sở dữ liệu. Khóa ngoại cho phép bạn 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 trong cơ sở dữ liệu.

Ví dụ chúng ta có 2 bảng là bảng Users chứa thông tin người dùng, bảng Order bảng lưu trữ dữ liệu đơn hàng được đặt hàng từ người dùng. Như vậy bảng Users có id là khóa chính, ta có thể thiết lập khóa ngoại trong bảng Order là cột user_id liên kết(trỏ) tới id người dùng trong bảng Users để tạo mỗi quan hệ và xác định rằng đơn hàng này là của người dùng nào.

Việc xác định khóa ngoại trong cơ sở dữ liệu trong MySQL cũng sẽ giúp cho việc truy vấn dữ liệu khi cần JOIN nhiều bảng trong MySQL trở nên nhanh chóng hơn rất nhiều. Nếu 2 bảng có mỗi liên hệ nhưng chưa xác định mỗi quan hệ bằng khóa ngoại, như vậy khi join dữ liệu từ bảng này để kết hợp dữ liệu tương hợp trong bảng kia MySQL sẽ cần thực hiện tìm kiếm lần lượt. Tuy nhiên nếu đã có sự liên kết MySQL có thể ngay lập tức lấy được hàng phù hợp từ bảng thứ 2.

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

Để tạo khóa ngoại ta có cú pháp 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 đối với cột này trong bảng thứ 2.
  • 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 gồm các cột ID, name, phone, pass, address với ID là khóa chính. Và bảng order gồm các cột, ID, user_id, num, product_id cũng tương tự ID cũng là khóa chính trong bảng này.

Để thiết lập khóa ngoại cho cột user_id liên kết tới bảng users với khóa chính là ID. Ta có thể sử dụng câu lệnh sau để tạo mỗi liên kết.

FOREIGN KEY (user_id ) REFERENCES users (ID)

>>XEM THÊM: Khóa học lập trình C/C++ từ A-Z cho người mới – Giảm giá 40% hôm nay

Hướng dẫn liên kết bảng MySQL trong phpmyadmin

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

Để tạo khóa ngoại hay cũng có thể hiểu là liên kết các bảng trong phpmyadmin. Tại bảng mà bạn cần tạo khóa ngoại chọn vào tab Structure(Cấu trúc bảng), -> bấm bào Relation view(Hiển thị quan hệ).

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

Tại đây bạn có thể tạo các mỗi liên kết (khóa ngoại) cho các cột của bảng này với bảng khác(có thể tạo nhiều hơn 1).

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

Bên trên ảnh ví dụ mình có đánh số 1 đến 7(hehe..ảnh số cuối là 7 nhé, mình đánh hơi nhầm), tương ứng như sau.

>>XEM THÊM: Các hàm xử lý toán học trong MySQL – Học MySQL

  • 1: Đặt tên cho ràng buộc
  • 2: Thuộc tính ràng buộc nếu dữ liệu liên kết bên bảng chính 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 này(khóa ngoại).
  • 5: Database chứa bảng sẽ 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 ON UPDATE sẽ có 4 thuộc tính để lựa chọn là CASCASE, SET NULL, NO ACTION, RESTRICS. Về cơ bản mình sẽ giải thích ngắn gọn sau, để chi tiết chúng ta sẽ tìm hiểu trong bài viết sau:

  • CASCASE: 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 bị xóa các hàng liên quan, ngược lại khi cập nhật khóa ngoại tương ứng được cập nhật.
  • SET NULL: Đặt khóa ngoại về rỗng.
  • NO ACTION, RESTRICS: 2 thuộc tính cơ bản là giống nhau, cả 2 đều cho phép khóa ngoại không bị tác động khi xóa dữ liệu hay update khóa chính.

>>XEM THÊM: Các hàm làm tròn số ROUND, CEIL, FLOOR trong MySQL

Sau khi nhập xong thông tin, chỉ cần bấm nút Save lúc nào phpmyadmin sẽ tự tạo khóa ngoại và liên kết giữa 2 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 vào cơ sở dữ liệu đó, chọn vào tab Designer(Bộ thiết kế).

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

Ở đây sẽ hiển thị tất cả các liên kết bảng rất chi tiết và dễ theo dõi.

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

[XEM TẤT CẢ CÁC BÀI HƯỚNG DẪN MYSQL TẠI ĐÂY]

XEM THÊM
Hàm Max, Min trong MySQL – Tìm kiếm lớn nhất, bé nhất trong cột
Hàm SUM trong MYSQL – Tính tổng một cột (Hiểu trong 5 phút)
Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới
Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL
Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT
Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x