视图,视图数据操作

视图(view)

定义:是一种有结构,但是没有结果的虚拟表

创建视图

基本语句  create view 视图名字 as select 语句;

创建单表视图  基表只有一个 

创建多表视图  基表来源至少两个



--视图: 单表+ 多表

   create view my_v1 as       select * from my_student

create view my_v2 as         select * from my_class 

create view my_v3  as      select * from my_student as s left join my_class as c on s.c_id    -----错误, id重复


-----多表视图

create view my_v3  as      select s.*,c.c_name,c.room  from my_student as s join my_class as c on s.c_id 

外链接  不符合条件不放入

内链接  符合条件放入

--查看视图创建语句    show create view my_v3\G


查看视图

show tables[like] / desc 视图名/ show create table 视图名

show create view my_v3\G  --查看视图创建语句

show views  不可以v查看所有视图

show * from my_v1

show * from my_v2

show * from my_v3

修改视图

alter view 视图名字  as 新的select语句

alter view my_ v1 as                  select id,name,age,sex,height,c_id from my_student


删除视图

drop view  视图名字

create view my_v4 as                select * from my_student                ---删除视图v4                  drop table my_v4   --删除失败(不能删表)   drop  view my_v4  - -- 删除成功

新增数据

{ 1 }多表视图不能新增数据

---多表视图不能插入数据   insert into my_v3 value(null,'bc20200008','张山','男',15,180,3,'Python1910','A204')      -----插入失败

--将学生表的学号字段设置成不允许为空   alter tabel my_student modify number char(10) not null  unique    

{ 2 }  可以向单表视图插入数据,但是视图中包含的字段必须有基表中所不能为空,或没默认值的字段

---单表视图插入数据  : 视图不包含所有不允许为空的字段  insert into my_v1 values(null,'张山','男',15,180,3)

--单表视图插入数据   insert  into my_v2 values(2,'Python1903','A204')

{ 3 }  视图是可以向基表插入数据的


删除数据

多表视图不能删除数据

单表视图可以删除数据

更新数据

更新限制  with check option




---视图  age 字段限制更新

create view my_v4 as 

select * from  my_student where age>30 with cheak option

--表示视图的数据来源都是年龄大于30岁 是由where age 》30 的



--将视图可以查到数据改成年龄小与30   update my_v4 set  age = 29 where id = 5  

---可以修改数据源让视图可以查到 可以该    但是无效果

uodate my_v4 set  age = 32 where id=3

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容