zoukankan      html  css  js  c++  java
  • 2018/05/18 数据库 视图

    最近有点忙,都没有时间来写博客了。

    不过这也是自我沉淀的一个过程。

    什么是视图?

      视图并没有想象的那么复杂,简单来说的话。

      视图就是把你写的SQL保存起来,在使用视图的时候等于使用了这么个SQL。

    为什么要用视图?

      当业务足够复杂的时候,多个表之间的数据关联越来越紧密。当我们要找一条数据的时候往往要写长的SQL。

      而这些SQL往往都是可以重复使用的。

      于是,当我们有了视图之后,就通过视图直接查询即可。

    视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询。

    如何创建一个视图?

    CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...;
               这里是向外暴露的字段 搜索的SQL

    先举一个简单的例子,我建立一个 user 的视图

    CREATE VIEW v_user AS (SELECT * FROM user);

    很简单,对吧。

    这里查看一下你的表

    mysql> show tables;
    +----------------------------------+
    | test                             |
    +----------------------------------+
    | user                             |
    | v_user                           |
    +----------------------------------+
    11 rows in set (0.00 sec)

    视图就像一张表一样存在。

    如何使用视图?

    使用视图和使用表完全一样,只需要把视图当成一张表就OK了。视图是一张虚拟表。

    就像使用表一样,不过对于视图来说,只推荐查找,虽然说也可以用与增删改,但是视图过于复杂的话有很大问题会出错。

    SELECT * FROM v_user;  查找所有人员信息
    
    SELECT * FROM v_user whser id =1;  查找ID等于1人员信息

    就像正常查找数据表一样

  • 相关阅读:
    (转+原)android获取系统时间
    (转+原)VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
    android的reference table的问题
    (原+转)Eclipse中Android调用OpenCv
    JAVA IO 字符流 FileReader FileWriter
    JAVA IO
    JAVA FIle类
    JAVA 泛型
    JAVA Collection工具类 Collections
    JAVA Map子接口之 HashMap
  • 原文地址:https://www.cnblogs.com/25-lH/p/9057410.html
Copyright © 2011-2022 走看看