oracle删除列

语法  alter table 表名 drop column 列名

如果需要删除的列包含主从关系,为主表的主键,删除时需要加入cascade constraints参数

以上案例,首先以EMP表中的主键EMPNO列成为主表,MGR为外表中的列,当删除主表中的主键时,必须加入cascade constraints参数。

也可以设置一列成为不可用列,unuserd状态

语法  alter table 表名 set unuserd column列名

注意:设置unuserd状态的列不可恢复 可以使用alter table 表名 drop unused columns 进行删除

以上案例,首先设置bonus表中的sal为不可用列,再查看表结构时已不存在,其实并没有删除,然后使用drop unused进行删除

 

 

视图

定义: 视图可以被看做是一条select语句。 用于显示一张或多张表,或其他视图的相关数据。

视图来源于表,这些表称为视图的基表。对视图数据的修改都将会定义到基表当中,并且修改必须遵照基表的约束,同样会触发基表的触发器。

视图是一条由select构成的虚拟表

 

优势

提高安全性

可以只引用某表的某一部分

简化部分查询

检索多张表的数据

 

权限   创建视图需要create view权限

语法  create view 视图名 as select语句

首先赋予SCOTT用于创建视图的权限

创建视图

查看视图,与查看table一样,使用select

参数 

or replace 替换已经存在的视图

force 不管基表是否存在,都创建视图

如以上案例,虽然视图创建时显示编译错误,但其实还是创建成功了。

no forece 只有基表存在时才能创建视图(默认情况下也是)

with chect option 在对视图进行修改时必须满足对基表约束的条件

with read only 只读视图

drop 删除视图

查看用户的所有视图 select * from user_views;