二、视图

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

视图还可以从已经存在的视图的基础上定义。

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

使用视图查询数据时,数据库会从原来的表中取出对应的数据,因此,视图中的数据是依赖于原来的表中的数据。

一旦原表中的数据发生改变,则显示在视图中的数据也会发生改变。

视图的作用:视图是在原有的表或者视图的基础上重新定义的虚拟表,这样可以从原有的表中选取对用户有用的信息。

1、创建视图

视图可以建立在一张表上,也可以建立在多张表上

语法格式:
create [ algorithm = { undefined | merge | temptable} ] view 视图名 [(属性清单)] as select 语句 [ with { cascaded | loocal } check option ]; algorithm是可选参数,表示视图选择的算法 视图名参数表示需要创建的视图的名称; 属性清单参数是可选参数,其指定了视图中各个属性的名词;默认情况下,与select语句中查询的属性相同; select语句参数是一个完整的查询语句,表示从某个表中查询出满足条件的记录,并将这些记录导入视图中; with check option是可选参数,表示更新视图时,要保证在该视图的权限范围内; cascaded是可选参数,表示更新视图时,要满足所有相关视图和表的条件,该参数为默认值; local表示更新视图时,只要满足该视图本身的定义条件即可; (1)在单表上创建视图 举例1: create view department_view1 as select * from department 查询department_view1视图的表结构:desc department_view1; 注释:视图department_view1表的属性与department表的属性完全一样,因为在未指定定义视图的属性列表的情况下, 视图的属性名与select语句查询的属性名相同。 举例2:create view department_view2(name,fuction,location) as select d_name,fuction,address from department; 视图department_view2的属性列名分别为:name,fuction,location。因为在创建视图时,指定了属性列表。 视图的属性名与属性列表中的属性名相同。 (2)在多表上创建视图 举例:create algorithm=merge view worker_view1 (name,department,sex,age,address) as select name,department.d_name,sex,2009-birthday,address from worker,department where worker.d_id=departmnet.d_id with local check option; 2、查看视图 (1)describe语句查看视图基本信息 语法格式:describe 视图名; 可以简写为:desc 视图名; 此语句可以简单了解视图中的各个字段的简单的信息 (2)show table status语句查看视图基本信息 语法格式:show table status like '视图名'; like表示后面匹配的是字符串; 视图名参数指需要查看的视图的名称,需要用单引号引起了; (3)show create view语句查看视图详细信息 语法格式:show create view 视图名; (4)在views表中查看视图详细信息 在MYSQL中,所有视图的定义都存储在information_schema数据库下的views表中。 查询views表,可以查看到数据库中所有视图的详细信息。 语法格式:select * from information_schema.views; 3、修改视图 修改视图是指修改数据库中已经存在的表的定义。 当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间的一致; (1)create or replace view语句修改视图 语法格式:
create or replace [ algorithm = { undefined | merge | temptable} ] view 视图名 [(属性清单)] as select 语句 [ with { cascaded | loocal } check option ]; (2)alter语句修改视图 语法格式:
alter [ algorithm = { undefined | merge | temptable} ] view 视图名 [(属性清单)] as select 语句 [ with { cascaded | loocal } check option ]; 4、更新视图 *************************************************** 5、删除视图 删除视图是指删除数据库中已经存在的视图的定义;删除视图时,只能删除视图的定义,不会删除数据 语法格式:drop view [if exists] 视图名列表; if exists参数指判断视图是否存在,如果存在则执行,否则不执行, 视图名列表参数表示要删除的视图的名称列表,各个视图名称之间用逗号隔开;

mysql——视图——概念的更多相关文章

  1. MySQL视图(view)

    一.基本概念 视图是一个虚拟表,是sql的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会影响到视图 ...

  2. mysql 视图,触发器,存储

    一.视图 概念:其实就是一个临时表. 视图是一个虚拟表(非真实存在的),其本质是[根据SQL语句获取动态的数据库,并为其命名],用户使用时只需使用[名称]即可获取结果集.就可以当做表来使用. # 1. ...

  3. MySQL事务概念与流程和索引控制

    MySQL事务概念与流程和索引控制 视图 1.什么是视图 我们在执行SQL语句其实就是对表进行操作,所得到的其实也是一张表,而我们需要经常对这些表进行操作,拼接什么的都会产生一张虚拟表,我们可以基于该 ...

  4. Mysql 视图 游标 触发器 存储过程 事务

    Mysql 视图 触发器 存储过程 游标 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中 ...

  5. MySql基本概念(一)

    MySQL基本概念 一. 数据库系统概述: mysql是数据库系统的一种,下面是所有数据库系统中主要的组件. 数据库系统由硬件部分和软件部分构成,硬件主要用于存储数据库中的数据,包括计算机.存储设备. ...

  6. Mysql视图的作用及其性能分析

    定义:视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表. 作用: 1.简化操作,不用进行多表查询. 2.当不同种类的用用户共享同一个数据库时,非常灵活,(用户以不同的 方式看待同一数据. ...

  7. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

  8. 深入解析MySQL视图view

    阅读目录---深入解析MySQL视图view 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌 ...

  9. MySQL视图view/存储过程和函数的使用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...

随机推荐

  1. dlsym用法

    1. 包含头文件 #include<dlfcn.h> 2. 函数定义 void *dlsym(void *handle, const char* symbol); handle是使用dlo ...

  2. 一例tornado框架下利用python panda对数据进行crud操作

    get提交部分 <script> /* $("#postbtn").click(function () { $.ajax({ url:'/loaddata', data ...

  3. C++内存泄漏的几种情况

    1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数 两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存:二是在类的构造函数中动态的分配了 ...

  4. 【Python数据分析】用户通话行为分析

    主要工作: 1.对从网上营业厅拿到的用户数据.xls文件,通过Python的xlrd进行解析,计算用户的主叫被叫次数,通话时间,通话时段. 2.使用matplotlib画图包,将分析的结果直观的绘制出 ...

  5. springboot整合admin管理平台

    server 端 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  6. 线上 CPU100% 排查方案

    问题:生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢? 下面给出两种系统下的排查步骤,都是一模一样的,只是命令稍有区别! 查消耗cpu最高的进程PID 根据 ...

  7. A.Equivalent Prefixes(ST算法)

    Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 ...

  8. 2019年9月17 发布 Java 13

    Java 13 明天发布,最新最全新特性解读   2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布. 目前,JDK官网 ...

  9. mongo 是什么

    一.概述1.MongoDB是什么?用一句话总结MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统.没错MongoDB就是数据库,是NoSQL类型的数据库 2.为什么要使用Mong ...

  10. 第六周课程总结&实验报告(四)

    实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...