zoukankan      html  css  js  c++  java
  • 1-MySQL高级-视图

    视图

    1. 问题

    对于复杂的查询,往往是有多个数据表进行关联查询而得到,如果数据库因为需求等原因发生了改变,为了保证查询出来的数据与之前相同,则需要在多个地方进行修改,维护起来非常麻烦

    解决办法:定义视图

    2. 视图是什么

    通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

    视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);

    方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;

    3. 定义视图

    建议以v_开头

    create view 视图名称 as select语句;

    4. 查看视图

    查看表会将所有的视图也列出来

    show tables;

    5. 使用视图

    视图的用途就是查询

    select * from v_stu_score;

    6. 删除视图

    drop view 视图名称;
    例:
    drop view v_stu_sco;
    

    7. 视图demo

    例:

    (1)创建一个测试视图,查询goods表与cates_goods表和brand_goods表左连接后的结果集;

    1 create view v_test1 as 
    2 select g.* , b.name as brand_name, g_new.name as cates_name from goods as g 
    3 left join brand_cates as b on g.brand_id=b.id 
    4 left join goods_cates as g_new on g.cate_id=g_new.id;

    (2)查询视图test1;

    1 select * from v_test1;

    (3)在goods表中添加一条数据,视图的查询结果也会发生变化;

    1 insert into goods (name,cate_id,brand_id,price) values ('xiaomi',3,4,1999);

    8. 视图的作用

    1. 提高了重用性,就像一个函数
    2. 对数据库重构,却不影响程序的运行
    3. 提高了安全性能,可以对不同的用户
    4. 让数据更加清晰
  • 相关阅读:
    看完动画你还会不懂 快速排序么
    看动画轻松理解时间复杂度(一)
    LeetCode Animation 题目图解汇总(持续更新中...)
    分而治之,归并排序的动画演示
    在Object-C中学习数据结构与算法之排序算法
    iOS面试准备之思维导图
    .net core跨域设置
    .NET Core WebAPI Swagger使用
    vue-resource emulateJSON的作用
    百度地图API简单初始化
  • 原文地址:https://www.cnblogs.com/summer1019/p/11052661.html
Copyright © 2011-2022 走看看