create table account_90
as
select * from ACCOUNT where 1=2;
可以从已有表的基础上创建一个表
什么是view
- 视图在数据库中不存储数据值,即不占空间
- 只在系统表中存储对视图的定义
- 视图实际就是一条select语句
- 类似windows中的快捷方式
create or replace view xxx
as select a from t10
创建一张名为xxx的视图,来自t10的列名为a(可以多列,可以*号)的数据
视图的应用场景
- 简化操作,屏蔽了复杂的sql语句,直接对视图操作
- 控制权限,只允许查询一张表中的部分数据.解决方法:对其创建视图,授予用户读视图的权限,而非读表的权限
- 通过视图将多张表union all成一张逻辑表,作为单独一个数据库对象,实现表的超集
视图的分类
- 简单视图
① 基于单张表并且不包含函数或表达式的视图,在该视图上可以执行dml语句(即可执行增、删、改操作) - 复杂视图
① 包含函数、表达式或者分组数据的视图,在该视图上执行dml语句是必须要符合特定条件
②在定义复杂视图时必须为函数或表达式定义别名 - 连接视图
① 基于多个表建立的视图,一般来说不会在该视图上执行insert、update、delete操作
create or replace view xx
as
select a.REAL_NAME,c.NAME
from ACCOUNT a join SERVICE b
on a.ID