数据库笔记-【视图】

视图

视图通俗是企业想展示给用户看的,数据库存储的数据有很多,但是也有很多是不能对外公开的,做项目的过程就通过视图这个媒介达到这种效果

视图也可以保证数据库表结构字段的隐私安全等

create or replace view stu_v_1 as select id studentName as name from student where id <= 10;

用户只能更改视图中展现的数据,并且不允许用户去修改表的字段,更加安全


基本语法
#  视图创建
create [or replace] view 视图名 as select …… from …… [with [cascaded | local] check option]

# 视图查询
show create view 视图名   # 查看创建语句
select * from 视图名      # 查看数据
 
 # 视图修改
 # 方式一
 create or replace view 视图名 as select …… from …… [with [cascaded | local] check option]  # 重新更新视图名
 # 方式二
 alter view 视图名 as select …… from …… [with [cascaded | local] check option]     #alter 声明修改表类似
 
 # 视图删除
drop view [if exists] 视图名 
视图创建
create or replace view stu_v_1 as select name,age from student where id <= 10;

视图查询
show create view stu_v_1;

select * from stu_v_1 where id <= 10;

视图修改
# 方式一
create or replace view stu_v_1 as select name,age,tel from student where id >= 20;

alter view stu_v_1 as select name,age,tel from student where id >= 20;


视图删除
drop view if exists stu_v_1;

检查选项

用where时,不符合条件的数据可以插入表,但是视图不会展示

检查选项,避免插入不符合 条件数据,即数据不会插入表

cascaded 联结,检查选项对当前视图作用 且 前无检查选项的视图默认检查

local 本地检查,检查选项仅对当前视图作用

mysql可以根据一个视图创建另一个视图,并且两个视图的限制条件会结合起来

cascaded特点

在这里插入图片描述

前视图没有添加检查语句,但是后视图基于前视图,用了cascaded,则会给前视图默认添加检查选项,添加数据时,如果id>20会报错

local特点

在这里插入图片描述


视图更新

视图创立后,插入数据,有些 “客观” 数据不允许对其进行修改

A. 聚合函数或窗口函数(SUM()、 MIN()、 MAX()、 COUNT()等)

B. DISTINCT

C. GROUP BY

D. HAVING

E. UNION 或者 UNION ALL

create view stu_v_1 as select count(*) from student;
# "客观"  数据不允许修改
insert into stu_v_1 values(10);   # 插入其他数字

视图总
视图理解1

创建视图,展示表,视图被算入其中,所以命名要注意规范

视图是基于表的数据
在这里插入图片描述

用第一种方式修改视图

create or repalce view emp_v_1 as select id,name,age from emp where id <= 18;

# 插入张三相关信息 到 emp表
insert into emp values(4,'李四',20,'销售','2000','2020-01-02',14,4);

# 再次查询
select * from emp_v_1;

在这里插入图片描述


视图理解2

在刚刚基础上添加检查选

create or repalce view emp_v_2 as select id,naem,age from emp_v_1 where id >= 10 with cascaded check option

# 插入数据到 emp表
insert into emp values(19,'李四',20,'销售','2000','2020-01-02',14,4);
# id为19 ,超过emp_v_1 范围 

直接插入表不符条件数据不受视图检查选项影响,视图不会将其展示。

如果是将数据通过插入到视图 插入到emp表,则会报错

在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值