mysql静态视图_Mysql实例解析SQL Server 视图、数据库快照

本文深入解析了SQL Server中的视图和数据库快照。视图是源自查询结果的虚拟表,用于简化复杂查询、保护基础数据及提高效率。数据库快照则提供了一种在特定时间点的数据静态视图,适用于报表服务、快速恢复和读写分离。通过实例展示了如何创建、修改和使用视图以及数据库快照。
摘要由CSDN通过智能技术生成

《Mysql实例解析SQL Server 视图、数据库快照》要点:

本文介绍了Mysql实例解析SQL Server 视图、数据库快照,希望对您有用。如果有疑问,可以联系我们。

简介数据库快照MYSQL必读

数据库快照,正如其名称所示那样,是数据库在某一时间点的视图.是SQL Server在2005之后的版本引入的特性.快照的应用场景比较多,但快照设计最开始的目的是为了报表服务.比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点.快照还可以和镜像结合来达到读写分离的目的.下面我们来看什么是快照.MYSQL必读

什么是快照MYSQL必读

数据库快照是 SQL Server 数据库(源数据库)的只读静态视图.换句话说,快照可以理解为一个只读的数据库.利用快照,可以提供如下好处:MYSQL必读

提供了一个静态的视图来为报表提供服务MYSQL必读

可以利用数据库快照来恢复数据库,相比备份恢复来说,这个速度会大大提高(在下面我会解释为什么)MYSQL必读

和数据库镜像结合使用,提供读写分离MYSQL必读

作为测试环境或数据变更前的备份,比如我要大批导入或删除数据前,或是将数据提供给测试人员进行测试前,做一个快照,如果出现问题,则可以利用快照恢复到快照建立时的状态MYSQL必读

SQL Server 视图MYSQL必读

什么是视图?MYSQL必读

视图是一个虚拟的表,内容源于查询的结果集.只有当视图上建立了索引后,才会具体化.MYSQL必读

视图可以筛选和处理数据,而不是直接访问基础表.如:创建一个视图,只展示源表中的几列数据,无需授予用户访问基础表的权限,取而代之的是授予视图访问权限.MYSQL必读

为什么用视图?MYSQL必读

1、如果是比较复杂的多表联查,可以将这些复杂的语句放在视图中完成,而我们只需要使用简单的语句查询视图即可.MYSQL必读

2、保护基础表,敏感列无法被检索出.MYSQL必读

3、对视图添加索引,可以提高效率.MYSQL必读

创建视图MYSQL必读

1、可以使用SSMS工具创建,视图->新建视图->选表 选列 ->输入名字保存即可.MYSQL必读

2、使用T-SQL创建MYSQL必读

if exists(select * from sysobjects where name = 'newView') --如果存在删除

drop view newView

go

create view newView --创建视图

as

select 学号=id,姓名=name,年龄=age from student

go

select * from newView

关于order byMYSQL必读

if exists(select * from sysobjects where name = 'newView') --如果存在删除

drop view newView

go

create view newView --创建视图

as

select top 10 学号=id,年龄=age from student

order by id desc --如果使用order关键字 则必须指定top

go

select * from newView

修改视图MYSQL必读

alter view newView

as

select top 20 * from student

order by id desc --如果使用order关键字 则必须指定top

go

更新架构MYSQL必读

--刚刚修改的视图用的是 * 查询的是全部列

--此时修改基础表架构

alter table student add mail varchar(20)

--这时源表已经更新架构,但是视图并没有改变 需要调用系统存储过程更新一下

EXEC sp_refreshview studentView

--这时 新的列才会被加进来

更新视图MYSQL必读

对视图进行增、删、改操作,其实就是修改源表.但是由于诸多限制(如由多表联查出的视图,只检索出个别字段,但是插入的时候有些源表上的值是非空的就会出问题),一般不修改视图.MYSQL必读

所以更新源表即可更新视图.MYSQL必读

数据库快照MYSQL必读

数据库快照是某一时间点的源数据库的只读静态视图,可以用来恢复数据库.MYSQL必读

使用数据库快照必须与源数据库在相同的服务器实例,并且不能对源数据库进行删除、分离、或还原操作.MYSQL必读

使用数据库快照MYSQL必读

--源表中数据

use webDB

go

select * from student

07da5507e86c00cab166a80a15cd95a0.pngMYSQL必读

if exists(select * from sys.databases where name = 'webDB_DBSS')

drop database webDB_DBSS --存在则删除

go

create database webDB_DBSS --创建数据库快照

on

(

name = webDB,filename='d:\webDB_DBSS.ss' --注意后缀.ss

) --如果有多个文件需要一一指出

as snapshot of webDB

go

35a55e91967cae20c681b7c5d573d446.pngMYSQL必读

--修改源数据库数据

use webDB

go

update student set name='伟大' where id = 10

--查询源数据库数据

select * from student where id = 10

--查询快照数据

use webDB_DBSS

go

select * from student where id = 10

e37b3f3fc470b72fcd3a1e71b6951458.pngMYSQL必读

修改源数据库,快照数据库并未发生改变.MYSQL必读

--修改student表架构

alter table webDB.dbo.student add [address] varchar(20)

select * from webDB.dbo.student

--快照中依然没有

select * from webDB_DBSS.dbo.student

--删除源数据库student表

drop table webDB.dbo.newTable

--查询数据库快照该表 依然存在

select * from webDB_DBSS.dbo.newTable

从快照恢复数据到快照创建时刻MYSQL必读

restore database webDB

from database_snapshot='webDB_DBSS'

go

select * from webDB.dbo.student --修改的值被改回

select * from webDb.dbo.newTable --被删除的表 改回

以上得知:任何创建快照之后的修改数据都将被改回!MYSQL必读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值