Mysql基础知识:视图

Mysql 视图

1. 视图简介

  1)视图的含义:

    视图是一张虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。

  2)为什么使用视图:   

    重用SQL语句。

    简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节。

    使用表的组成部分而不是整个表。

    保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。    

    更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。

    注意:

      重要的是知道视图仅仅是用来查看存储在别处的数据的一种设施。视图本身不包含数据,因此它们返回的数据是从其他表中检索出来的。在添加或更改这些表中的数据时,视图将返回改 变过的数据。

  3)视图的规则和限制:

    与表一样,视图必须唯一命名(不能给视图取与别的视图或表相同的名字)。

    对于可以创建的视图数目没有限制。

    为了创建视图,必须具有足够的访问权限。这些限制通常由数据库管理人员授予。

    视图可以嵌套,即可以利用从其他视图中检索数据的查询来构造一个视图。

    ORDER BY 可以用在视图中,但如果从该视图检索数据 SELECT 中也含有 ORDER BY ,那么该视图中的 ORDER BY 将被覆盖。

    视图不能索引,也不能有关联的触发器或默认值。

    视图可以和表一起使用。例如,编写一条联结表和视图的 SELECT语句。

2. 创建视图

CREATE   ALGORITHM = UNDEFINED | MERGE | TEMPTABLE
         VIEW   视图名   ( 属性清单 )
         AS   SELECT   语句
         WITH   CASCADED | LOCAL   CHECK   OPTION;

  ALGORITHM是可选参数,表示视图选择的算法。

    UNDEFINED:表示mysql将自动选择所使用的算法;

    MERGE:表示将使用的视图语句与视图定义结合起来,使得视图定义的某一部分取代语句的对应部分;

    TEMPTABLE:表示将视图的结果存入临时表,然后使用临时表执行语句。

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

  SELECT语句是一个完整的查询语句,表示从某个表查询满足条件的记录。

  WITH CHECK OPTION是可选参数,表示更新视图时要保证在该视图的权限范围内。

    CASCADED:表示更新视图时要满足所有相关视图和表的条件;

    LOCAL:表示更新视图时要满足视图本身的定义条件即可。

  注意:创建视图分为:1)从单表创建视图;2)从多表创建视图。

3. 查看视图

DESCRIBE   视图名;
SHOW  TABLE  STATUS  LIKE   ‘视图名‘;
SHOW  CREATE  VIEW   视图名;SELECT * FROM  information_schema.views;

  前两种为查看视图的基本信息,后两种为查看视图的详细信息。

4. 修改视图

  修改视图指修改视图中包含的表的字段。

  1)CREATE OR REPLACE VIEW修改视图

CREATE   OR  REPLACE  ALGORITHM = UNDEFINED | MERGE | TEMPTABLE
                      VIEW   视图名   ( 属性清单 )
                      AS   SELECT   语句
                      WITH   CASCADED | LOCAL   CHECK   OPTION;

  2)ALTER语句

ALTER   ALGORITHM = UNDEFINED | MERGE | TEMPTABLE
        VIEW   视图名   ( 属性清单 )
        AS   SELECT   语句
        WITH   CASCADED | LOCAL   CHECK   OPTION;

  注意:

    CREATE OR REPLACE VIEW可以修改现有的视图,也可以创建视图。而ALTER只能修改视图。

5. 更新视图

  更新视图指通过视图来插入、更新和删除表中的数据。

  因为视图是一个虚拟的表,其中没有数据。通过视图更新都是切换到基本表来更新。并且只能更新权限范围内的数据,超出范围则不能更新。

  可以通过INSERT、UPDATE、DELETE更新。

  注意:

    以下这几种情况不能更新视图:

    (1)视图中保护SUM()、COUNT()、MAX()、MIN()等函数;

    (2)视图中包含UNION、UNION ALL、DISTINCT、GROUP BY、HAVING等关键字;

    (3)常量视图;

    (4)视图中的SELECT包含子查询;

    (5)由不可更新的视图导出的视图;

    (6)创建视图时,ALGORITHM为TEMPTABLE类型;

    (7)视图对应的表上存在没有默认值的列,而且该列没有包含在视图中。

6. 删除视图

DROP  VIEW  [IF EXISTS]   视图名列表   [RESTRICT | CASCADE];
时间: 2024-12-06 15:24:00

Mysql基础知识:视图的相关文章

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

MySQL基础知识

MySQL基础知识: 一. 知识点:        1. SQL分类:按照其功能不同,分为3中类别           DDL(Data Defintion Language):数据定义语句,用于定义不同的数据段.数据库.表.列.索引等.常用的语句关键字包括create.drop.alter等;             DML(Data Manipulation Language):数据操纵语句,用于添加.删除.更新和查询数据库记录,并检查数据的完整性.常用的语句关键字主要包括insert.de

mysql基础之视图

原文:mysql基础之视图 在查询中,我们经常把查询结果 当成临时表来看. View是什么? View可以看一张虚拟表. 是表通过某种运算得到的一个投影. 既然视图只是表的某种查询的投影,所以主要步骤在于查询表上.查询的结果命名为视图就可以了. 视图与表的关系 视图是表的查询结果,自然表的数据改变了,影响视图的结果. 视图改变了呢? 0: 视图增删改也会影响表 1: 但是,视图并是总是能增删改的. 视图某种情况下,是可以修改的. 要求: 视图的数据和表的数据 11对应. 就像函数的映射. 表--

趁一切还来得及【一】数据库MySQL基础知识及编译安装

此情更待成追忆,只是当时已惘然.                                        --[唐]李商隐 第一章 数据库概述及分类特点应用 1.1 数据库种类.语言处理.典型产品 ①数据库的理解:就是一个存放数据的仓库,这个仓库是按照一定的数据结构,来组织和存储的.可以通过数据库提供的多种方法来管理数据库. ②数据库的种类:按照早期的数据库理论分为层次数据库.网络式数据库.和关系型数据库.当今互联网最常用的就是关系型数据库和非关系型数据库(NOSQL). ③关系型数据库:

MySql基础知识、存储引擎与常用数据类型

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文将主要讲解了数据库的一些基础知识,介绍了MySql的存储引擎,最后讲了MySql常用的数据类型 1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结:数据永远是数据库的核心. 1.2.关系数据库管理系统 通过"数据库管理系统",数据

一、MySQL基础知识

一.背景介绍 我们每天都在访问各种网站.APP,如微信.QQ.抖音,今日头条等,这些东西上面都存在大量的信息,这些信息都需要有地方存储,存储在哪里呢?数据库. 所有我们需要开发一个网站.APP,数据库我们必须掌握的技术.常用的数据库有mysql,oracle.sqlserver.db2等. oracle性能第一,mysql免费,mysql在互联网公司使用率排名第一. 二.mysql系列主要介绍 1.mysql的基本使用 2.mysql性能优化 3.开发过程中mysql一些优秀的案例介绍 三.数据

Mysql基础知识:数据类型

Mysql基础数据类型 1. 整数类型 2. 浮点数类型和定点数类型 DECIMAL型的取值范围与DOUBLE相同,但是DECIMAL的有效范围由M.D决定.而且DECIMAL的字节数为M+2,即定点数的存储空间是根据其精度决定的. M:精度,是数据的总长度,小数点不占位置: D:标度,小数点后的长度 eg:FLOAT(6,2):数据长度为6,小数点后保留2位的FLOAT数据类型.按照该定义,1234.56符合要求. 3. 日期和时间类型 YEAR类型:(使用1个字节表示) 可以用4位字符串或数

MySql基础知识命令总结一

数据库的引入和概念 数据保存到内存: 优点: 1)读写非常快 缺点: 1)程序关闭导致数据丢失 数据保存到文件: 优点: 1)数据可以永久保存 缺点: 1)频繁地IO操作,效率不高! 2)数据管理不方便.例如查询某个数据需要全部读取出来,再匹配. 数据保存到数据库软件: 优点: 1)数据永久保存下来 2)数据管理非常方便.(例如查询非常快速和方便) 数据库,俗称数据的仓库.方便管理数据的软件(或程序). 市面上常见的数据库 Oracle,甲骨文公司的产品. 当前最流行应用最广泛的数据库软件.和j

mysql基础知识(5)--视图

视图 单词:view 什么是视图: 视图可以看作是一个“临时存储的数据所构成的表”(非真实表),其实本质上只是一个select语句.只是将该select语句(通常比较复杂)进行一个“包装”,并设定了一个名字,其后就可以通过该名字并把该名字当作一个表来使用. 如果一个select语句比较复杂,又在多个页面需要使用它,则可以将它做成一个视图,方便使用. 又如果,某个数据表中的某些字段不想给别人看(不同公司之间的数据业务交换的时候),但另一个又需要给人看,此时也可以使用视图. 视图创建形式: crea