Mysql数据库核心技术(二十二)创建视图 修改视图 查询视图

[复制链接]
查看: 1716|回复: 31
发表于 2023-1-19 22:40:32 | 显示全部楼层 | 阅读模式
首先我们说一下视图的含义:
它的作用是将一条查询语句的查询结果自动存入一张表中,下一条查询语句可以像查询普通表一样来查询上一条语句创建出来的表。
这张自动创建出来的表就叫视图。
我们知道,之前我们在讲查询时,曾经说过,如果我们想要得到更为精准的数据,往往需要写一条很长的查询语句,而视图的意义就是为了降低单条查询语句的编写难度。

1、创建单表视图
  1. create view view8 as select * from user where age>20;
复制代码

语句解释:
  1. create view view8 --创建一张view8的视图
  2. as --这张视图的数据来源
  3. select * from user where age>20 --查询user表中age>20的结果。
复制代码
查询视图:
  1. select * from view8;
复制代码
结果如下:
Mysql数据库核心技术(二十二)创建视图 修改视图 查询视图

2、创建联表视图
为了进行以下的实验,我们再创建一张表
  1. CREATE TABLE `stuinfo` (
  2. `stuNo` char(6) NOT NULL,
  3. `stuName` varchar(10) NOT NULL,
  4. `stuSex` char(2) NOT NULL,
  5. `stuAge` tinyint(4) NOT NULL,
  6. `stuSeat` tinyint(4) NOT NULL,
  7. `stuAddress` varchar(10) NOT NULL,
  8. PRIMARY KEY (`stuNo`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  10. INSERT INTO `stuinfo` VALUES ('s25301', 'tom', '男', 18, 1, '北京');
  11. INSERT INTO `stuinfo` VALUES ('s25302', 'berry', '男', 31, 3, '上海');
  12. INSERT INTO `stuinfo` VALUES ('s25303', 'marry', '女', 22, 2, '北京');
  13. INSERT INTO `stuinfo` VALUES ('s25304', 'ross', '男', 28, 4, '天津');
  14. INSERT INTO `stuinfo` VALUES ('s25305', 'julie', '女', 23, 7, '河南');
  15. INSERT INTO `stuinfo` VALUES ('s25318', 'guli', '男', 26, 6, '天津');
复制代码
执行以下语句创建联表查询视图
  1. create view view3 as select * from user join stuinfo using(name);
复制代码


执行结果如下:

Mysql数据库核心技术(二十二)创建视图 修改视图 查询视图

3、修改视图
  1. alter view view3 as select name,sex,stuAddress from user join stuinfo using(name);
复制代码


执行结果如下:
Mysql数据库核心技术(二十二)创建视图 修改视图 查询视图

修改视图其实是重新查询。

4、视图的应用
例如:以下语句
  1. select * from user order by age desc group by sex;
复制代码
如果我们用视图操作应该这样做
  1. create or replace algorithm=temptable view view3 as select * from user order by age desc;
  2. select * from view3 group by sex;
复制代码

语句解释:
  1. algorithm表示视图选择的算法(可选参数)
  2. Merge: 当引用视图时,引用视图的sql语句与定义sql视图的语句合并(相当于只存储了sql).
  3. Temptable:当引用视图时,根据视图的创建语句建立一个临时表.该临时表是一直存储在mysql数据库中的,除非人为删除;
  4. Undefined(默认):未定义,自动,让系统帮你选.
复制代码
Mysql数据库核心技术(二十二)创建视图 修改视图 查询视图

通过观察上面的实验,大家可能会有疑问,似乎使用视图操作比不用还要复杂,事情并非如此,我们再讲解的时候,为了让大家更容易理解,所以使用了一条比较简单的查询语句,在实际工作中,大家一定会遇到非常复杂的查询情景,那时候就理解了。

5、删除视图
  1. drop view view3;
复制代码


ok,以上就是关于视图的核心操作,大家可以动手自己测试一下。




易博软件介绍
发表于 2023-1-30 23:39:24 | 显示全部楼层
支持楼主,努力学习更多的知识

0

主题

25

帖子

13

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
13
发表于 2023-1-31 08:45:33 | 显示全部楼层
遇到了就是有福了,学mysql的赶紧过来!
发表于 2023-1-31 17:17:54 | 显示全部楼层
学mysql看过很多教程,全都讲不全,这次下定决心学会它

1

主题

193

帖子

100

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
100

终身会员

发表于 2023-2-1 07:50:24 | 显示全部楼层
自从知道慈众后,学习的激情一发不可收拾

6

主题

232

帖子

125

积分

营销菜鸟

Rank: 3Rank: 3

积分
125
发表于 2023-2-1 07:50:23 | 显示全部楼层
讲的好讲的妙 好教程
发表于 2023-2-1 22:53:10 | 显示全部楼层
原创教程,非常好!
发表于 2023-2-2 13:57:46 | 显示全部楼层
遇到了就是有福了,学mysql的赶紧过来!

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-2-15 02:09:24 | 显示全部楼层
就是好,回复一下,没什么可说的

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-16 20:05:21 | 显示全部楼层
以前看过很多mysql教程也没弄明白,这次明白了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表