前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >MySQL【知识改变命运】12

MySQL【知识改变命运】12

作者头像
用户11319080
发布于 2024-10-30 00:53:08
发布于 2024-10-30 00:53:08
8800
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

1:什么是视图

  • 视图是一张虚拟的表
  • 视图是基于一个或者多个基表或者其他视图查询的结果集
  • 视图本身不占有物理内存,也不存储数据,只是根据查询执行来动态生成数据。
  • 用户对普通表的操作(查询,更新,删除)也可以在视图里面操作。

2:创建视图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 语法
CREATE VIEW view_name [(column_list)] AS select_statement
create view//创建视图关键词
view_name// 视图名
column_list//视图包含的列
select_statement//视图所依赖的查询语句
  • 我们先查询一下表
  • 然后创建一个视图 这里我们要注意一个小问题,我们要防止在视图中出现名字重复

创建成功:

  • 视图用show tables 查询也在表集合里面
  • 我们可以用视图直接查询
  • 查询视图结构

使用视图(视图的好处)

2.1.隐藏敏感字段

  • 举例:查询⽤⼾的姓名和总分,(隐藏学号和各科成绩
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使⽤真实表进⾏查询
select s.name, sum(sc.score) total from student s, score sc 
where s.id = sc.student_id
group by sc.student_id order by s.id;

# 如果使⽤真实表,在查询列表中随时可以加上学号字段

# 创建视图
create view v_student_total_points as
select s.id, s.name, sum(sc.score) total from student s, score sc 
where s.id = sc.student_id 
group by s.id order by s.id;
# 使⽤视图查询,只能查到学⽣姓名和总分,不能再添加查询字段

2.2.对外提供统一访问

3:视图和真实表进⾏表连接查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from v_student_total_points v, student s where v.id = s.id;

查询操作,使用视图和使用真实表一样的,有无视图是基于真实表的

4:修改视图数据

4.1:通过真实表修改数据,会影响视图

因为视图本质是依赖于真实表的

4.2:通过视图修改数据会影响基表

但是一下情况,无法使用修改视图

  • 修改真实表会影响视图,修改视图同样也会影响真实表
  • 以下视图不可更新:
  • 创建视图时使⽤聚合函数的视图
  • 创建视图时使⽤ DISTINCT
  • 创建视图时使⽤ GROUP BY 以及 HAVING ⼦句
  • 创建视图时使⽤ UNION 或 UNION ALL
  • 查询列表中使⽤⼦查询
  • 在FROM⼦句中引⽤不可更新视图

6:删除视图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
语法:
drop view view_name;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL【知识改变命运】10
如果联合查询表的个数越多,表中的数据量越⼤,临时表就会越⼤,所以根据实际情况确定联合查询表的个数
用户11319080
2024/10/21
760
MySQL【知识改变命运】10
MySQL:查询(万字超详细版)
之后,可以通过as关键字来为查询结果中的列指定别名,as和引号可以省略,但如果别名中存在空格就不能省略引号了
2的n次方
2024/10/15
5220
MySQL:查询(万字超详细版)
《MySQL核心知识》第11章:视图
今天是《MySQL核心知识》专栏的第11章,今天为大家系统的讲讲MySQL中的视图,希望通过本章节的学习,小伙伴们能够举一反三,彻底掌握MySQL中的视图知识。好了,开始今天的正题吧。
冰河
2022/12/01
4010
《MySQL核心知识》第11章:视图
一条SQL如何被MySQL架构中的各个组件操作执行的?
SELECT class_no FROM student WHERE name = 'lcy' AND age > 18 GROUP BY class_no
砖业洋__
2023/05/06
9710
一条SQL如何被MySQL架构中的各个组件操作执行的?
【MySQL】MySQL的视图
视图(view)是一个虚拟表,非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命
陶然同学
2023/02/24
4.3K0
MySQL/MariaDB表表达式(3):视图「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说MySQL/MariaDB表表达式(3):视图「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/03/08
1.2K0
MySQL/MariaDB表表达式(3):视图「建议收藏」
学生成绩管理系统数据库设计–MySQL/SQL Server[通俗易懂]
SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Management System Database)
全栈程序员站长
2022/08/31
8.2K0
sql语句练习题整理
3)李四语文成绩被登记错误,成绩实际为85分,更新到考试信息表中,SQL语句怎么编写?
全栈程序员站长
2022/07/25
2630
MySQL视图
视图是关系型数据库重要的组成部分之一,它可以限制数据访问,简化复杂查询,保持数据的独立性,以及基于相同的数据提供不同的视图等等。本文介绍MySQL数据库视图的一些用法,供大家参考。
Leshami
2018/08/06
2.9K0
MySQL视图
MySQL视图了解一下
MySQL视图是一种虚拟的表,本身不包含任何数据,可以看作是对SQL查询的封装,它的数据都是动态执行SQL查询的结果。
布禾
2021/04/09
3230
MySQL 系列教程之(十四)50 道 SQL 练习题精讲
3.查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )
ruochen
2021/08/17
46.5K0
MySQL 系列教程之(十四)50 道 SQL 练习题精讲
MySQL操作之视图
视图是从一个表或者多个表导出来的表,它是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。通过视图不仅可以看到存放在基本表中的数据,并且还可以像操作基本表一样,对视图中的数据进行查询、修改和删除。
ha_lydms
2023/08/09
2750
MySQL操作之视图
sqlserver 视图创建索引_数据库视图可以建立索引吗
视图(View)是从一个或多个表或其它视图导出的,用来导出视图的表称为基表,导出的视图又称为虚表。在数据库中,只存储视图的定义,不存放视图对应的数据,这些数据仍然存放在原来的基表中。 使用视图前,必须先创建视图,创建视图要遵守以下原则: (1)只有在当前数据库中才能创建视图,视图命名必须遵循标识符规则。 (2)不能将规则、默认值或触发器与视图相关联。 (3)不能在视图上建立任何索引。
全栈程序员站长
2022/09/23
2.8K0
sqlserver 视图创建索引_数据库视图可以建立索引吗
Mysql视图
什么是视图:是从一个或多个表中导出来的表,它是一种虚拟存在的表,表的结构和数据都依赖于基本表。
海盗船长
2021/12/07
2.5K0
Mysql视图
Mysql经典练习题50题「建议收藏」
网上关于这套练习题较多使用的是比较老的mysql版本,我使用的是 Server version: 8.0.15 MySQL
全栈程序员站长
2022/11/04
1.2K1
走向面试之数据库基础:一、你必知必会的SQL语句练习-Part 1
本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已。另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥。
Edison Zhou
2018/08/20
1.2K0
走向面试之数据库基础:一、你必知必会的SQL语句练习-Part 1
hive sql练习1
参考 DROP TABLE student; create TEMPORARY TABLE student ( sid string, sname string, sage int, ssex string ); INSERT into student values("01","zhaolei",19900101,"M"); INSERT into student values("02","qiandian",19901221,"M"); INSERT into student values
用户1733462
2018/10/10
6840
MySQL 视图/存储过程/触发器
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
用户9615083
2022/12/25
2.6K0
MySQL 视图/存储过程/触发器
超级经典的SQL练习题(MySQL版本),你还怕SQL不过关吗?
微信搜索公众号【C you again】,回复“SQL”下载无水印PDF版本,方便收藏
C you again 的博客
2021/07/08
1.4K0
mysql练习:经典50道基础题
建表共4张表,分别对应学生信息(Student)、课程信息(Course)、教师信息(Teacher)以及成绩信息(SC)
不愿意做鱼的小鲸鱼
2023/02/01
1.2K0
相关推荐
MySQL【知识改变命运】10
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验