目录
创建示例1:添加一个或多个列
创建示例2:修改列定义
创建示例3: 删除一列或多列
创建示例4:重命名列
创建示例5:重命名表
创建示例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;(正确)
以下默认值没有尝试成功:
添加成功如下:
-----语法:将新列添加到表中
ALTER TABLE table_name ADD ( column_name type constraint, column_name type constraint, ... );
-----示例:创建多列
ALTER TABLE scott.stuinfo ADD (phone VARCHAR(20), email VARCHAR(100))
创建示例2:修改列定义
-----语法:修改单个列
ALTER TABLE table_name MODIFY column_name type constraint;
-----示例:在BRITHDATE列填写数据,在执行该语句,设置之后,日期数据并没有变空,但是执行成功了。
ALTER table scott.stuinfo MODIFY BrithDate DATE NULL
-----语法:修改多个列
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约束以及其他任何约束,并尝试重新将其添加。
创建示例3: 删除一列或多列
-----语法:删除一列
ALTER TABLE table_name DROP COLUMN column_name;
-----示例:brithdate列已被删除
ALTER TABLE scott.stuinfo DROP COLUMN brithdate;
-----语法:删除多列
ALTER TABLE table_name DROP (column_1,column_2,...);
-----示例:email和phone列已按预期删除。
ALTER TABLE scott.stuinfo DROP(phone,email);
创建示例4:重命名列
-----语法:重命名一列
ALTER TABLE table_name RENAME COLUMN column_name TO new_name;
-----示例:将sex列重命名为stusex列:
ALTER TABLE scott.stuinfo RENAME COLUMN sex TO stusex;
创建示例5:重命名表
-----语法:将一个表重命名为一个新的name的表名
ALTER TABLE table_name RENAME TO new_table_name;
-----示例:将stuinfo表重命名为studentinfo表,再次查看studentinfo表信息
ALTER TABLE stuinfo RENAME TO studentinfo;//不能带用户名scott