ALTER TABLE trong SQL

SQL hỗ trợ ALTER TABLE cho phép chúng ta add, delete và modify một colunm bất kỳ của table. Bên dưới là chi tiết cú pháp và ví dụ minh họa cho ALTER TABLE.

Mô tả tình huống: ở ví dụ này chúng ta thao tác trên table tên Product, table này có 3 column như sau:

  1. Id có kiểu dữ liệu là int
  2. Name có kiểu dữ liệu là nvarchar
  3. Price có kiểu dữ liệu là decimal

Trường hợp 1: thêm colunn vào table

Cú pháp:

ALTER TABLE table_name
ADD colunm_name datatype

Trong đó:

  • table_name: là tên table cần thêm column, ở đây table_name là Product
  • colunm_name : là tên column sẽ được thêm vào table_name
  • datatype: là kiểu dữ liệu của column_name, ví dụ int, varchar, nvarchar, decimal, …

Ví dụ: chúng ta thêm column tên Description có kiểu dữ liệu là nvarchar với chiều dài là 200 vào bảng Product ở trên, cách viết như sau:

ALTER TABLE Product
ADD [Description] nvarchar(200)

Ở ví dụ trên [Description] được để trong dấu ngoặc vuông vì tên column này trùng với keyword trong SQL.
Trường hợp 2: xóa column khỏi table

Cú pháp:

ALTER TABLE table_name
DROP COLUMN column_name

Trong đó:

  • table_name: là tên table chứa column sẽ bị xóa, ở đây table_name là Product
  • colunm_name : là tên column sẽ bị xóa khỏi table_name

Ví dụ: xóa column tên Name ra khỏi Product

ALTER TABLE Product
DROP COLUMN Name

Trường hợp 3: thay đổi kiểu dữ liệu column

Cú pháp:

ALTER TABLE table_name
ALTER COLUMN column_name datatype

Trong đó:

  • table_name: là tên table có column cần thay đổi kiểu dữ liệu, ở đây table_name là Product
  • colunm_name : là tên column sẽ được thay đổi kiểu dữ liệu
  • datatype: là kiểu dữ liệu của column_name, ví dụ int, varchar, nvarchar, decimal, …

Ví dụ: thay đổi kiểu dữ liệu của column tên Price trong bảng Product thành float

ALTER TABLE Product
ALTER COLUMN Price float

ALTER TABLE rất dễ hiểu và dễ sử dụng. Góc Kinh Nghiệm chúc các bạn thành công! :grin:


One comment

  1. bài viết rất hay. mình sửa bằng giao diện mà không được may tìm được cái này

Leave a Reply

Your email address will not be published. Required fields are marked *