SQL Server 数据库 视图创建

SQL Server 数据库 视图创建


视图简介:

视图可以看作定义在SQL Server上的虚拟表。视图正如其名字的含义一样,是另一种查看数据的入口。
常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 。
从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图。
例如查询,插入,修改,删除操作等,但插入、修改、删除等的操作其实对于原始数据表的操作。

视图的作用:

1、视图隐藏了底层的表结构,简化了数据访问操作,客户端不再需要知道底层表的结构及其之间的关系。
2、视图提供了一个统一访问数据的接口。(即可以允许用户通过视图访问数据的安全机制,而不授予用户直接访问底层表的权限)
3、从而加强了安全性,使用户只能看到视图所显示的数据。
4、视图还可以被嵌套,一个视图中可以嵌套另一个视图。

SQL视图创建语法参考

--判断用户自定义视图是否存在
if exists(select * from sysobjects where id=OBJECT_ID(N'v_Stu_Cou') and objectproperty(id,N'IsView')=1)
drop view v_Stu_Cou        --删除视图
go
//--alter  --适用于已创建视图 没有if判断表是否存在(存在就删除)的情况 往视图表追加信息
create view dbo.v_Stu_Cou    --创建视图
as
select S_Id,S_StuNo,S_Name,S_Sex,S_Height,S_BirthDate,c.C_Id,c.C_Name 
from Student s
left join Course c on s.C_S_Id=c.C_Id
where s.C_S_Id is not null
go


select * from v_Stu_Cou        --使用视图查询

实例参考

--判断用户自定义视图是否存在
if exists(select * from sysobjects where id=OBJECT_ID(N'Staffinfo') and objectproperty(id,N'IsView')=1)
drop view Staffinfo        --删除视图
go
//--alter  --适用于已创建视图 没有if判断表是否存在(存在就删除)的情况 往视图表追加信息
create view dbo.Staffinfo    --创建视图
as
select 
		s.StaffNo as '员工工号',s.StaffName as '员工姓名',s.PositionCode as '职位代码',o.Pname as '职位',s.Grade as '职级'

	from hr_Staff s
	left join Org_Staff os on s.StaffNo=os.StaffNo
	left join Org_Position op on os.PositionGuid=op.Guid

	left join org_export o on s.StaffNo=o.StaffNo and s.PositionCode=o.Pcode
	//注意where后跟的条件 是否是你想要的
	where s.StaffNo is not null
go

--select * from Staffinfo        --使用视图查询

博客参考: https://www.cnblogs.com/Brambling/p/6731386.html
百度搜索: https://jingyan.baidu.com/album/9113f81b71c0d72b3214c7d7.html?picindex=1

你可能感兴趣的:(SQL,Server数据库,SQL)