MySQL:视图

本文详细介绍了MySQL视图的概念、作用、创建方法(单表和多表),以及如何查看、修改和更新视图。通过实例展示了如何增强数据安全性和简化操作。
摘要由CSDN通过智能技术生成

一、视图的引入

  1. 视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
  2. 数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
  3. 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

二、视图的作用

  1. 使操作简便化;
  2. 增加数据的安全性;
  3. 提高表的辑独立性;

三、创建视图

CREATE [ALGORITHM ={UNDEFIEND | NERGE | TEMPTABLE }]
VIEW 视图名[(属性清单)]
AS SELECT 语句
[WITH [ CASCADED | LOCAL ] CHECK OPTION ]:

ALGORITHM 是可选参数,表示视图选择的算法;
“视图名”参数表示要创建的视图的名称;
“字段清单”是可选參数,其指定了视图中各种字段的名词,默以情况下与 SELECT 语句中查询的字段相同;
SELECT 语句參数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导>人视图中,WITH CHECK OPTION是可选參数,表似乎更新视图时要保证在该视图的权限范国之内;

ALGORITHIM 包括3个选项 UNDEFINED、MERGE 和 TEMPTABLE、其中,UNDEFINED 选项表示 MSQL.将自动选择所要使用的算法;NERGE 选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;TEMPTABLE 选项表示将视图的结果存入临时表,然后使用临时表执行语句;CASCADED是可选參数,表示更新视图时要满足所有相关视图和表的条件,该參数为默认值;LOCAL 表示更新视图时,要满足该视图本身的定义条件即可;

3.1 在单表上创建视图

单表创建视图 这种创建没有意义

CREATE VIEW v1_t_book AS SELECT * FROM t_book;

执行结果在这里插入图片描述

查询v1_t_book视图数据
在这里插入图片描述

只需要表的几个字段,其他的屏蔽,增加了数据的安全性

CREATE VIEW v2_t_book AS SELECT bookName, price FROM t_book;

执行结果
在这里插入图片描述

查询v2_t_book视图数据
在这里插入图片描述

视图里 更改列名

CREATE VIEW v3_t_book(v3BookBame,v3Price) AS SELECT bookName, price FROM t_book;

执行结果
在这里插入图片描述

查询v3_t_book视图数据
在这里插入图片描述

3.2 在多表上创建视图

多表创建视图-示例1

CREATE VIEW v4_book AS SELECT bookName,bookTypeName FROM t_book,t_booktype WHERE t_book.bookTypeId = t_booktype.id;

执行结果
在这里插入图片描述

查询v4_book视图数据
在这里插入图片描述

多表创建视图-示例2

CREATE VIEW v5_book AS SELECT tb.bookName,tby.bookTypeName FROM t_book tb,t_booktype tby WHERE tb.bookTypeId = tby.id;

执行结果
在这里插入图片描述
查询v5_book视图数据
在这里插入图片描述

四、查看视图

4.1 DESCRIBE 语句查看视图基本信息
DESC v5_book;

v5_book视图基本信息
在这里插入图片描述

4.2 SHOW TABLE STATUS 语句查看视图基本信息
SHOW TABLE STATUS LIKE 'v5_book';

查看v5_book视图的基本信息 可以看到视图完全是虚表
在这里插入图片描述

查看t_book表信息,真实存在的表,有数据

SHOW TABLE STATUS LIKE 't_book';

执行结果
在这里插入图片描述

4.3 SHOW CREATE VIEW 语句查看视图详细信息
SHOW CREATE VIEW v5_book;

查看v5_book视图详细信息
在这里插入图片描述

4.4 在views表中查者视图详细信息

查询v5_book视图详细信息-示例

在这里插入图片描述

v5_book视图字段信息
在这里插入图片描述

五、修改视图

5.1 CREATE OR REPLACE VIEW 语句修改视图

CREATE OR REPLACE [ALGORITHM = UNDEFINED | MERGE | TEMPTABLE 3]
VIEW 视图名[(字段清单)]
AS SELECT 语句
[WITH [ CASCADED | LOCAL ] CHECK OPTION ];

修改v1_t_book视图-示例

v1_t_book视图修改前的数据
在这里插入图片描述

CREATE OR REPLACE VIEW v1_t_book(bookName,price) AS SELECT bookName,price FROM t_book;

v1_t_book视图修改后的数据
在这里插入图片描述

5.2 ALTER 语句修改视图

ALTER[ALGORITHM -{UNDEFINED| MERGE | TENPTABLE }]
VIEW 视图名[(字段清单)]
AS SELECT 语句
[WITH [CASCADED | LOCAL ] CHECK OPTION ];

ALTER VIEW v1_t_book AS SELECT * FROM t_book;

执行结果在这里插入图片描述

查询v1_t_book视图数据
在这里插入图片描述

六、更新视图

更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚拟的表,其中没有数据。通过视图更新时,都是转换基本表來更新。更新视图时,只能更新权限范围内的数据。
超出了范围,就不能更新。

6.1 插入(INSERT)
INSERT INTO v1_t_book VALUES (NULL,'java good',120,6);

执行结果
在这里插入图片描述

查询v1_t_book视图数据
在这里插入图片描述

6.2 更新(UPDATE)
UPDATE v1_t_book SET bookName = 'java is very good',price = 160 WHERE id = 19;

执行结果
在这里插入图片描述

查询v1_t_book视图数据
在这里插入图片描述

6.3 删除(DELETE)
DELETE FROM v1_t_book WHERE id = 19;

执行结果
在这里插入图片描述

查询v1_t_book视图数据
在这里插入图片描述

七、删除视图

删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
DROP VIEW [IF EXISTS ]视图名列表 [RESTRICT |CASCADE]

删除v4_book视图示例

执行前的视图(Views)
在这里插入图片描述

DROP VIEW IF EXISTS v4_book;

执行结果
在这里插入图片描述

推荐

MySQL:常用的SQL语句

欢迎关注我的公众号,不定期推送优质的文章,
微信扫一扫下方二维码即可关注。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值