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

没有网站服务器空间如何用ftp上海排名优化推广工具

没有网站服务器空间如何用ftp,上海排名优化推广工具,基层医疗卫生机构管理信息系统,自助网站建设价格文章目录 前言1.什么是视图?2.创建视图3. 使用视图4. 修改数据4.1.注意事项 5. 删除视图6.视图的优点 前言 前面我们学习了索引,这次我们来学习视图 1.什么是视图? 视图是一个虚拟的表,它是基于一个或多个基本表或其他视图的查询…

文章目录

  • 前言
  • 1.什么是视图?
  • 2.创建视图
  • 3. 使用视图
  • 4. 修改数据
    • 4.1.注意事项
  • 5. 删除视图
  • 6.视图的优点


前言

前面我们学习了索引,这次我们来学习视图


1.什么是视图?

视图是一个虚拟的表,它是基于一个或多个基本表或其他视图的查询结果集。视图本身不存储数据,而是通过执行查询来动态生成数据。用户可以像操作普通表一样使用视图进行查询、更新和管理。视图本身并不占用物理存储空间,它仅仅是一个查询的逻辑表示,物理上它依赖于基础表中的数据。

2.创建视图

语法:

create view view_name [(column_list)] as select_statement

3. 使用视图

例如:查询用户的所有信息和考试成绩

select s.student_id,s.name,cls.class_id,cls.name,c.course_id,c.name,sc.score
from student s,class cls,course c,score sc
where s.class_id = cls.class_id
and sc.student_id = s.student_id
and sc.course_id = c.course_id
order by s.student_id;

在这里插入图片描述
所有有这样开发需求的程序员,都需要写这么复杂的SQL,为此我们为上面建立一个视图。

create view v_student_score as(
select s.student_id,s.name,cls.class_id,cls.name,c.course_id,c.name,sc.score
from student s,class cls,course c,score sc
where s.class_id = cls.class_id
and sc.student_id = s.student_id
and sc.course_id = c.course_id
order by s.student_id
);

在这里插入图片描述
改进的语句:

create view v_student_score as(
select 
s.student_id,
s.name as student_name,
cls.class_id,
cls.name as class_name,
c.course_id,
c.name as course_name,
sc.score
from student s,class cls,course c,score sc
where s.class_id = cls.class_id
and sc.student_id = s.student_id
and sc.course_id = c.course_id
order by s.student_id
);

使用视图

select * from v_student_score;

在这里插入图片描述
为了解决上面出现重复列的问题,也可以在视图中指定列名

create view v_student_score_v1
(id,name,class_id,class_name,course_id,course_name,score)as(
select s.student_id,s.name,cls.class_id,cls.name,c.course_id,c.name,sc.score
from student s,class cls,course c,score sc
where s.class_id = cls.class_id
and sc.student_id = s.student_id
and sc.course_id = c.course_id
);

在这里插入图片描述

4. 修改数据

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

在这里插入图片描述
将上面的数据改为 99,并观察视图的数据

update score set score = 99 where student_id = 1 and course_id = 1;

在这里插入图片描述

select * from score;
select * from v_student_score order by id;

在这里插入图片描述

  • 通过视图修改数据会影响基表
    如果修改视图中的数据,会影响基表吗?
select * from v_student_score;

在这里插入图片描述
将上述分数改为80分
但是发生了下面的问题
在这里插入图片描述
那就改变视图 v_student_score_v1 的数据

update v_student_score_v1 set score where id = 1;

在这里插入图片描述观察视图和基础表的数据

select * from v_student_score_v1 order by id asc;

在这里插入图片描述

select * from score where student_id = 1;

在这里插入图片描述
因此,不论更新了视图还是基础表,都会相互被影响,查询出来的数据都是最新结果

4.1.注意事项

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

5. 删除视图

drop view view_name;

6.视图的优点

1.简单性: 视图可以将复杂的查询封装成一个简单的查询。例如,针对一个复杂的多表连接查询,可以创建一个视图,用户只需查询视图而无需了解底层的复杂逻辑。
2. 安全性: 通过视图,可以隐藏表中的敏感数据。例如,一个系统的用户表中,可以创建一个不包含密码列视图,普通用户只能访问这个视图,而不能访问原始表。
3. 逻辑数据独立性: 视图提供了一种逻辑数据独立性,即使底层表结构发生变化,只需修改视图定义,而无需修改依赖视图的应用程序。使用到应用程序与数据库的解耦
4. 重命名列: 视图允许用户重命名列名,以增强数据的可读性


http://www.hkea.cn/news/422147/

相关文章:

  • 近的网站在线客服系统网络优化工程师前景如何
  • 网站制作职业google入口
  • 广州网站 制作信科便宜网络营销软文范例500
  • 网站建设公开课长沙网站推广和优化
  • 建设网站的需求分析俄罗斯搜索引擎yandex推广入口
  • 可以做英文纵横字谜的网站搜狗网站收录入口
  • web前端开发是不是做网站百家号关键词排名优化
  • 夸克看网站要钱吗电商网站seo优化
  • 自己做网站排版138ip查询网域名解析
  • 东莞做网站 南城石佳2023网站推广入口
  • 广东省省建设厅网站郴州网站建设网络推广平台
  • 校园网站推广方案怎么做应用商店优化
  • 巩义网站建设网络营销公司是做什么的
  • 做网站基本教程一站式营销平台
  • 杭州模板网站建设电脑培训网上培训班
  • 大连做网站不错的公司怎样把广告放到百度
  • 网站上面带官网字样怎么做的网站设计的流程
  • 有个网站是做视频相册的网球排名即时最新排名
  • 论坛网站备案流程图优化大师怎么提交作业
  • 织梦政府网站模板百度在线入口
  • 专业做婚纱摄影网站会员制营销
  • 网站内容丰富互动营销平台
  • 阿里巴巴logo高清图谷歌seo网站推广
  • 网站如何做内链seo高手是怎样炼成的
  • 设计师个人网站建设怎样注册一个自己的平台
  • 徐州营销网站建设产品线上推广渠道
  • 绍兴市网站建设公司企业官网搭建
  • 关于网页设计的网站免费发布信息网站大全
  • 郑州新闻头条seo基础教程
  • 做网站比较大的公司朔州seo