Thêm cột trong SQL Server (Lệnh ALTER TABLE)

By 3 năm ago
5 out of 5

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!

1. Thêm cột vào bảng trong SQL

1.1 Cú pháp

Để 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;

1.2 Ví dụ

Để 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);

2. Thêm nhiều cột vào 1 bảng trong SQL Server

2.1 Cú pháp

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;

2.2 Ví dụ

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);

3. Chỉnh sửa cột trong bảng trong SQL Server

3.1 Cú pháp

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;

3.2 Ví dụ

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;

4. Xóa cột trong bảng trong SQL Server

4.1 Cú pháp

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;

4.2 Ví dụ

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.

5. Cách đổi tên cột của bảng trong SQL Server

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.

5.1 Cú pháp

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’;

5.2 Ví dụ

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’;

6. Đổi tên bảng trong SQL Server

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.

6.1 Cú pháp

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’;

6.2 Ví dụ

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’;

7. Sử dụng lệnh ALTER TABLE để thay đổi kiểu dữ liệu

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ể:

  • SQL Server/ MS Access:
ALTER TABLE ten_bang

 ALTER COLUMN ten_cot kieu_dulieu;
  • My SQL/Oracle (phiên bản trước 10G):
ALTER TABLE ten_bang MODIFY COLUMN ten_cot kieu_dulieu;
  • Oracle (phiên bản 10G trở lên):

ALTER TABLE ten_bang

MODIFY ten_cot kieu_dulieu;

8. Sử dụng lệnh ALTER TABLE để thêm ràng buộc

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:

  • Ràng buộc NOT NULL cho một cột:
ALTER TABLE ten_bang MODIFY ten_cot kieu_dulieu NOT NULL;
  • Ràng buộc UNIQUE trên một bảng:
ALTER TABLE ten_bang
ADD CONSTRAINT RangbuocUnique UNIQUE(cot1, cot2...);
  • Ràng buộc CHECK trên một bảng:
 ALTER TABLE ten_bang
 ADD CONSTRAINT RangbuocUnique CHECK (DIEUKIEN);
  • Ràng buộc PRIMARY KEY trên một bảng:
ALTER TABLE ten_bang
 ADD CONSTRAINT Khoachinh PRIMARY KEY (cot1, cot2...);

9. Sử dụng lệnh ALTER TABLE để xóa ràng buộc

  • Các bạn cũng có thể xóa bỏ các ràng buộc trên cột, bảng trong SQL Server bằng câu lệnh ALTER TABLE. Cú pháp như sau:
ALTER TABLE ten_bang
DROP CONSTRAINT RangbuocUnique;
  • Trường hợp đang sử dụng MySQL thì cú pháp để xóa ràng buộc trên cột như sau:
ALTER TABLE ten_bang

DROP INDEX RangbuocUnique;
  • Nếu muốn xóa bỏ ràng buộc PRIMARY KEY trên bảng thực hiện cú pháp:
 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!

Share
Thảo Larskanis

Tốt nghiệp Graduated Windesheim 2020, top Đại học lớn nhất thế giới, tôi mở blog chia sẻ kiến thức, kinh nghiệm về SQL