MySQL视图(view)
一、基本概念
视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ] ; 创建视图需要create view 权限,并且对于查询涉及的列有select权限;使用create or replace 或者 alter修改视图,那么还需要改视图的drop权限。
大数据分表时可以用到
比如,表的行数超过200万行时,就会变慢,
可以把一张的表的数据拆成4张表来存放.
News表
Newsid, 1,2,3,4
News1,news2,news3,news4表
把一张表的数据分散到4张表里,分散的方法很多,
最常用可以用id取模来计算.
Id%4+1 = [1,2,3,4]
比如 $_GET['id'] = 17,
17%4 + 1 = 2, $tableName = 'news'.'2'
Select * from news2 where id = 17;
还可以用视图, 把4张表形成一张视图
Create view news as select from n1 union select from n2 union.........
二、视图的基本使用
如何创建视图(基本语法):
create view 视图名 as select 字段名 from 表名;
Mysql视图的定义在from关键字后面不能包含子查询
修改了视图,对基表数据有影响
修改了基表,对视图也有影响
如何修改视图
基本语法是
alter view 视图名 as select 语句
alter view 视图名 as select 视图;
显示视图创建情况
show create view 视图名;
查看视图
Show tables;
Show table status [ from db_name ] [ like ‘pattern’ ];
SELECT * FROM information_schema.views where table_name = 'my_view';
删除视图
drop view 视图名[,视图名…];
重命名视图
Rename table 视图名 to 新视图名;;
三、具体的创建视图的方式:
create algorithm=temptable view view1 as select goods_id,cat_id,shop_price,goods_name from ecs_goods order by cat_id, shop_price desc;
create view view2 as select * from view1 group by view1.cat_id;
这里说明一下关于视图(存储的都是语句)使用到的算法(视图放哪了):
Undefined:未定义,自动,让系统帮你选.
四、使用视图的好处
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)