首页 > 其他分享 >视图

视图

时间:2023-03-03 21:14:45浏览次数:23  
标签:last name 视图 查询 id view

视图

  • 视图:一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存SQL逻辑,不保存查询结果

  • 应用场景:多个地方用到同样的查询结果,并且该查询结果使用的SQL语句较复杂

  • 下面例子中使用的数据表

    • employees 员工表

    • departments 部门表

    • jobs 工种表

    • locations 地点表

      员工表分别通过部门id、工种id与部门表、工种表关联,部门表通过地点id与地点表关联。

1. 视图的创建

  • 语法

    create view 视图名
    as
    查询语句;
    
  • 示例

    #创建
    create view ema
    as
    select last_name,department_name,j.*
    from employees e
    join departments d on e.department_id=d.department_id
    join jobs j on e.job_id=j.job_id
    #使用
    select * from ema where last_name like '%a%';
    
  • 优点

    • 重用SQL语句
    • 简化复杂的SQL操作,不必知道其内在的查询细节
    • 保护数据,提高安全性

2. 视图的修改

  • 方式一

    create or replace view 视图名
    as
    查询语句;
    
  • 方式二

    alter view 视图名
    as
    查询语句;
    

3. 视图的查看与删除

  • 查看视图

    desc 视图名;
    #或者
    show create view 视图名;
    
  • 删除视图

    drop view 视图名,视图名,...;
    

4. 视图的更新

  • 首先创建一个视图

    create or replace view myv1
    as
    select last_name,email from employees;
    
  • 对视图执行插入数据

    insert into myv1 values('zhangsan','[email protected]');
    

    对视图插入数据后,原始表employees中也插入了相应的行,没有插入值的字段为null。

  • 修改视图中数据

    update myv1 set last_name='lisi' where last_name='zhangsan';
    

    修改视图中数据后,原始表employees中对应的数据也被修改了。

  • 删除视图中数据

    delete from myv1 where last_name='lisi';
    

    删除视图中数据后,原始表employees中对应的数据也被删除。

  • 视图的可更新性和视图中查询的定义有关系,以下类型的视图不能更新:

    • 包含以下关键字的SQL语句:分组函数、distinct、group by、having、union、union all
    • 常量视图
    • select中包含子查询
    • join
    • from一个不能更新的视图
    • where子句的子查询引用了from子句中的表
  • 视图一般是用来查询的,不会对其进行更新。

标签:last,name,视图,查询,id,view
From: https://www.cnblogs.com/DYDNyang/p/17176979.html

相关文章

  • 敏捷工具leangoo领歌时间线视图上线啦
    https://www.leangoo.com/17735.htmlLeangoo企业版新增「时间线视图」,通过「时间线视图」你可以在项目管理中非常直观的了解每个人的工作分配及各个任务的排期,方便及时......
  • 翻页视图 ViewPager
    1.创建一个activity,命名为:ViewPagerActivity,如下:publicclassViewPagerActivityextendsAppCompatActivityimplementsViewPager.OnPageChangeListener{private......
  • 列表视图 ListView
    1.创建一个activity,命名为:ListViewActivitypublicclassListViewActivityextendsAppCompatActivity{privatestaticfinalStringTAG="ListViewActivity";......
  • SQL Server Management Studio设计视图显示说明列
    在使用SqlServer管理工具设计列时,希望能够显示说明列,便于设计和书写。如下面效果。但是SqlServer管理工具本身并没有这一设置的功能,需要修改注册表。具体修改内容如下。......
  • 8. Laravel 视图
    Laravel视图配套视频地址https://www.bilibili.com/video/av70545323?p=8知识点返回视图给视图传递数据模版语法1.返回视图//resources/views/test.blade.p......
  • Tableau 视图中图例隐藏了,怎么显示
    Tableau仪表板里把颜色图例给删掉了该怎么恢复原本我们的tableau视图如下图1中是这样的,右边有颜色图例,让人一看就知道什么颜色在视图中代表什么,  有的时候不小心把......
  • 《SQL基础》13. 视图
    目录视图简介语法检查选项视图更新视图作用视图简介视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是......
  • 五视图是什么-什么是软件架构五视图
     架构视图着重考虑关注点描述方式  逻辑架构1.功能需求——系统应答向用户提供什么样的服务。2.不仅包括用户可见的功能,还包括为实现用户功能而......
  • Django 框架基础9:视图(V)类视图、中间件
    1、类视图类视图是采用面向对象的思路定义类视图①继承自django.views的View。②不同的请求方式有不同的业务逻辑.类视图的方法就直接采用http请求名字作为函数名,如,ge......
  • Android Studio 视图对齐方式
    这里有两种类型的对齐1、layout_gravity用于当前视图相对于上级视图的对齐方式2、gravity用于下级视图相对于当前视图的对齐方式具体如下代码和图<?xmlversion="1.......