Sql server基础使用(五):视图

发布时间 2023-11-10 14:52:08作者: v迷糊v

对所学Sqlserver知识进行一下记录总结,某些用法之间还可以关联使用,欢迎补充和讨论。本人比较懒,结果的截图暂时就先不传了,什么时候想起来再说吧~~

视图其实理解起来很简单,就好像是把复杂的查询语句查询出来的数据封装到一个临时表里面(知识我自己的理解~~)

1.创建视图

我所知的有2-3中方法

其中一种,步骤是:右键视图->新建视图,此时会弹出一个窗体

          

在弹出的窗体中有两种方法创建视图,如图所示,选中创建视图要用到的数据表,然后然后...我很是不喜欢这么做,所以我是用的第二种方法

首先编辑好需求的查询语句,然后点击上图中的关闭,然后将写好的语句粘贴到 “SELECT FROM ” 这里即可

比如查询语句

SELECT ROW_NUMBER()OVER(ORDER BY Table_A.AID) AS ID,Table_B.BBB,Table_A.AAA FROM dbo.Table_B INNER JOIN dbo.Table_A ON Table_A.AID=Table_B.AID

将语句复制粘贴到下图所示,点击保存按钮(Ctrl+S)即可,注:语句后面可以根据需求写 WHERE 条件的,只是我省略了,多表关联后一般原表的主键基本就废掉了,所以我习惯用  ROW_NUMBER()OVER(ORDER BY ) 自定义一个当作主键。

还有一种创建视图的方法就是直接写语句

USE [test]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[V_Table_AB]
AS
SELECT ROW_NUMBER()OVER(ORDER BY Table_A.AID) AS ID,Table_B.BBB,Table_A.AAA FROM dbo.Table_B INNER JOIN dbo.Table_A ON Table_A.AID=Table_B.AID

GO

效果和第一种方法是一样一样的

如果实在记不住语句怎么写,这里有个小提示,您按下面步骤操作即可:选中随便一个已经创建好的视图->右键->编写视图脚本->CREATE到->新建编辑窗口

这时,sql编辑器会新建一个页面,显示的就是新建视图的语句,只不过是和原视图相关的,您只要修改下 视图名称 和 实际您需求的语句,然后运行(F5)即可

 查询视图时,语法和查询普通数据表是一模一样的,SELECT * FROM V_Table_AB WHERE ************

可以单视图查询,可以多视图联查,可以表+视图 联查,但是视图是不存在 增删改 的!!!

 2.修改视图

修改视图我所熟悉的也是两种方法

第一种,右键要求改的视图->设计,此时会弹出与第一种方法新建视图时相同的页面,按需求修改后点击保存即可

第二种,右键要求改的视图->编写视图脚本->ALTER到->新建编辑窗口,和第二种新建视图一样,sql编辑器会新建一个页面,页面内的代码如下,直接修改语句然后执行即可。

USE [test]
GO

/****** Object:  View [dbo].[V_Table_AB]  ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER VIEW [dbo].[V_Table_AB]
AS
SELECT ROW_NUMBER()OVER(ORDER BY Table_A.AID) AS ID,Table_B.BBB,Table_A.AAA FROM dbo.Table_B INNER JOIN dbo.Table_A ON Table_A.AID=Table_B.AID

GO

 

3.删除视图

这里就比较简单了,直接右键视图->删除 即可,删除的只是视图,和源表无关。

 

注:创建视图的语句中,也可以时查询其他的视图+表的关联,也就是说,多表联查可以是 表+表,也可以是 表+视图