数据库视图(view)

一、视图的概念
视图:可视化的表。
在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
二、作用
用来简化复杂的查询逻辑,在视图结构的基础上可以做二次处理,但是若视图只有一张表的话,需要包含表中的必填列才可以进行增删改操作
注:数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响

例如:想要对联表的数据进行筛选

select student1.Name stuname,student1.Id StudtId,student1.ClassId StuClassId, banji.num
banjinum from student1 inner join banji on ClassId=banji.Id

这样在进行二次护理的话语句会非常长,现在可以借助视图来进行操作,下面就来创建个视图来做这个操作吧

三、创建视图
1.直接在数据库的页面用鼠标点击创建视图:



2.用sql语句创建视图
create view 语法:create view 视图名称 as select 语句
注:语句中要给列指定列名
例子:

create view view_student1 as select
student1.Name stuname,student1.Id StudtId,student1.ClassId StuClassId, banji.num banjinum
from student1
inner join banji on ClassId=banji.Id


创建一个视图之后,视图的用法和表的用法基本相同
下面就可以拿出来创建好的视图去进行二次操作了

select * from  view_student1  where  banjinum=2


四、修改视图:
1.直接用鼠标点击视图修改:


2.用sql语句修改:

alter view  view_student1
as select student1.Name studentname,banji.Num banjinum,sex.sex sexn from student1
inner join banji on ClassId=banji.Id
join sex on  SexId=sex.Id


五、通过视图修改数据:

update view_student1 set banjinum=6  where  studentname='小明'


视图一般情况下是不存储数据的,所以修改数据也不会影响到视图,影响是基表中的数据,但是通过视图会修改数据,但是他有非常多的限制:

1、SELECT列表中含有DISTINCT。

2、SELECT列表中含有表达式。

3、引用不可更新的视图。

4、在FORM子句中引用多个表。

5、GROUP BY或HAVING子句。
五、删除视图:
1.直接用鼠标点击想要删除的视图,直接删除
2.用sql语句删除视图:

 drop  view   view_student1

六、视图的优缺点:
优点:

● 简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。
● 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。
● 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

缺点:

● 性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL
● 修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。

数据库SQLServer的视图相关推荐

  1. (更新时间)2021年5月15日 SqlServer数据库 SqlServer面试题

    数据库SqlServer笔试题 文章目录 数据库SqlServer笔试题 一.数据库基础知识(通用)篇 1.说说主键.外键.超键.候选键 2.为什么用自增列作为主键? 3.触发器的作用是什么? 4.什 ...

  2. mysql视图有哪几种_数据库报表的视图有几种?每种视图的功能是什么?

    展开全部 1.关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可62616964757a686964616fe4b893e5b19e31333433623732以通过工具或数据字典来 ...

  3. Oracle数据库之对象视图、索引、序列、同义词

    Oracle数据库总结: Oracle数据库之集合运算 Oracle数据库之数据处理 Oracle数据库之建表和管理表 Oracle数据库之对象视图.索引.序列.同义词 视图: 语法: create ...

  4. sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝、不能打开到主机的连接,在端口1433:连接失败等 解决方案

    sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝.不能打开到主机的连接,在端口1433:连接失败等 解决方案 参考文章: (1)sql 2000 无法连接远程数据库 sqls ...

  5. 数据库基础 之 “视图”

    数据库基础  之    "视图" 什么是视图? 首先视图是查看数据库表中数据的一种方法,视图是一个或多个数据表(基本表)或视图导出的虚拟表或查询结果的重新组成.视图只是一种逻辑对象 ...

  6. 数据库SQLserver(课本)

    一.SQL server的部署 1.数据库的基本概念 数据库通常是一个由行和列组成的二维表 数据表中的行通常叫做记录或元祖 数据表中的列通常叫做字段或属性 2.主键和外键 主键:定义主键可以保证数据的 ...

  7. mysql视图 实验报告_数据库实验报告(视图).doc

    数据库实验报告(视图) 实验报告(视图) 课程数据库原理与应用技术日期 2012 年 5月 17日学号实验项目 名 称有关视图的数据库操作姓名一.实验目的 本次试验就是要掌握基本的SQL Server ...

  8. 数据库中的视图理解和优点介绍

    数据库中视图的概念:视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图 ...

  9. mysql 数据库视图,Mysql数据库中的视图

    一.视图的概述 视图(view)是一种虚拟存在的表,视图在数据库中实际并不存在,视图可以理解为一条select语句执行后返回的结果集,因此在创建视图时,实际主要是在创建这条select查询语句上 二. ...

最新文章

  1. 微软推出智能语音评测服务,注重解决四大技术障碍
  2. 聊天机器人之需求分析和流程介绍
  3. python 基础之第四天
  4. 你能排第几?2016互联网行业薪酬数据分析
  5. 算法工程与计算机科学,合并的分水岭算法-计算机工程与科学.PDF
  6. 1万条数据大概占多大空间_9月漫画数据月报丨多平台评论数,收藏数较上月大幅下降...
  7. LeetCode每日一题 24. 两两交换链表中的节点
  8. C#编写简单的聊天程序
  9. github ssh密钥_如何使用SSH密钥在一台机器上管理多个GitHub帐户
  10. 将你的数据导入到json格式
  11. 权限组件之录入获取登入用户的所有权限
  12. python3入门代码-Python3入门经典案例,不埋坑不踩雷.小白也可上手实操(附代码)...
  13. 圆形刻度盘 进度 展示
  14. BZOJ1034: [ZJOI2008]泡泡堂BNB
  15. Proxy和Reflect
  16. BMS-Pro电池巡检综合监控系统
  17. Ajax XHR响应
  18. IMX6ULL设备上面调试SDIOwifi。
  19. excel快速删除空行
  20. 第九章 使用结构体类型处理组合数据——用户自定义数据类型

热门文章

  1. Mirai使用与攻击
  2. 【转载】磁盘空间引起ES集群shard unassigned的处理过程
  3. Slave I/O for channel ‘‘: error connecting to master ‘rep@master1:3306‘ - retry-time: 60 retries: 6
  4. AJAX获取数据然后显示在页面
  5. 没有实习经验的应届生如何找到一份数据分析类工作?
  6. 立个Flag,2019加油!
  7. 范式1NF,2NF,3NF
  8. 不能打开到主机的连接,在端口1521:连接失败的解决方法(修改远程桌面连接端口)
  9. android launcher 4x5应用排列,修改华为刷机包桌面应用图标布局排序的方法
  10. 深入浅出WPF——什么是XAML