oracle之修改已经定义好的表、列信息

时间:2022-10-19 04:43:35
修改表
重命名表
对于已存在的表,还可以修改其名称。重命名表有两种语法形式,一种
是使用ALTER TABLE语句,语法如下:

ALTER TABLE table_name RENAME TO new_table_name;

另一种是直接使用RENAME语句,语法如下:

RENAME table_name TO new_table_name;
移动表
在创建表时可以为表指定存储空间,如果不指定,Oracle会将该表存储
到默认表空间中。根据需要可以将表从一个表空间中移动到另一个表空间
中。语法如下:

ALTER TABLE table_name MOVE TABLESPACE tablespace_name;
删除表
使用DROP TABLE语句可以删除表。删除表后,该表中的所有数据也
将被删除。一般情况下,用户只能删除自己模式中的表;如果需要删除其
他模式中的表,则该用户必须具有DROP ANY TABLE的系统权限。

删除表的语法如下:

DROP TABLE table_name [ CASCADE CONSTRAINTS ] [ PURGE ];

语法说明如下:


CASCADE CONSTRAINTS  指定删除表的同时,删除所有引用这个表的视图、约束、索引和触发器等。


PURGE  表示删除该表后,立即释放该表所占用的资源空间。




增加列 
为表增加列的语法形式如下:ALTER TABLE table_name ADD column_name data_type;
如,为表person增加email列,如下:


SQL> ALTER TABLE person ADD email VARCHAR2(20);


表已更改。


修改列的名称 
修改表中的列的名称的语法如下:

ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;

如,将person表中的birthday列的名称修改为age,如下:

SQL> ALTER TABLE person RENAME COLUMN birthday TO age;

表已更改。
修改列的数据类型
修改表中的列的数据类型的语法如下:


ALTER TABLE table_name MODIFY column_name new_data_type;如,将person表中的age列的数据类型修改为NUMBER(4),如下:


SQL> ALTER TABLE person MODIFY age NUMBER(4);表已更改。
注意:这里使用的alter ... modify ,注意与修改oracle的表级约束的alter ... add 区分,别弄混了。




删除列
删除表中的列时可以分为一次删除一列和一次删除多列。
一次删除一列
的语法形式如下:
ALTER TABLE table_name DROP COLUMN column_name;

一次删除多列的语法形式如下:
ALTER TABLE table_name DROP (column_name , …);
对比两种语法可以看出,删除一列时需要使用COLUMN关键字,而删除
多列时则不需要。
注意:在删除oracle表级约束时,使用的一般也是alter ... drop,就删除列级约束(not null)时,使用了alter ... modify