0
点赞
收藏
分享

微信扫一扫

MySQL(15)视图


MySQL(1)CentOS彻底卸载MySQL

MySQL(2-1)CentOS安装MySQL详细操作

MySQL(2-2)CentOS7系统使用Docker安装mysql数据库

MySQL(3)MySQL中的数据类型和约束

MySQL(4)数据库常见操作命令详解

MySQL(5)数据表常见的操作命令详解

MySQL(6)数据表中数据的增删改查

MySQL(7)常用的基本查询命令详解

MySQL(8)常用的条件查询命令详解

MySQL(9)查询并排序详细用法

MySQL(10)聚合查询、分组查询、分页查询

MySQL(11)连接查询

MySQL(12)自关联(以省市县数据实例详解)

MySQL(13)子查询

MySQL(14)数据库的设计

MySQL(15)视图

MySQL(16)事务

MySQL(17)索引

MySQL(18)账户管理

1、视图简介

  • 背景:对于复杂的查询,往往是有多个数据表进行关联查询而得到的,如果数据库因为需求等原因发生改变,为了保证查询出来的数据与之前的相同,则需要在多个地方进行修改,维护起来非常麻烦,解决这个问题的方案就是定义视图
  • 视图,通俗的来说,就是select语句查询到的执行返回的结果集,视图是多若干张表的引用,一张虚表,查询语句执行的结果,视图不存储具体的数据,当基本的数据表中的数据发生了变化,视图中的数据也会跟着发生变化

2、视图使用流程

  • 定义视图

create view 视图名称 as select语句;

如,根据之前创建的省市区的数据表,通过如下的命令可以查出来省-市-区结构,比如这里只查了江苏的情况:

MySQL(15)视图_数据


那么这里其实就可以根据这个命令创建一个视图,这个视图中有三个字段,分别是省,市,和区,这样后续查询数据时就可以不用非常复杂的sql命令,而是直接从这个视图中查询了如:

mysql> create view v_province_city_dist as select p.atitle as province,c.atitle as city ,d.atitle as dist  from areas as p, areas as c, areas as d where p.pid=0 and p.aid=c.pid and c.aid=d.pid;

MySQL(15)视图_mysql_02

  • 查看视图

show tables;

MySQL(15)视图_数据_03

  • 使用视图

select * from v_province_city_dist where province='江苏省';

如下,视图看上去好像就是一个数据表一样

MySQL(15)视图_mysql_04


所以,当需求变化了,需要更新数据表的时候,为了适配已经开发的代码,可以通过创建一个视图来适配现有的代码,从而做到了数据库的修改与代码开发的解耦

这里还需要注意的是,视图是专门用例查看数据的,如果要修改数据,还是要取基本的数据表修改,而基础的数据表更新了,视图中查到的数据会同步更新的

  • 删除视图

drop view xxx

如:

MySQL(15)视图_数据库_05

3、视图的作用

  • 提高了重用性,就像一个函数接口一样
  • 对数据库重构,却不影响程序的运行
  • 提高了安全性能,可以对不同的用户
  • 让数据更加清晰


举报

相关推荐

0 条评论