MySQL Constraints

MySQL Constraints: Định Nghĩa, Cú Pháp và Ví Dụ

MySQL Constraints (Ràng buộc MySQL) là các quy tắc được áp dụng trên các bảng trong cơ sở dữ liệu để đảm bảo tính chính xác và tính hợp lệ của dữ liệu. Bằng cách sử dụng constraints, người quản trị cơ sở dữ liệu có thể kiểm soát loại dữ liệu nào có thể được đưa vào bảng, giúp duy trì tính toàn vẹn của dữ liệu.

Các loại Ràng buộc trong MySQL

Các loại ràng buộc phổ biến trong MySQL bao gồm:

  • NOT NULL: Đảm bảo rằng một cột không được để trống.
  • UNIQUE: Đảm bảo rằng tất cả các giá trị trong một cột phải là duy nhất.
  • PRIMARY KEY: Một ràng buộc đặc biệt khi kết hợp NOT NULL và UNIQUE, được sử dụng để xác định từng bản ghi trong bảng.
  • FOREIGN KEY: Được sử dụng để xác định mối quan hệ giữa hai bảng, đảm bảo tính toàn vẹn tham chiếu.
  • CHECK: Đảm bảo rằng giá trị trong một cột đáp ứng một điều kiện nhất định.
  • DEFAULT: Cung cấp một giá trị mặc định cho cột khi không có giá trị nào được chỉ định.

Cú Pháp Ràng buộc trong MySQL

Dưới đây là cú pháp cơ bản để thêm các loại ràng buộc này vào bảng trong MySQL:

CREATE TABLE ten_bang (
    ten_cot1 tipo_dulieu NOT NULL,
    ten_cot2 tipo_dulieu UNIQUE,
    ten_cot3 tipo_dulieu PRIMARY KEY,
    ten_cot4 tipo_dulieu,
    ten_cot5 tipo_dulieu,
    CONSTRAINT ten_constraint FOREIGN KEY (ten_cot4) REFERENCES bang_khac(ten_cot),
    CHECK (ten_cot5 > 0),
    DEFAULT valor_mac_dinh
);

Ví Dụ Cụ Thể về MySQL Constraints

Dưới đây là một ví dụ cụ thể để minh họa cách sử dụng các ràng buộc trong MySQL:

CREATE TABLE sinh_vien (
    id INT NOT NULL AUTO_INCREMENT,
    ten VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE,
    tuoi INT,
    PRIMARY KEY (id),
    CHECK (tuoi >= 18),
    DEFAULT 'Không xác định'
);

Trong ví dụ trên:

  • Cột id được định nghĩa là PRIMARY KEY, đảm bảo rằng mọi giá trị trong cột này là duy nhất và không null.
  • Cột ten không được để trống (NOT NULL).
  • Cột email phải là duy nhất cho mỗi sinh viên (UNIQUE).
  • Cột tuoi có ràng buộc CHECK, đảm bảo rằng tuổi phải lớn hơn hoặc bằng 18.
  • Cột tuoi cũng có thể được đặt giá trị mặc định là 'Không xác định' nếu không có giá trị nào được cung cấp.

Kết Luận

Ràng buộc trong MySQL đóng vai trò quan trọng trong việc duy trì tính đúng đắn và toàn vẹn của dữ liệu. Khi thiết kế cơ sở dữ liệu, việc sử dụng các ràng buộc một cách hợp lý sẽ giúp cho dữ liệu trở nên đáng tin cậy và dễ dàng quản lý hơn.