在 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` 时,如果要更改列的数据类型,确保新数据类型与现有数据兼容,否则可能会导致数据丢失或损坏。在执行此类操作之前,建议备份数据。