一、定义

  视图:指计算机数据库中的一个临时虚拟表,其内容由查询定义;同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。

二、优点

  1. 优点:

    a. 无需保存数据,可以节省存储设备的容量;

    b. 将频繁使用的SELECT 语句保存成视图,不用每次都重新书写。特别是在进行汇总以及复杂的查询条件导致SELECT 语句非常庞大时可以大大提高效率;

    c. 视图中的数据会随着原表的变化自动更新,可以保证数据的最新状态;

    d. mysql允许基于其他视图创建视图;

  2. 缺点:

    a. 定义视图时不能使用ORDER BY子句;

    b. 无法将视图的更改反映到原表中的;记住:视图是一张衍生的表,原表改动,视图会随着变动,反之,视图无法改变原表,所以视图无法插入,删除或  者更新数据;

  注: 应该将经常使用的SELECT语句做成视图。

三、示例:

  1. 数据库中现有两张表Employee_China和Employ_USA, 如下:

  

  

  2.创建视图

CREATE VIEW employee AS
SELECT FistName, lastName, Age, City FROM Employee_China
UNION
SELECT FistName, lastName, Age, City FROM Employee_USA
GROUP BY age

  创建视图成功返回结果:

  

  3.查看视图字段

DESCRIBE employee;

  运行结果:

  

  4. 查看数据库中有所有的视图:

show table status where comment='view';

  运行结果:

  

  注:由于这张表太长,只截取了一半;

  5. 查看数据库中所有视图表

show full tables where Table_type = "VIEW";

  运行结果:

  

  6. 删除视图

Drop VIEW employee;

四、视图的使用

  1. 应该尽量将频繁使用的查询作为视图;

  2. 视图可以和表一样的使用和操作,不过试图是一张临时虚表;

  

数据库学习之七--视图(View)的更多相关文章

  1. MYSQL数据库学习七 视图的操作

    7.1 视图 视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务.提高了数据库中数据的安全性. 视图的特点如下: 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系. 视图是由基 ...

  2. Oracle 学习笔记 11 -- 视图 (VIEW)

    本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...

  3. Oracle数据库学习 视图、序列及存储过程

    视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...

  4. day43 数据库学习egon的博客 视图、触发器、事务、存储过程、函数

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  5. 数据库视图View的使用

    一.视图的概念: 概念: 视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据 ...

  6. 【Oracle】曾经的Oracle学习笔记(8-15)ER图,三大范式,数据库字典,视图,索引,序列

    一.数据库建模 二.建表 三.数据库字典 四.DML语句 五.视图 六.索引 七.序列 八.DDL语句 Lesson 8 Overview of Data Modeling and Database ...

  7. MySQL/MariaDB数据库的视图(VIEW)

     MySQL/MariaDB数据库的视图(VIEW) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.视图概述 1>.什么是视图 视图就是一个虚拟的表,保存有实表的查询结果 ...

  8. PGSQL数据库里物化视图【materialized view】

    1.普通视图 数据库中的视图(view)是从一张或多张数据库表查询导出的虚拟表,反映基础表中数据的变化,且本身不存储数据. 2.物化视图[materialized view]     2.1.概念:  ...

  9. 数据库如何创建视图create view

    数据库如何创建视图     创建视图的理想步骤: 一般来说,视图创建可以分为五步走: 第一步:先考虑select语句的编写.我们知道,视图其实就是一个select语句的集合,所以,我们建立视图的第一步 ...

随机推荐

  1. LINUX驱动笔记 目录

    笔记参考了宋宝华老师的<Linux设备驱动开发详解:基于最新的Linux 4.0内核>以及韦东山老师的嵌入式驱动教程 笔记开发环境: 单板:第一章到第八章使用TINY4412-1611:第 ...

  2. go tcp发送网络请求

    //发送http请求 package main import ( "fmt" "net" "io" ) func main () { //使 ...

  3. 静态成员函数和(CPP与C结构体的区别)

    #include <iostream> using namespace std.; //这种写法只是CPP中的struct的用法,但是在C中还是不支持的. //C中的结构体不支持写方法的. ...

  4. Z算法板子

    给定一个串$s$, $Z$算法可以$O(n)$时间求出一个$z$数组 $z_i$表示$s[i...n]$与$s$的前缀匹配的最长长度, 下标从$0$开始 void init(char *s, int ...

  5. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) (1208F,1208G,1208H)

    1208 F 大意:  给定序列$a$, 求$\text{$a_i$|$a_j$&$a_k$}(i<j<k)$的最大值 枚举$i$, 从高位到低位贪心, 那么问题就转化为给定$x$ ...

  6. 在论坛中出现的比较难的sql问题:35(时间间隔计算问题)

    原文:在论坛中出现的比较难的sql问题:35(时间间隔计算问题) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  7. metasploit情报收集

    1.msf连接数据库 service postgresql start(postgresql默认用户名scott,密码tiger) msf > db_connect 用户名:密码@127.0.0 ...

  8. 【转载】 C#通过File类实现文件拷贝复制的功能

    在Windows系统的使用过程中,一个较常使用的功能就是文件的复制拷贝操作,其实在C#开发中,也可以使用File类库中的Copy方法来实现文件的拷贝,支持设定原文件地址,以及拷贝复制后的文件存放路径. ...

  9. java利用反射打印出类的结构

    1 输入一个类名:java.lang.String将打印出String类定义的结构,例如: public final class java.lang.String { public java.lang ...

  10. OpenStack kilo版(7) 部署dashboard

    安装dashboard  root@controller:~# apt-get install openstack-dashboard  配置 /etc/openstack-dashboard/loc ...