有一个表名为tb,字段段名为name,数据类型 nchar(20)。
1. 增加列
1.1 直接增加
1
| alter table tb add (age nchar(20));
|
2. 删除列
2.1 删除单列
1 2 3
| alter table tb drop column age; alter table tb drop (age);
|
2.2 删除多列
1
| alter table tb drop (age,sex...);
|
3. 修改列数据
3.1. 字段数据为空时,无论改为什么类型,均可直接执行
1
| alter table tb modify (name nvarchar2(20));
|
3.2. 字段有数据,改为原类型兼容时可以直接执
1
| alter table tb modify (name nvarchar2(20));
|
3.3. 字段有数据,且不为兼容类型,则要间接新建字段来转移
1 2 3 4 5 6 7 8 9 10 11
| alter table tb rename column name to name_tmp;
alter table tb add name varchar2(40);
update tb set name=trim(name_tmp);
alter table tb drop column name_tmp;
|
4. 总结
- 添加、修改、删除多列时,用逗号隔开。
- 当字段没有数据或要修改的新类型和原类型兼容时,可直接modify修改,否则要间接新建字段来转移。
- 删除列时,如果后面列名使用括号包围,则不能使用关键字column,否则必须使用。