Cách Tạo Bảng Và Thiết Lập Khóa Chính Trong MySQL

24/02/2026 P T P Chung 8 phút đọc 0 bình luận

Tại sao bảng dữ liệu và khóa chính quan trọng trong MySQL

Khi xây dựng một hệ thống quản lý dữ liệu, bảng (table) chính là nơi chứa đựng mọi thông tin, còn khóa chính (primary key) là "dấu vân tay" duy nhất của mỗi bản ghi. Nếu không có bảng được thiết kế tốt, dữ liệu sẽ trở nên lộn xộn và khó kiểm soát. Nếu thiếu khóa chính, việc xác định, cập nhật hay xóa một bản ghi cụ thể sẽ gặp nhiều khó khăn, thậm chí dẫn đến trùng lặp dữ liệu.

Tạo bảng trong MySQL

Cú pháp cơ bản

Để tạo một bảng mới, MySQL cung cấp lệnh CREATE TABLE. Cú pháp đơn giản nhất:

CREATE TABLE tên_bảng (
    cột1 kiểu_dữ_liệu,
    cột2 kiểu_dữ_liệu,
    ...
);

Chọn kiểu dữ liệu phù hợp

MySQL hỗ trợ nhiều kiểu dữ liệu khác nhau:

- Số nguyên: INT, TINYINT, BIGINT - Số thực: FLOAT, DOUBLE, DECIMAL - Chuỗi: VARCHAR, TEXT, CHAR - Ngày giờ: DATE, DATETIME, TIMESTAMP - Boolean: TINYINT(1) (thường dùng 0/1)

Ví dụ, để lưu trữ thông tin sinh viên:

CREATE TABLE sinh_vien (
    id INT,
    ho_ten VARCHAR(100),
    tuoi INT,
    email VARCHAR(100),
    ngay_sinh DATE
);

Ràng buộc (Constraints)

Để đảm bảo dữ liệu hợp lệ, ta có thể thêm các ràng buộc:

- NOT NULL: Bắt buộc phải có giá trị - UNIQUE: Giá trị duy nhất trong cột - DEFAULT: Giá trị mặc định nếu không chỉ định

CREATE TABLE sinh_vien (
    id INT NOT NULL,
    ho_ten VARCHAR(100) NOT NULL,
    tuoi INT DEFAULT 18,
    email VARCHAR(100) UNIQUE,
    ngay_sinh DATE
);

Thiết lập khóa chính (Primary Key)

Khái niệm khóa chính

Khóa chính là cột (hoặc tập hợp các cột) dùng để định danh duy nhất mỗi bản ghi trong bảng. Mỗi bảng chỉ có một khóa chính, và giá trị trong cột khóa chính không được phép trùng lặp hay bỏ trống.

Cách thêm khóa chính khi tạo bảng

Có hai cách phổ biến:

1. Thêm trực tiếp sau cột:
CREATE TABLE sinh_vien (
    id INT PRIMARY KEY,
    ho_ten VARCHAR(100) NOT NULL,
    tuoi INT DEFAULT 18,
    email VARCHAR(100) UNIQUE,
    ngay_sinh DATE
);
2. Thêm khóa chính cho nhiều cột (composite primary key):
CREATE TABLE sinh_vien (
    id INT,
    ho_ten VARCHAR(100) NOT NULL,
    tuoi INT DEFAULT 18,
    email VARCHAR(100) UNIQUE,
    ngay_sinh DATE,
    PRIMARY KEY (id, ho_ten)
);

Tự động tăng giá trị (AUTO_INCREMENT)

Với các bảng có nhiều bản ghi, thường ta muốn MySQL tự động gán giá trị duy nhất cho khóa chính. Sử dụng AUTO_INCREMENT:

Quảng cáo

300x250 In-Content Advertisement

CREATE TABLE sinh_vien (
    id INT PRIMARY KEY AUTO_INCREMENT,
    ho_ten VARCHAR(100) NOT NULL,
    tuoi INT DEFAULT 18,
    email VARCHAR(100) UNIQUE,
    ngay_sinh DATE
);

Mỗi khi thêm bản ghi mới, id sẽ tự động tăng 1.

Ví dụ thực tế: Quản lý sinh viên và điểm thi

Giả sử ta cần xây dựng hệ thống quản lý sinh viên và điểm thi:

CREATE TABLE sinh_vien (
    ma_sv INT PRIMARY KEY AUTO_INCREMENT,
    ho_ten VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE,
    ngay_sinh DATE
);

CREATE TABLE mon_hoc ( ma_mon INT PRIMARY KEY AUTO_INCREMENT, ten_mon VARCHAR(100) NOT NULL, so_tin_chi INT DEFAULT 2 );

CREATE TABLE diem_thi ( ma_diem INT PRIMARY KEY AUTO_INCREMENT, ma_sv INT NOT NULL, ma_mon INT NOT NULL, diem_thi FLOAT, FOREIGN KEY (ma_sv) REFERENCES sinh_vien(ma_sv), FOREIGN KEY (ma_mon) REFERENCES mon_hoc(ma_mon), UNIQUE (ma_sv, ma_mon) );

Ở đây, ma_svma_mon là khóa chính của các bảng tương ứng, giúp định danh duy nhất mỗi sinh viên và môn học. Bảng diem_thi dùng khóa chính riêng (ma_diem) và thêm ràng buộc UNIQUE (ma_sv, ma_mon) để đảm bảo mỗi sinh viên chỉ có một điểm cho mỗi môn.

Mẹo và lưu ý khi thiết kế bảng và khóa chính

- Chọn kiểu dữ liệu phù hợp: Tránh lãng phí bộ nhớ, ví dụ không dùng VARCHAR(255) nếu chỉ cần 50 ký tự. - Đặt tên cột rõ ràng: Sử dụng tên mô tả, tránh ký tự đặc biệt. - Luôn có khóa chính: Mỗi bảng nên có một khóa chính để đảm bảo tính toàn vẹn dữ liệu. - Sử dụng AUTO_INCREMENT cho khóa chính số: Giúp tự động sinh giá trị duy nhất. - Kiểm tra ràng buộc: Đảm bảo NOT NULL, UNIQUE được áp dụng đúng chỗ.

Kết luận

Việc tạo bảng và thiết lập khóa chính trong MySQL là bước nền tảng để xây dựng một cơ sở dữ liệu mạnh mẽ và hiệu quả. Bằng cách chọn đúng kiểu dữ liệu, áp dụng các ràng buộc hợp lý và luôn có khóa chính cho mỗi bảng, bạn sẽ đảm bảo dữ liệu được tổ chức gọn gàng, truy vấn nhanh chóng và an toàn trước các lỗi thường gặp. Hãy thực hành với các ví dụ trên và điều chỉnh theo nhu cầu cụ thể của dự án để nâng cao kỹ năng quản trị cơ sở dữ liệu của mình.

Quảng cáo

728x90 Bottom Advertisement

Thay thế bằng mã Google AdSense

Chia sẻ bài viết

Facebook Twitter

Bình luận

Chia sẻ ý kiến của bạn về bài viết này

Viết bình luận

Bình luận của bạn sẽ được kiểm duyệt trước khi hiển thị

Chưa có bình luận nào

Hãy là người đầu tiên bình luận về bài viết này!