目录
创建示例1:添加一个或多个列
-----语法:将新列添加到表中
ALTER TABLE table_name ADD column_name type constraint;
-----示例:创建一列
ALTER TABLE scott.stuinfo ADD brithdate DATE NOT NULL(错误:会报错ORA-01758)
ALTER table scott.stuinfo ADD brithdate Date DEFAULT '' NOT NULL;(正确)
![](https://img-blog.csdnimg.cn/direct/b8cfe914308f44b8b9cedf6a86366025.png)
以下默认值没有尝试成功:
![](https://img-blog.csdnimg.cn/direct/954abff6c6464f61942b34dc36903fcd.png)
![](https://img-blog.csdnimg.cn/direct/56b77ce742bf4f63bc3e09c2e1ed7791.png)
添加成功如下:
![](https://img-blog.csdnimg.cn/direct/138821b1a1204996ad75a95dca00da21.png)
-----语法:将新列添加到表中
ALTER TABLE table_name ADD ( column_name type constraint, column_name type constraint, ... );
-----示例:创建多列
ALTER TABLE scott.stuinfo ADD (phone VARCHAR(20), email VARCHAR(100))
![](https://img-blog.csdnimg.cn/direct/219205fec04b4359aff6cd2eb4e670ec.png)
创建示例2:修改列定义
-----语法:修改单个列
ALTER TABLE table_name MODIFY column_name type constraint;
-----示例:在BRITHDATE列填写数据,在执行该语句,设置之后,日期数据并没有变空,但是执行成功了。
ALTER table scott.stuinfo MODIFY BrithDate DATE NULL
![](https://img-blog.csdnimg.cn/direct/16c7c8789c704e0fba3095d76af34bd6.png)
-----语法:修改多个列
ALTER TABLE table_name MODIFY ( column_1 type constraint, column_1 type constraint, ...);
-----示例:
ALTER table scott.stuinfo MODIFY (phone VARCHAR2(20) NOT NULL, email VARCHAR2(255) NOT NULL); (报错:ORA-02296)
-----解决:将表中的phone和email列填入数据,即可完成修改,且修改后不能再执行该语句,否则会报错ORA-01442。
ORA-02296错误表明你正在尝试启用一个约束,而数据库表中存在空值。空值不符合约束要求,因此,无法启用约束。
要解决ORA-02296错误,你需要解决表中的空值。 你可以更新表中的每个null值,使其符合约束要求,也可以使用Alter命令删除NOT NULL约束以及其他任何约束,并尝试重新将其添加。
![](https://img-blog.csdnimg.cn/direct/bb13d920df124537903e7612bef8718a.png)
![](https://img-blog.csdnimg.cn/direct/5d96f37cdc81455783fd1f01b772d936.png)
![](https://img-blog.csdnimg.cn/direct/3dd03c2e437144a785b1633efe4f4e19.png)
创建示例3: 删除一列或多列
-----语法:删除一列
ALTER TABLE table_name DROP COLUMN column_name;
-----示例:brithdate列已被删除
ALTER TABLE scott.stuinfo DROP COLUMN brithdate;
![](https://img-blog.csdnimg.cn/direct/85c587c41f4d4800ae9470acb3ff62db.png)
-----语法:删除多列
ALTER TABLE table_name DROP (column_1,column_2,...);
-----示例:email和phone列已按预期删除。
ALTER TABLE scott.stuinfo DROP(phone,email);
![](https://img-blog.csdnimg.cn/direct/bab061bdcb1148ccb3171c65c5cf9fbc.png)
创建示例4:重命名列
-----语法:重命名一列
ALTER TABLE table_name RENAME COLUMN column_name TO new_name;
-----示例:将sex列重命名为stusex列:
ALTER TABLE scott.stuinfo RENAME COLUMN sex TO stusex;
![](https://img-blog.csdnimg.cn/direct/28fc9f705757436bbffd195f76e3db5d.png)
创建示例5:重命名表
-----语法:将一个表重命名为一个新的name的表名
ALTER TABLE table_name RENAME TO new_table_name;
-----示例:将stuinfo表重命名为studentinfo表,再次查看studentinfo表信息
ALTER TABLE stuinfo RENAME TO studentinfo;//不能带用户名scott
![](https://img-blog.csdnimg.cn/direct/963a4337e99c473696efe489188a47a1.png)