1. Giới thiệu
ALTER TABLE là một câu lệnh trong SQL được sử dụng để thay đổi cấu trúc của bảng đã tồn tại trong cơ sở dữ liệu mà không cần phải xóa và tạo lại bảng. Câu lệnh này cho phép bạn thêm cột mới, xóa cột, thay đổi kiểu dữ liệu của cột, đổi tên bảng, và thêm các ràng buộc (constraints). ALTER TABLE rất hữu ích khi bạn cần điều chỉnh hoặc mở rộng bảng dữ liệu mà không làm mất dữ liệu đã có.
Trong bài viết này, chúng ta sẽ khám phá cách sử dụng ALTER TABLE trong MySQL, các chức năng chi tiết của nó, cú pháp và các ví dụ cụ thể để minh họa.
2. Các chức năng của ALTER TABLE
Câu lệnh ALTER TABLE có thể thực hiện nhiều tác vụ khác nhau, bao gồm:
- Thêm cột mới: Bạn có thể thêm một hoặc nhiều cột mới vào bảng hiện có.
- Xóa cột: Xóa bỏ cột không cần thiết khỏi bảng.
- Thay đổi kiểu dữ liệu: Thay đổi kiểu dữ liệu hoặc ràng buộc của một cột.
- Đổi tên bảng hoặc cột: Đổi tên bảng hoặc tên của cột trong bảng.
- Thêm hoặc xóa ràng buộc: Thêm hoặc loại bỏ ràng buộc như
PRIMARY KEY,FOREIGN KEY,UNIQUE, v.v.
3. Cú pháp của ALTER TABLE
a. Thêm cột mới vào bảng
ALTER TABLE table_name
ADD column_name datatype;b. Xóa cột khỏi bảng
ALTER TABLE table_name
DROP COLUMN column_name;c. Thay đổi kiểu dữ liệu của cột
ALTER TABLE table_name
MODIFY column_name new_datatype;d. Đổi tên bảng
ALTER TABLE old_table_name
RENAME TO new_table_name;e. Đổi tên cột
ALTER TABLE table_name
CHANGE old_column_name new_column_name datatype;f. Thêm ràng buộc (constraint)
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
constraint_definition;Ví dụ: Thêm khóa ngoại (FOREIGN KEY)
ALTER TABLE orders
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id) REFERENCES customers(customer_id);4. Các ví dụ cụ thể về ALTER TABLE
a. Thêm cột mới vào bảng
Ví dụ 1: Thêm cột email vào bảng employees
ALTER TABLE employees
ADD email VARCHAR(100);Sau câu lệnh này, cột email sẽ được thêm vào bảng employees, có kiểu dữ liệu là chuỗi ký tự với độ dài tối đa là 100.
b. Xóa cột khỏi bảng
Ví dụ 2: Xóa cột email khỏi bảng employees
ALTER TABLE employees
DROP COLUMN email;Câu lệnh này sẽ xóa cột email khỏi bảng employees.
c. Thay đổi kiểu dữ liệu của cột
Ví dụ 3: Thay đổi kiểu dữ liệu của cột salary từ DECIMAL(10,2) sang INT
ALTER TABLE employees
MODIFY salary INT;Câu lệnh này sẽ thay đổi kiểu dữ liệu của cột salary trong bảng employees từ kiểu số thực (DECIMAL) sang kiểu số nguyên (INT).
d. Đổi tên bảng
Ví dụ 4: Đổi tên bảng employees thành staff
ALTER TABLE employees
RENAME TO staff;Câu lệnh này sẽ đổi tên bảng từ employees sang staff.
e. Đổi tên cột
Ví dụ 5: Đổi tên cột first_name thành fname trong bảng employees
ALTER TABLE employees
CHANGE first_name fname VARCHAR(50);Câu lệnh này sẽ đổi tên cột first_name thành fname và giữ nguyên kiểu dữ liệu của nó.
f. Thêm ràng buộc FOREIGN KEY
Ví dụ 6: Thêm khóa ngoại cho cột customer_id trong bảng orders
ALTER TABLE orders
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id) REFERENCES customers(customer_id);Câu lệnh này thêm một khóa ngoại FOREIGN KEY cho cột customer_id trong bảng orders, ràng buộc với cột customer_id trong bảng customers.
g. Xóa ràng buộc
Ví dụ 7: Xóa khóa ngoại fk_customer khỏi bảng orders
ALTER TABLE orders
DROP FOREIGN KEY fk_customer;Câu lệnh này sẽ xóa ràng buộc khóa ngoại fk_customer khỏi bảng orders.
5. Một số lưu ý khi sử dụng ALTER TABLE
a. Sao lưu dữ liệu trước khi thay đổi
Trước khi thực hiện bất kỳ thay đổi nào trên bảng, hãy đảm bảo rằng bạn đã sao lưu dữ liệu. Các thao tác như xóa cột hoặc thay đổi kiểu dữ liệu có thể dẫn đến mất dữ liệu nếu không cẩn thận.
b. Tương thích với kiểu dữ liệu mới
Khi thay đổi kiểu dữ liệu của một cột, hãy chắc chắn rằng kiểu dữ liệu mới tương thích với dữ liệu hiện có. Ví dụ, nếu bạn thay đổi một cột từ VARCHAR sang INT, tất cả các giá trị không phải số sẽ gây lỗi.
c. Kiểm tra ràng buộc trước khi thêm hoặc xóa
Khi thêm hoặc xóa các ràng buộc như khóa chính (PRIMARY KEY) hoặc khóa ngoại (FOREIGN KEY), hãy đảm bảo rằng các dữ liệu liên quan đã được kiểm tra và chuẩn bị kỹ lưỡng để tránh vi phạm tính toàn vẹn dữ liệu.
Kết luận
Câu lệnh ALTER TABLE trong MySQL là một công cụ mạnh mẽ giúp bạn thay đổi cấu trúc của bảng mà không cần phải xóa và tạo lại bảng. Bạn có thể thêm cột mới, xóa cột, thay đổi kiểu dữ liệu, đổi tên bảng hoặc cột, cũng như thêm hoặc xóa các ràng buộc quan trọng như khóa chính hoặc khóa ngoại.
Việc nắm vững cách sử dụng ALTER TABLE sẽ giúp bạn linh hoạt hơn trong việc quản lý và mở rộng cấu trúc cơ sở dữ liệu mà không làm ảnh hưởng đến dữ liệu hiện có. Hãy thử áp dụng các ví dụ trên trong các bài tập và dự án thực tế để hiểu rõ hơn về cách sử dụng ALTER TABLE trên CodeTutHub!









