zoukankan      html  css  js  c++  java
  • MySQL数据库创建视图

    视图可以说是一种虚拟表,建立在基本表的基础上,通过关联一个表或者多个表来获取多个表中需要的字段,视图只是用来查询数据并不能用来存储数据信息。

    我有以下几张表:

    -------image表----

    ----org表------

    -----user表-----

    ----album表----

    我要将以上四张表关联,可以用sql的join连接语句,但是会很麻烦,现在在mysql中创建一个视图会很方便的解决这四个表连接的问题。sql语句如下:

    CREATE
     VIEW v_image_org_user_album AS--创建视图并命名v_image_org_user_album
        SELECT --先开from中表的命名
            a.id AS imgid,--将a表中的id命名为新的表(视图)中的imgid字段,剩下的都一样,就是将之前的字段重新命名到新视图表中的字段
            a.comment AS comment,
            a.createtime AS createtime,
            a.path AS path,
            b.name AS authorname,
            b.orgcode AS userorgcode,
            c.name AS orgname,
            e.name AS album
        FROM
          t_image a,--image表命名为a
          t_user b,--user表命名为b
          t_organization c,--organzation表命名为c
          t_album_image d,--album_image表命名为d
          t_album e--album表命名为e
        WHERE
            a.useracc = b.account
                AND b.orgcode = c.orgcode
                AND a.id = d.imageid
                AND d.albumid = e.id

    在数据库中的的编译器中执行该段sql语句,生成以v_image_org_user_album命名的视图表,并且会自动匹配到数据库中存储的数据

    然后在项目中创建相应的域类(grails项目),字段就是视图表中新命名的字段,就可以直接按照新字段进行sql语句的增删改查操作,但是,项目移植时视图要重新生成。这样就将多个表进行关联了,可以直接使用视图表中的字段。

  • 相关阅读:
    msyqld 的 The user specified as a definer ('root'@'%') does not exist 问题
    Python加密模块-pycryptodome
    【leetcode 简单】 第一百一十题 分发饼干
    Python数据类型-字典
    Python数据类型-集合(set)
    Python数据类型-列表(list)增删改查
    Python数据类型-元组
    Python 函数系列- Str
    Linux运维之shell脚本
    python之面向对象篇6
  • 原文地址:https://www.cnblogs.com/stu-wrl/p/5886880.html
Copyright © 2011-2022 走看看