SQL Server数据库:视图

视图: 视图是从一个或多个表或其他视图中导出的表。
视图的优点:
  1). 为用户集中数据,简化用户的数据查询和处理。
  2). 简化操作,屏蔽了数据库的复杂性。
  3). 重新定制数据,使数据便于共享。
  4). 合并分割数据,便于数据输出到应用程序中。
  5). 简化用户权限的管理,增加安全性。

1.创建视图
Book(BookID,BookName,TypeID,AuthorID,…),BookType(TypeID,TypeName),创建一个视图,查询每本书的书名和图书类型。

CREATE VIEW VIEW_BOOK_INFO(BookID,BookName,BookType)/*指定视图中包括的基本表的列*/
AS
SELECT BookID,BookName,TypeName
FROM Book, BookType
WHERE Book.TypeID = BookType.TypeID

语句执行后可以看到视图下看到 dbo.VIEW_BOOK_INFO 表示视图创建成功。
在这里插入图片描述
2.查询视图
视图创建成功后就可以像查询表一样查询视图了。

SELECT * FROM VIEW_BOOK_INFO

在这里插入图片描述

SELECT * FROM VIEW_BOOK_INFO
WHERE BookName LIKE 'C语言%'

在这里插入图片描述
3.更新视图

UPDATE VIEW_BOOK_INFO
SET BookName = 'C#程序设计'
WHERE BookID = 2
SELECT * FROM VIEW_BOOK_INFO

在这里插入图片描述
查看原表Book会发现表中BookID=2的BookName变成了“C#程序设计”。但并不是所有的数据都可以通过视图来更新。要想视图表修改基本表的数据,要满足以下条件:

  1. 任何修改(包括UPDATE,INSERT,DELETE语句)都只能引用一个基本表的列。
  2. 在视图函数中修改的列必须直接引用表列中的基础数据。
  3. 被修改的列不受GROUP BY、TOP、HAVING和DISTINCT子句的影响。

4.修改视图定义

ALTER VIEW VIEW_BOOK_INFO(BookID,BookName)
AS
SELECT BookID,BookName
FROM Book, BookType
WHERE Book.TypeID = BookType.TypeID

在这里插入图片描述
虽然视图和表从查询结果看差不多,但修改视图定义与修改基本表结构不一样。修改视图定义并不会修改基本表的结构。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值