> For the complete documentation index, see [llms.txt](https://learnsql.gitbook.io/lernmysql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learnsql.gitbook.io/lernmysql/welcome-to-the-mysql-tutorial/thay-doi-cau-truc-table-voi-lenh-alter-table.md).

# Thay đổi cấu trúc table với lệnh ALTER TABLE

Giả sử chúng ta có bảng **tasks** như sau:

![](https://freetuts.net/upload/tut_post/images/2015/03/08/320/Tasks-Table.png)

Và tôi sử dụng lệnh [CREATE TABLE](https://freetuts.net/lenh-tao-bang-create-table-trong-mysql-314.html) để tạo bảng này như sau:

```
CREATE TABLE tasks(
    task_id INT(11) NOT NULL AUTO_INCREMENT,
    SUBJECT VARCHAR(45),
    start_date DATE,
    end_date DATE,
    description VARCHAR(200),
    CONSTRAINT pk_task PRIMARY KEY(task_id)
);
```

### # Sau đây là môt số vấn đề liên quan đến ALTER TABLE <a href="#goto-h2-0" id="goto-h2-0"></a>

#### Đổi cấu trúc column: <a href="#goto-h3-0" id="goto-h3-0"></a>

Giả sử tôi cần đổi cấu trúc field description sang kiểu **varchar(250)** ký tự và `NOT NULL`:

```
ALTER TABLE tasks CHANGE COLUMN description description VARCHAR(250) NOT NULL;
```

Lưu ý là trong này field description ta phải gõ 2 lần nhé.

#### Thêm column: <a href="#goto-h3-1" id="goto-h3-1"></a>

Giả sử tôi cần thêm một column tên là **active kiểu TINYINT(1) và mặc định sẽ là 0**.

```
ALTER TABLE tasks ADD COLUMN active TINYINT(1) DEFAULT 1;
```

#### Đổi tên table (rename table) <a href="#goto-h3-2" id="goto-h3-2"></a>

Bây giờ ta đổi tên **tasks** thành **nhiemvu**:

`ALTER` `TABLE` `tasksRENAME` `TO` `nhiem_vu;`
