Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL

SQL ALTER TABLE: Hướng dẫn thay đổi cấu trúc bảng

Câu lệnh SQL ALTER TABLE thêm, thay đổi hoặc xóa cột trong bảng. Câu lệnh này cho phép bạn sửa đổi bảng sau khi đã tạo, ngay cả khi bảng đã chứa dữ liệu.

Bạn có thể quyết định cần thay đổi bảng SQL. Ví dụ: muốn đổi tên cột hoặc thêm cột mới. Tất cả thay đổi này đều có thể với lệnh SQL ALTER TABLE.

SQL ALTER TABLE

Lệnh ALTER TABLE cho phép thay đổi bảng hiện có bằng cách:

  • Thêm cột.
  • Thêm ràng buộc (constraint).
  • Xóa cột.
  • Thay đổi kiểu dữ liệu.
  • Đổi tên cột.

Hướng dẫn này sẽ thảo luận, kèm ví dụ, cách thay đổi bảng dùng lệnh SQL ALTER TABLE.

Thiết lập bảng

Trong hướng dẫn này, chúng ta sẽ sửa đổi bảng cơ sở dữ liệu cho doanh nghiệp. Bảng lưu thông tin nhân viên. Bảng tên employees chứa các giá trị sau:

Sau khi tạo bảng, nhận ra muốn thay đổi cấu trúc. Có thể dùng lệnh SQL ALTER TABLE.

Để học cách tạo bảng, xem hướng dẫn SQL CREATE TABLE.

SQL ALTER TABLE: Thêm cột vào bảng

Bạn có thể thêm cột vào bảng SQL dùng lệnh ALTER TABLE. Cú pháp thêm cột mới vào bảng hiện có:

ALTER TABLE ten_bang ADD ten_cot kieu_du_lieu rang_buoc;

Giả sử muốn thêm cột mới vào bảng employees lưu số điện thoại nhân viên. Cột tên phone_number. Dùng kiểu VARCHAR() — cho phép lưu chuỗi độ dài tối đa — và không ràng buộc.

Tạo cột bằng câu lệnh:

ALTER TABLE employees ADD phone_number VARCHAR(60);

Lệnh này thêm cột mới vào bảng trong cơ sở dữ liệu employees. Cấu trúc bảng giờ có cột mới phone_number:

FieldTypeDefault
namevarchar(60)NULL
titlevarchar(60)NULL
departmentvarchar(60)NULL
employee_numbervarchar(60)NULL
phone_numbervarchar(60)

Nếu quan tâm cách thêm cột trong SQL, xem hướng dẫn SQL add column.

SQL ALTER TABLE: Thêm ràng buộc vào bảng

Phần trước, thêm cột phone_number. Nhưng quên thêm ràng buộc.

Trong ví dụ này, nghĩa là cơ sở dữ liệu có thể lưu cùng số điện thoại cho nhiều nhân viên — không thực tế.

Để khắc phục, thêm ràng buộc UNIQUE cho cột phone_number. Cú pháp thêm ràng buộc cho cột trong SQL:

ALTER TABLE ten_bang ADD UNIQUE (ten_cot);

Lệnh thêm ràng buộc cho cột phone_number:

ALTER TABLE employees ADD UNIQUE (phone_number);

Nếu muốn thêm ràng buộc khác, thay UNIQUE bằng ràng buộc SQL khác.

SQL ALTER TABLE: Xóa cột khỏi bảng

Bạn cũng dùng ALTER TABLE xóa cột khỏi bảng. Cú pháp:

ALTER TABLE ten_bang DROP COLUMN ten_cot;

Giả sử muốn xóa cột department. Dự định tạo cột mới liên kết phòng ban nhân viên đến bảng khác. Xóa cột bằng lệnh:

ALTER TABLE employees DROP COLUMN department;

Sau khi thực thi, cột department bị xóa. Cấu trúc bảng:

FieldTypeDefault
namevarchar(60)NULL
titlevarchar(60)NULL
employee_numbervarchar(60)NULL
phone_numbervarchar(60)

SQL ALTER TABLE: Thay đổi kiểu dữ liệu cột

Bạn có thể dùng ALTER TABLE thay đổi kiểu dữ liệu cột. Cú pháp:

ALTER TABLE ten_bang ALTER COLUMN ten_cot kieu_du_lieu_moi;

Lệnh này có hai phiên bản thay thế cho MySQL và Oracle (trước 10G), và Oracle 10G trở lên:

ALTER TABLE ten_bang MODIFY COLUMN ten_cot kieu_du_lieu_moi; (MySQL, Oracle pre-10G)
ALTER TABLE ten_bang MODIFY ten_cot kieu_du_lieu_moi; (Oracle 10G+ và sau)

Khi tạo bảng employees ban đầu, nhầm gán employee_number là VARCHAR() thay vì số. Để sửa, dùng lệnh:

ALTER TABLE employees ALTER COLUMN employee_number INT;

Lệnh thay đổi kiểu cột employee_number thành INT. Cấu trúc mới:

FieldTypeDefault
namevarchar(60)NULL
titlevarchar(60)NULL
employee_numbervarchar(60)NULL
phone_numberint

SQL ALTER TABLE: Đổi tên bảng

Lệnh ALTER TABLE cũng cho phép đổi tên bảng SQL. Cú pháp:

ALTER TABLE ten_bang_hien_tai RENAME ten_bang_moi;

Giả sử muốn đổi bảng employees thành old_employees_2019. Dùng lệnh:

ALTER TABLE employees RENAME old_employees_2019;

Không thể đổi tên bảng dùng ALTER TABLE trong MySQL. Trong MySQL, thay vì ALTER TABLE, dùng lệnh RENAME TABLE:

RENAME TABLE employees TO old_employees_2019;

Kết luận

Lệnh SQL ALTER TABLE cho phép thay đổi cấu trúc bảng trong SQL. Bạn có thể thêm, xóa hoặc thay đổi cột. Bạn cũng có thể sửa đổi ràng buộc liên quan đến bảng, như UNIQUE hoặc NOT NULL.

Bạn muốn tìm hiểu thêm về SQL? Đọc hướng dẫn How to Learn SQL. Bạn sẽ tìm thấy mẹo hàng đầu cách học SQL và danh sách tài nguyên học tập do chuyên gia tuyển chọn.