当前位置: 首页 > news >正文

鹤壁北京网站建设彩票网站维护会跑路吗

鹤壁北京网站建设,彩票网站维护会跑路吗,东莞seo建站排名,怎么做网页链接教程【MYSQL】视图 一、视图的概念1.1 视图的概念1.2 为什么要用视图 二、创建视图2.1 创建单表查询视图2.2 创建多表联合视图2.3 基于视图创建视图 三、查询视图3.1 查看数据库的表对象、视图对象3.2 查看视图的结构3.3 查看视图的详细定义信息3.4 展示视图的详细内容 四、修改视图…

【MYSQL】视图

  • 一、视图的概念
      • 1.1 视图的概念
      • 1.2 为什么要用视图
  • 二、创建视图
      • 2.1 创建单表查询视图
      • 2.2 创建多表联合视图
      • 2.3 基于视图创建视图
  • 三、查询视图
      • 3.1 查看数据库的表对象、视图对象
      • 3.2 查看视图的结构
      • 3.3 查看视图的详细定义信息
      • 3.4 展示视图的详细内容
  • 四、修改视图
      • 4.1 修改基表数据
      • 4. 2 修改视图数据
  • 五、删除视图
  • 六、视图的总结
      • 6.1 优点
      • 6.2 缺点

一、视图的概念

1.1 视图的概念

在MySQL中,视图(View)是一种虚拟表,其内容由SQL查询定义。视图并不实际存储数据,而是基于一个或多个基础表(或视图)的查询结果动态生成数据。视图可以看作是一个保存了特定查询的“窗口”,通过这个窗口可以查看或操作数据,而无需直接操作底层的物理表。

1.2 为什么要用视图

视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,公司发工资,我们通过查询就只能看到自己的工资,不能看到全部人的工资。

视图的应用场景有很多,这里只是列举一个,最后,总结出视图的优点

二、创建视图

语法:

CREATE [OR REPLACE] VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

OR REPLACE(可选):如果视图已经存在,OR REPLACE选项会替换掉旧的视图定义。如果没有这个选项,尝试创建已存在的视图会报错。

事先创建好两个表student和student_score,方便接下来的演示。
student表:
在这里插入图片描述
student_score表:
在这里插入图片描述

2.1 创建单表查询视图

举例:

CREATE view student_name_sex 
as select name,sex from student;

结果:
在这里插入图片描述

2.2 创建多表联合视图

举例:
注意

create view student_name_course_score_sex asselect name,sex,course,score from student s,student_score sc where s.name=sc.name;

在这里插入图片描述
当我们多表创建视图的时候会出现这个错误,这是因为两个表中包含相同的字段名,此时查询时未明确指定字段所属的表,就会导致该错误。
修改

create view student_name_course_score_sex as
select s.name,sex,course,score from student s,
student_score sc where s.name=sc.name;

在这里插入图片描述

2.3 基于视图创建视图

举例:

create view student_name_course_score as
SELECT name,course,score from 
student_name_course_score_sex;

结果:
在这里插入图片描述

三、查询视图

3.1 查看数据库的表对象、视图对象

SHOW TABLES;

3.2 查看视图的结构

DESC / DESCRIBE 视图名称;

3.3 查看视图的详细定义信息

SHOW CREATE VIEW 视图名称;

3.4 展示视图的详细内容

SELECT * FROM 视图名称;

四、修改视图

4.1 修改基表数据

在这里插入图片描述
这里我们看到视图显示的数据:张三的java成绩是99,我们将张三Java成绩改为9分,看下视图的成绩会不会发生变化。
在这里插入图片描述

修改基表数据会影响视图的数据!!!

4. 2 修改视图数据

这里我们已经将基表:张三的java成绩改为9分,接下来,我们将视图的张三Java成绩改为99,看能否对基表产生影响。
视图:
在这里插入图片描述
基表:
在这里插入图片描述

修改视图数据会对基表数据产生影响!!!

注意:

  • 修改真实表会影响视图,修改视图同样也会影响真实表

以下视图不可更新:

  • 创建视图时使⽤聚合函数的视图
  • 创建视图时使⽤ DISTINCT
  • 创建视图时使⽤ GROUP BY 以及 HAVING ⼦句
  • 创建视图时使⽤ UNION 或 UNION ALL
  • 查询列表中使⽤⼦查询
  • 在FROM⼦句中引⽤不可更新视图
    例子:
    在这里插入图片描述

值得注意的是:虽然可以更新视图数据,但总的来说,视图作为 虚拟表 ,主要用于 方便查询 ,不建议更新视图的数据。对视图数据的更改,都是通过对实际数据表里数据的操作来完成的。

五、删除视图

语法:

DROP VIEW IF EXISTS 视图名称;

在这里插入图片描述

drop view student_name_course_score_2;

在这里插入图片描述

谨慎删除!!!

六、视图的总结

6.1 优点

  • 简化复杂查询

视图可以封装复杂的SQL查询逻辑,使得用户可以通过简单的SELECT语句访问数据,而无需每次都编写复杂的查询语句。
举例:通过视图可以隐藏多表连接、分组统计等复杂操作,使得查询更加直观。

  • 提高数据安全性

视图可以限制用户对某些数据的访问权限,用户只能通过视图访问数据,而无法直接访问底层表,从而实现数据的安全性和隔离。
举例:通过视图隐藏敏感字段(如薪资信息),只展示允许访问的数据。

  • 逻辑独立性

视图提供了一种逻辑上的抽象,使得应用程序与底层数据表的结构解耦。即使底层表的结构发生变化(如字段名更改、表结构调整等),只要视图的定义仍然有效,应用程序代码无需修改。
举例:如果底层表的字段名被修改,只需调整视图的定义,而无需修改所有依赖该表的应用程序代码。

  • 重用SQL逻辑

视图可以将常用的查询逻辑保存起来,避免重复编写相同的SQL语句,减少代码量并提高代码的可维护性。
举例:多个应用程序或模块可以共享同一个视图,而不必各自实现相同的查询逻辑。

  • 动态数据展示

视图是动态的,其内容会随着底层表数据的变化而实时更新。这意味着视图始终反映最新的数据状态,无需手动维护数据的一致性。
举例:基于视图的报表可以实时反映最新的业务数据。

  • 简化多表查询

视图可以将多个表的数据整合在一起,隐藏复杂的JOIN操作,使得查询更加直观和简单。 举例:通过视图将订单表和订单明细表整合,简化查询逻辑。

6.2 缺点

如果我们在实际数据表的基础上创建了视图,那么,如果实际数据表的结构变更了,我们就需要及时对相关的视图进行相应的维护。 特别是嵌套的视图(就是在视图的基础上创建视图),维护会变得比较复杂, 可读性不好 ,容易变成系统的潜在隐患。因为创建视图的 SQL 查询可能会对字段重命名,也可能包含复杂的逻辑,这些都会增加维护的成本。

http://www.dtcms.com/a/540850.html

相关文章:

  • AI获客哪家公司靠谱
  • Facebook多账号管理实战指南:安全合规与效率提升策略
  • 基于 STM32 与机器学习的电机 / 风扇异常声音检测系统设计与实现
  • 【HTML教学】成为前端大师的入门教学
  • 天津建立网站营销设计帮人做网站犯法
  • 数据链路层:网络通信的基石与工程实践
  • 从加载到推理:Llama-2-7b 昇腾 NPU 全流程性能基准
  • 河南商城网站建设wordpress驾校模版
  • Linux可执行程序提示GLIBCXX not found邪修办法
  • Oracle 数据库OGG 工具简介
  • 网站面包屑导航设计即位置导航网页设计的流程是什么
  • 【Block总结】MRFA,大卷积感受野,提高小目标检测的利器|即插即用|ICCV 2025
  • 2025年机电一体化与轨道交通国际学术会议(MRT 2025)
  • 多传感器融合的办公室智能门禁系统(论文+源码)
  • 【Java +AI |基础篇day3 流程控制】
  • 关于网站的建设微信小程序开发平台
  • 常规八股 (w字解析,不定期更新)
  • Python界面开发2
  • 做网站还有开发文档吗做一个游戏需要什么技术
  • C语言多变量scanf循环输入深度解析:==number vs !=EOF
  • 上海殷行建设网站空间做网站
  • 吴恩达DeepLearning课程我的笔记week2
  • 建设多语种网站静态网站设计与制作书籍
  • 软件危机:开发困境与解决之道
  • NewStarCTF2025-WEEK3
  • 手机网站建设运营方案网站怎么换模板
  • 消防器具-图形识别一键计量
  • 体育彩票数据分析 python双色球数据实时分析平台+实时监控大屏 数据爬虫 可视化大屏+Flask框架 大数据 (源码)✅
  • LabelMe的安装、实例分割数据集、数据格式转换(VOC转yolo)并划分 详细教程
  • 2025年上半年架构论文《论基于事件驱动的架构设计及其应用》