ALTER TABLE là lệnh thêm cột trong SQL Server. Nếu các bạn học môn cấu trúc dữ liệu thì bắt buộc phải biết câu lệnh này bởi nó được sử dụng rất thường xuyên. Để hiểu rõ hơn về câu lệnh thêm cột hãy cùng tìm hiểu ngay sau đây!
Mục lục[ẩn]
Để thêm cột vào bảng trong SQL các bạn có thể sử dụng câu lệnh ALTER TABLE theo cú pháp sau đây:
ALTER TABLE ten_bang ADD ten_cot dinh_nghia_cot;
Để các bạn có thể hiểu rõ hơn về cách thêm một cột trong SQL chúng tôi xin lấy một ví dụ cụ thể. Chúng tôi có bảng tên là nhanvien và sẽ thực hiện cách thêm cột ho vào trong bảng với kiểu VARCHAR(50). Cụ thể như sau:
ALTER TABLE nhanvien ADD ho VARCHAR(50);
Nếu các bạn muốn cùng lúc thêm nhiều cột vào trong 1 bảng thì có thể thực hiện cú pháp sau:
ALTER TABLE ten_bang ADD cot1 dinh_nghia_cot, cot2 dinh_nghia_cot, … cot_n dinh_nghia_cot;
Dưới đây chúng tôi có một ví dụ để các bạn dễ hiểu hơn. Chúng tôi sẽ thực hiện thêm vào trong bảng nhanvien 2 cột mới là cột ho với trường VARCHAR(50) và cột ten với trường VARCHAR(40). Như vậy, câu lệnh sẽ là:
ALTER TABLE nhanvien ADD ho VARCHAR(50), ten VARCHAR(40);
Ngoài sử dụng ALTER TABLE để làm câu lệnh thêm cột trong SQL thì các bạn cũng có thể dùng để chỉnh sửa cột trong bảng. Cụ thể câu lệnh như sau:
ALTER TABLE ten_bang ALTER COLUMN ten_cot kieu_cot;
Một ví dụ cụ thể cách chỉnh sửa cột họ trong bảng nhanvien sang kiểu dữ liệu VARCHAR(75) và không chấp nhận giá trị NULL sẽ được biết như sau:
ALTER TABLE nhanvien ALTER COLUMN ho VARCHAR(75) NOT NULL;
Các bạn cũng có thể sử dụng ALTER TABLE để xóa cột trong bảng. Cú pháp xóa cột như sau:
ALTER TABLE ten_cot DROP COLUMN ten_cot;
Dưới đây chúng tôi sẽ dùng cú pháp trên để xóa bỏ cột ho trong bảng nhanvien trong cơ sở dữ liệu SQL Server:
ALTER TABLE nhanvien DROP COLUMN ho;
Như vậy là cột ho đã thành công được xóa bỏ khỏi bảng nhanvien theo mong muốn.
Các bạn cũng có thể dùng câu lệnh ALTER TABLE để đổi tên bất kỳ cột nào trong bảng. Mặc dù có thể sử dụng sp_rename để đổi tên cột của bảng nhưng Microsoft vẫn khuyến khích người dùng nên xóa và tạo lại bảng. Mục đích là để không làm cho các kịch bản cùng quy trình lưu trữ bị hỏng.
Cú pháp dùng để đổi tên cột của bảng trong SQL Server như sau:
sp_rename ‘ten_bang.ten_cot_cu’, ‘ten_cot_moi’, “COLUMN’;
Tiếp theo chúng tôi sẽ chia sẻ một ví dụ đổi tên cột của bảng để các bạn có thể dễ hiểu hơn. Chúng ta có bảng nhanvien. Trong bảng này chúng ta sẽ thực hiện đổi tên cột ho sang thành honhanvien. Cú pháp đổi như sau:
sp_rename ‘nhanvien.ho’, ‘honhanvien’, ‘COLUMN’;
Nếu muốn đổi tên bảng trong SQL Server thì các bạn không thể sử dụng lệnh ALTER TABLE được mà thay vào đó sẽ sử dụng sp_rename. Tuy nhiên, Microsoft cũng khuyến khích người dùng nên xóa và tạo lại bảng vì có thể giúp kịch bản và cả quy trình lưu trữ không bị ảnh hưởng.
Cú pháp sử dụng sp_rename để đổi tên của bảng trong SQL Server như sau:
sp_rename ‘ten_bang_cu’, ‘ten_bang_moi’;
Chúng tôi sẽ thử đổi tên bảng nhanvien thành nv. Câu lệnh thực hiện như sau:
sp_rename ‘nhanvien’, ‘nv’;
Ngoài việc hướng dẫn sử dụng ALTER TABLE để thêm cột trong SQL chúng tôi sẽ hướng dẫn bạn thêm một cách nữa. Đó là sử dụng ALTER TABLE để thay đổi kiểu dữ liệu cho một cột trong bảng. Các bạn khi thực hiện cách này cần chọn câu lệnh cho đúng. Cụ thể:
ALTER TABLE ten_bang ALTER COLUMN ten_cot kieu_dulieu;
ALTER TABLE ten_bang MODIFY COLUMN ten_cot kieu_dulieu;
ALTER TABLE ten_bang
MODIFY ten_cot kieu_dulieu;
Trường hợp muốn thêm ràng buộc trên SQL Server các bạn làm theo cú pháp sau:
ALTER TABLE ten_bang MODIFY ten_cot kieu_dulieu NOT NULL;
ALTER TABLE ten_bang ADD CONSTRAINT RangbuocUnique UNIQUE(cot1, cot2...);
ALTER TABLE ten_bang
ADD CONSTRAINT RangbuocUnique CHECK (DIEUKIEN);
ALTER TABLE ten_bang
ADD CONSTRAINT Khoachinh PRIMARY KEY (cot1, cot2...);
ALTER TABLE ten_bang DROP CONSTRAINT RangbuocUnique;
ALTER TABLE ten_bang DROP INDEX RangbuocUnique;
ALTER TABLE ten_bang DROP CONSTRAINT Khoachinh;
Còn khi sử dụng MySQL thì cú pháp xóa ràng buộc PRIMARY KEY là:
ALTER TABLE ten_bang DROP PRIMARY KEY;
Trên đây là hướng dẫn cách thêm cột trong SQL và một vài cú pháp khác liên quan tới ALTER TABLE. Hy vọng sẽ hữu ích với các bạn!