Bỏ qua menu, vào nội dung chính

Quan hệ giữa các bảng trong SQL: 1-1, 1-n, n-n và cách tạo

Tìm hiểu cách tạo và quản lý các mối quan hệ giữa các bảng trong SQL, bao gồm các loại mối quan hệ như one-to-one, one-to-many và many-to-many.

3 phút đọc

Trong các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), việc tạo và quản lý các mối quan hệ giữa các bảng là một yếu tố quan trọng để tổ chức và truy vấn dữ liệu một cách hiệu quả. Các mối quan hệ giữa bảng giúp bạn giữ dữ liệu có cấu trúc, dễ dàng truy vấn và duy trì tính toàn vẹn của dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu về ba loại mối quan hệ chính trong SQL: one-to-one, one-to-many, và many-to-many.

Tài liệu PostgreSQL về ràng buộc, gồm khoá ngoại (foreign key)
Tài liệu PostgreSQL về ràng buộc, gồm khoá ngoại (foreign key) (www.postgresql.org), ảnh chụp ngày 27/09/2026.

Các loại mối quan hệ giữa các bảng trong SQL

1. Mối quan hệ One-to-One (1:1)

Mối quan hệ one-to-one xảy ra khi một bản ghi trong bảng A chỉ có thể liên kết với một bản ghi trong bảng B và ngược lại. Mối quan hệ này thường được sử dụng khi dữ liệu trong hai bảng có mối liên kết trực tiếp và dữ liệu trong một bảng có thể được phân tách sang bảng khác.

Ví dụ: Một nhân viên chỉ có một hồ sơ cá nhân duy nhất.

  • Bảng employees chứa thông tin về nhân viên.
  • Bảng employee_details chứa thông tin chi tiết về nhân viên (ví dụ, địa chỉ, số điện thoại, vv).

Cách tạo mối quan hệ One-to-One:

Để tạo mối quan hệ one-to-one, bạn cần sử dụng khóa chính (primary key) và khóa ngoại (foreign key).

sql-- Tạo bảng employees
CREATE TABLE employees (
 employee_id INT PRIMARY KEY,
 name VARCHAR(255) NOT NULL
);

-- Tạo bảng employee_details
CREATE TABLE employee_details (
 employee_id INT PRIMARY KEY,
 address VARCHAR(255),
 phone VARCHAR(20),
 FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
);

Nhận bài mới

Để lại email để nhận bài mới của series Kiến thức lập trình, hoặc theo dõi bằng RSS.

RSS Kiến thức lập trình

Email chỉ dùng để gửi bài mới, xem Chính sách bảo mật.

Trao đổi về dự án