13_ 数据库 _ 视图

简介: 13_ 数据库 _ 视图

13_ 数据库 _ 视图

[TOC]

一、 问题

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

解决办法:定义视图

二、视图 (用来查数据)

2.1 视图是什么

  • 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。
  • 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);
  • 方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;

QQ20171101-084028@2x.png

2.2 定义视图

-- 建议以v_开头
create view 视图名称 as select语句;

2.3 查看视图

-- 查看表会将所有的视图也列出来
show tables;

2.4 使用视图

-- 视图的用途就是查询
select * from v_stu_score;

2.5 删除视图

-- drop view 视图名称;

drop view v_stu_sco;

2.6 视图的作用

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

三、视图demo

-- 查询 3 张表的信息
select * from goods as g left join goods_cates as c on g.cate_id=c.id left join goods_brands as b on g.brand_id=b.id;

image-20220730164047057.png

-- 查询 3 张表的信息
select g.*,c.name as cate_name,b.name as brand_name from goods as g left join goods_cates as c on g.cate_id=c.id left join goods_brands as b on g.brand_id=b.id;

image-20220730164105076.png

-- 查询 3 张表的信息
create view v_goods_info as select g.*,c.name as cate_name,b.name as brand_name from goods as g left join goods_cates as c on g.cate_id=c.id left join goods_brands as b on g.brand_id=b.id;

desc v_goods_info;

image-20220730164149543.png

show tables;
select * from v_goods_info;
select * from v_goods_info limit 5;

-- 视图不能用于更新修改等,用于查询使用
mysql> update v_goods_info set name='老王牌商务双肩背包' where id=21;
ERROR 1288 (HY000): The target table v_goods_info of the UPDATE is not updatable

image-20220730164219299.png

目录
相关文章
|
6月前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:视图之美,简化查询、提升效率的数据库利器(14)
轻松入门MySQL:视图之美,简化查询、提升效率的数据库利器(14)
246 0
|
6月前
|
关系型数据库 MySQL 程序员
【MySQL 数据库】8、视图
【MySQL 数据库】8、视图
86 0
|
6月前
|
存储 数据库
Navicate 如何导出数据库中的存储过程、事件、视图等?
Navicate 如何导出数据库中的存储过程、事件、视图等?
327 0
|
6月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
142 0
|
6月前
|
数据库
数据库第十一次作业 视图的应用
数据库第十一次作业 视图的应用
58 1
|
存储 SQL Oracle
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
122 0
|
6月前
|
SQL 数据库 数据库管理
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
174 11
|
12月前
|
SQL 关系型数据库 MySQL
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
346 0
|
2月前
|
存储 缓存 关系型数据库
MySQL 视图:数据库中的灵活利器
视图是数据库中的虚拟表,由一个或多个表的数据经筛选、聚合等操作生成。它不实际存储数据,而是动态从基础表中获取。视图可简化数据访问、增强安全性、提供数据独立性、实现可重用性并提高性能,是管理数据库数据的有效工具。
|
5月前
|
存储 SQL 关系型数据库
MySQL数据库进阶第四篇(视图/存储过程/触发器)
MySQL数据库进阶第四篇(视图/存储过程/触发器)