在 MySQL 中,`CHANGE COLUMN` 是 `ALTER TABLE` 語句的一部分,用于修改現有表中的列定義。`CHANGE COLUMN` 可以用來更改列的名稱、數據類型、默認值、約束等屬性。
以下是使用 `CHANGE COLUMN` 修改列定義的基本語法:
```sql
ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name column_definition [AFTER existing_column];
```
- `table_name`:要修改的表的名稱。
- `old_column_name`:要修改的現有列的名稱。
- `new_column_name`:新的列名稱(可以為空,表示不更改列名)。
- `column_definition`:新的列定義,包括數據類型、默認值、約束等。
- `AFTER existing_column`:(可選)指定新列在表中的位置,使其位于指定的現有列之后。如果省略此部分,新列將放在表的最后。
以下是一些使用 `CHANGE COLUMN` 的示例:
1、更改列的數據類型:
```sql
ALTER TABLE users
CHANGE COLUMN age age INT(3);
```
2、更改列的名稱和數據類型:
```sql
ALTER TABLE users
CHANGE COLUMN user_name username VARCHAR(50);
```
3、為列添加默認值和 NOT NULL 約束:
```sql
ALTER TABLE users
CHANGE COLUMN email email VARCHAR(100) NOT NULL DEFAULT 'example@example.com';
```
4、更改列的位置:
```sql
ALTER TABLE users
CHANGE COLUMN age age INT(3) AFTER last_name;
```
請注意,在使用 `CHANGE COLUMN` 時,如果要更改列的數據類型,確保新數據類型與現有數據兼容,否則可能會導致數據丟失或損壞。在執行此類操作之前,建議備份數據。