SQL视图

作者: 一枚豪迈的胡萝卜 | 来源:发表于2018-07-30 21:31 被阅读0次

定义:

1、视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。

2、数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。

3、使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

作用:

1、使操作简便化;

2、增加数据的安全性;

3、提高表的逻辑独立性;

创建视图:

CREATE [ ALGORITHM ={ UNDEFIEND | MERGE | TEMPTABLE }]

VIEW视图名[ (属性清单) ]

AS SELECT语句

[ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

ALGORITHM是可选参数,表示视图选择的算法;ALGORITHM包括3个选项UNDEFINED、MERGE和TEMPTABLE。其中,UNDEFINED选项表示MySQL将自动选择所要使用的算法;MERGE选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;TEMPTABLE选项表示将视图的结果存入临时表,然后使用临时表执行语句;

“视图名”参数表示要创建的视图的名称;

“属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与SELECT语句中查询的属性相同;

SELECT语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中;

CASCADED是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL表示更新视图时,要满足该视图本身的定义条件即可;WITH CHECK OPTION是可选参数,表示更新视图时要保证在该视图的权限范围之内;

1、在单表上创建视图

CREATE VIEW v1 AS SELECT * FROM t_book;

CREATE VIEW v2 AS SELECT bookName,price FROM t_book;

CREATE VIEW v3(b,p) AS SELECT bookName,price FROM t_book;

SELECT * FROM vx;

2、在多表上创建视图

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

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

查看视图

1 、DESCRIBE语句查看视图基本信息

2 、SHOW TABLE STATUS语句查看视图基本信息

3、SHOW CREATE VIEW语句查看视图详细信息

4、在views表中查看视图详细信息

DESC v5;

SHOW TABLE STATUS LIKE 'v5';

SHOW TABLE STATUS LIKE 't_book';

SHOW CREATE VIEW v5;

修改视图

1、CREATE OR REPLACE VIEW语句修改视图

CREATE OR REPLACE [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]

VIEW视图名[(属性清单)]

AS SELECT语句

[ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

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

2、ALTER语句修改视图

ALTER [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]

VIEW视图名[(属性清单)]

AS SELECT语句

[ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

ALTER VIEW v1 AS SELECT * FROM t_book;

更新视图

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

1、插入(INSERT)

2、更新(UPDATE)

3、删除(DELETE)

INSERT INTO v1 VALUES(NULL,'java good',120,'feng',1);

UPDATE v1 SET bookName='java very good',price=200 WHERE id=5;

DELETE FROM v1 WHERE id=5;

删除视图

删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;

DROP VIEW [ IF EXISTS ]视图名列表[ RESTRICT | CASCADE ]

DROP VIEW IF EXISTS v4;

相关文章

  • 数据库基础07视图、约束、索引

    视图 视图的概念 视图的概念——虚表,本质就是查询的SQL 视图的作用 视图的作用——用来存储我们的SQL 视图的...

  • 数据库基础知识整理-SQL视图

    数据库基础知识整理-SQL视图 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和...

  • SQL视图

    SQL 视图(Views)视图是可视化的表。 讲解如何创建、更新和删除视图。 SQL CREATE VIEW 语句...

  • SQL 简易教程 下

    SQL 视图(Views) 视图是可视化的表。 本章讲解如何创建、更新和删除视图。 在 SQL 中,视图是基于 S...

  • tp5 递归实现分类

    控制器 模型文件 视图文件 新闻视图 修改视图 sql

  • 视图

    SQL CREATE VIEW 语句 什么是视图?在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。视...

  • Mysql必知必会笔记——下

    操作表 视图 视图是虚拟的表。使用视图可以重用SQL语句,简化复杂的SQL操作,更改数据格式和表示等;创建视图后可...

  • chapter22:使用视图

    视图 视图是虚拟的表,只包含使用时动态检索数据的查询。 为什么使用视图 重用SQL语句; 简化复杂的SQL操作; ...

  • SQL操作指南四(复杂查询)

    视图 视图和表从SQL的角度看视图其实就是一张表,在SQL语句中并不需要区分哪些是表,哪些是视图。视图和表的唯一区...

  • SQL——视图

    在前面的操作中,都是在逻辑模型层上,即我们假定给定的集合中的关系都是实际存储在数据库中的。让所有用户看到整个模型是...

网友评论

      本文标题:SQL视图

      本文链接:https://www.haomeiwen.com/subject/zfsqvftx.html