Câu lệnh ALTER TABLE trong SQL được dùng để thêm, xoá và sửa đổi các cột trong một bảng đã có. Lệnh này cũng được sử dụng để thêm và xóa các ràng buộc đang tồn tại trên một bảng.
Cú pháp ALTER TABLE
Sử dụng lệnh ALTER TABLE để thêm cột
Để thêm một cột cho bảng ta sử dụng cú pháp sau:
ALTER TABLE ten_bang ADD ten_cot kieu_dulieu;
Sử dụng lệnh ALTER TABLE để xoá cột
Để xoá một cột trên một bảng ta sử dụng cú pháp sau:
ALTER TABLE ten_bang DROP COLUMN ten_cot;
Sử dụng lệnh ALTER TABLE để thay đổi kiểu dữ liệu
Để thay đổi kiểu dữ liệu của một cột trên một bảng ta sử dụng cú pháp sau, bạn lưu ý phiên bản để chọn câu lệnh cho đúng nhé.
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;
Sử dụng lệnh ALTER TABLE để thêm ràng buộc
Để thêm ràng buộc NOT NULL cho cột trên một bảng ta sử dụng cú pháp sau:
ALTER TABLE ten_bang MODIFY ten_cot kieu_dulieu NOT NULL;
Để thêm ràng buộc UNIQUE trên một bảng ta sử dụng cú pháp sau:
ALTER TABLE ten_bang
ADD CONSTRAINT RangbuocUnique UNIQUE(cot1, cot2...);
Để thêm ràng buộc CHECK trên một bảng ta sử dụng cú pháp sau:
ALTER TABLE ten_bang
ADD CONSTRAINT RangbuocUnique CHECK (DIEUKIEN);
Để thêm ràng buộc PRIMARY KEY trên một bảng ta sử dụng cú pháp sau:
ALTER TABLE ten_bang
ADD CONSTRAINT Khoachinh PRIMARY KEY (cot1, cot2...);
Sử dụng lệnh ALTER TABLE để xóa ràng buộc
ALTER TABLE ten_bang
DROP CONSTRAINT RangbuocUnique;
Nếu bạn đang sử dụng MySQL thì code là:
ALTER TABLE ten_bang
DROP INDEX RangbuocUnique;
Để xóa ràng buộc PRIMARY KEY trên một bảng ta sử dụng cú pháp sau:
ALTER TABLE ten_bang
DROP CONSTRAINT Khoachinh;
Nếu bạn đang sử dụng MySQL thì code là:
ALTER TABLE ten_bang
DROP PRIMARY KEY;
Ví dụ sử dụng ALTER TABLE trong SQL
Giả sử bảng NHANVIEN có các bản ghi như sau:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hue | 6500.00 | | 5 | Huy | 27 | Hatinh | 8500.00 | | 6 | Cao | 22 | HCM | 4500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | +----+----------+-----+-----------+----------+
Bây giờ ta thêm cột GIOITINH vào bảng NHANVIEN.
ALTER TABLE NHANVIEN ADD GIOITINH char(1);
Bây giờ, bảng NHANVIEN đã bị thay đổi và sau đây là kết quả của lệnh SELECT:
+----+----------+-----+-----------+----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | GIOITINH | +----+----------+-----+-----------+----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | NULL | | 2 | Loan | 25 | Hanoi | 1500.00 | NULL | | 3 | Nga | 23 | Hanam | 2000.00 | NULL | | 4 | Manh | 25 | Hue | 6500.00 | NULL | | 5 | Huy | 27 | Hatinh | 8500.00 | NULL | | 6 | Cao | 22 | HCM | 4500.00 | NULL | | 7 | Lam | 24 | Hanoi | 10000.00 | NULL | +----+----------+-----+-----------+----------+----------+
Tiếp tục, khi muốn xoá cột GIOITINH khỏi bảng, ta sử dụng câu lệnh SQL sau:
ALTER TABLE NHANVIEN DROP GIOITINH;
Bây giờ, bảng NHANVIEN đã bị thay đổi và sau đây là kết quả của lệnh SELECT:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hue | 6500.00 | | 5 | Huy | 27 | Hatinh | 8500.00 | | 6 | Cao | 22 | HCM | 4500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | +----+----------+-----+-----------+----------+
11 Th12 2020
15 Th12 2020
11 Th12 2020
11 Th12 2020
15 Th12 2020
11 Th12 2020