Đăng nhập

Bài 27: ALTER TABLE – Sửa cấu trúc bảng

Khi thiết kế cơ sở dữ liệu, đôi khi bạn không thể đoán trước được tất cả các yêu cầu ngay từ đầu. Một bảng đã tạo ra có thể cần được thay đổi – thêm một cột mới, đổi tên cột, thay đổi kiểu dữ liệu, hoặc xóa bỏ một thành phần nào đó. Đó là lúc chúng ta cần đến câu lệnh ALTER TABLE.

Hãy tưởng tượng bạn đã xây xong ngôi nhà – nhưng sau đó muốn thêm một căn phòng, đổi màu tường, hoặc gỡ bỏ cửa sổ. Câu lệnh ALTER TABLE chính là công cụ giúp bạn “cải tạo” bảng dữ liệu tương tự như vậy.


Mục tiêu bài học

  • Hiểu cách dùng ALTER TABLE để thay đổi cấu trúc bảng
  • Nắm được các thao tác phổ biến: thêm cột, đổi tên cột, đổi kiểu dữ liệu, xóa cột
  • Biết cách áp dụng vào tình huống thực tế

Cú pháp cơ bản của ALTER TABLE

ALTER TABLE ten_bang
THAO_TAC;

Trong đó, THAO_TAC là hành động bạn muốn thực hiện trên bảng.


Thêm cột mới vào bảng

Giả sử bạn có bảng sinh_vien, và bạn muốn thêm cột email kiểu VARCHAR(100):

ALTER TABLE sinh_vien
ADD email VARCHAR(100);

Bạn có thể thêm nhiều cột cùng lúc:

ALTER TABLE sinh_vien
ADD (
    dia_chi VARCHAR(255),
    so_dien_thoai VARCHAR(20)
);

Đổi tên cột (MySQL 8+)

Nếu bạn muốn đổi tên cột ten_sv thành ho_ten, bạn có thể dùng:

ALTER TABLE sinh_vien
RENAME COLUMN ten_sv TO ho_ten;

Đổi kiểu dữ liệu của cột

Ví dụ: bạn muốn cột so_dien_thoai từ VARCHAR(20) sang VARCHAR(15):

ALTER TABLE sinh_vien
MODIFY so_dien_thoai VARCHAR(15);

Lưu ý: Một số phiên bản MySQL còn dùng CHANGE thay cho MODIFY khi muốn vừa đổi kiểu, vừa đổi tên:

ALTER TABLE sinh_vien
CHANGE so_dien_thoai so_dt VARCHAR(15);

Xóa cột khỏi bảng

Nếu một cột không còn cần thiết nữa:

ALTER TABLE sinh_vien
DROP COLUMN dia_chi;

Hãy cẩn thận với thao tác này, vì dữ liệu trong cột đó sẽ bị mất vĩnh viễn!


Đổi tên bảng

Để đổi tên toàn bộ bảng:

RENAME TABLE sinh_vien TO danh_sach_sv;

Hoặc:

ALTER TABLE sinh_vien
RENAME TO danh_sach_sv;

7. Một vài lưu ý thực tế

  • Nên sao lưu dữ liệu trước khi thay đổi cấu trúc bảng, đặc biệt trên hệ thống đang vận hành.
  • Tránh sửa đổi bảng khi đang có người dùng truy cập để không gây gián đoạn.
  • Với các hệ thống lớn, hãy kiểm tra tương thích giữa các bảng nếu bạn thay đổi tên hoặc loại bỏ cột khóa ngoại.

Ôn lại nhanh

Mục đíchCâu lệnh mẫu
Thêm cột mớiALTER TABLE ten_bang ADD ten_cot KIEU_DU_LIEU;
Đổi tên cộtRENAME COLUMN ten_cu TO ten_moi;
Đổi kiểu dữ liệuMODIFY ten_cot KIEU_MOI;
Xóa cộtDROP COLUMN ten_cot;
Đổi tên bảngRENAME TO ten_bang_moi;

Bài tập thực hành

  1. Tạo bảng khoa_hoc với các cột id, ten_khoa_hoc
  2. Thêm cột mo_ta kiểu TEXT
  3. Đổi tên cột ten_khoa_hoc thành tieu_de
  4. Thay đổi kiểu của mo_ta thành VARCHAR(255)
  5. Xóa cột mo_ta

Trong bài tiếp theo, chúng ta sẽ học một công cụ cực kỳ quan trọng giúp tăng tốc độ truy vấn trong cơ sở dữ liệu – Index. Bạn sẽ thấy khi nào nên dùng, và khi nào không nên dùng để tránh làm hệ thống chậm đi.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.