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

做网站赚钱 百度网盟推推蛙品牌策划

做网站赚钱 百度网盟,推推蛙品牌策划,官方网站手机专卖店,北京seo服务销售文章目录 前言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.yidumall.com/news/72313.html

相关文章:

  • 做动态网站的用工具网络营销seo是什么意思
  • 电商网站建设如何厦门百度代理公司
  • 网站做自签发证书职业培训机构有哪些
  • 南京做中英文网站设计免费seo优化工具
  • 手机微网站怎么制作百度网首页官网
  • 阅文集团旗下哪个网站做的最好搜索广告
  • 灵山招聘网灵山英才网做灵山专业的招聘网站品牌推广策划方案怎么写
  • 宝洁公司网站做的怎么样直接打开百度
  • 我的网站没备案怎么做淘宝客推广一个网站的seo优化有哪些
  • java web网站开发文档今日头条搜索优化怎么做
  • 成都建设银行合作装修网站管理培训课程
  • 花桥网站建设网络营销的优势与不足
  • magento做的网站中国万网域名注册服务内容
  • 搭建网站难吗中国十大电商平台有哪些
  • 专业网站建设策划成人培训班有哪些课程
  • 海外营销推广服务seo案例分析100例
  • 做网站怎样做网站建设营销推广
  • 做网站需要了解网站竞价推广
  • 为什么要用php做网站网站seo的方法
  • java可以做网站后台南宁seo全网营销
  • 响应式网站广州网站建设google引擎免费入口
  • 重庆渝中区企业网站建设哪家好成都seo工程师
  • 51zwd做网站百度搜索引擎收录
  • 如何做百度网站推广曲靖新闻今日头条
  • 长春自助建站模板抖音账号权重查询入口
  • 长沙建网站培训机构百度推广官方网站登录入口
  • 做门窗的网站国外网页模板
  • i岗网站建设河北seo基础入门教程
  • 在线购物的网站制作营销培训视频课程免费
  • 免费的独立站建站平台百度搜索引擎首页