SQL serve 数据库--视图、事物、分离附加、备份还原
视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态生成。
视图只能用来查询,不能增删改;不允许出现重复列
1. 视图的概念
视图是从一个或者多个表中导出的,其行为与表相似,但视图是一个虚拟表。视图可以在已经存在的视图的基础上定义。在视图上用户可以使用SELECT语句查询数据库,使用INSERT、UPDATE和DELETE语句修改记录。对于视图的操作最终转化为对基本数据表的操作。
2. 创建视图
使用T-SQL创建视图语法:
create view student11 --视图名
as
select score.sno, sname, sbirthday, score.cno, cname, DEGREE from student,score,course --视图内容
select * from student11 -- 查询视图
实例: 单表视图
CREATE VIEW [V_Product]
AS
SELECT [ProductID],[ProductName]
FROM [dbo].[Product]
多表视图
CREATE VIEW [dbo].[V_ProductCategory]
AS
SELECT [ProductID],[CategoryName],[ProductName]
FROM [dbo].[Product] INNER JOIN [dbo].[Category]
ON [dbo].[Product].[CategoryID] = [dbo].[Category].[CategoryID]
创建排序视图
CREATE VIEW [dbo].[V_Product]
AS
SELECT TOP 100 PERCENT [ProductID],[ProductName]
FROM [dbo].[Product]
ORDER BY [UnitPrice]
3. 修改视图
鼠标放在视图名——右键——设计——
4. 查看视图
查看视图结构:
EXEC sp_help [V_Product]
查看视图文本:
EXEC sp_helptext [V_Product]
5. 删除视图
删除单个视图:
DROP VIEW [V_Product]
删除多个视图:
DROP VIEW [V_Product],[V_ProductCategory] 事物:
- Begin Transaction:标记事务开始。
- Commit Transaction:事务已经成功执行,数据已经处理妥当。
- Rollback Transaction:数据处理过程中出错,回滚到没有处理之前的数据状态,或回滚到事务内部的保存点。
- Save Transaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。
- 格式:
- begin tran
- select * from user
- if @@error >0
- begin
- rollback tran ;
- end
- else
- begin
- commit tran
- end
在一个事务中,你写啦2条sql语句,一条是修改订单表状态,一条是修改库存表库存-1 。 如果在修改订单表状态的时候出错,事务能够回滚,数据将恢复到没修改之前的数据状态,下面的修改库存也就不执行,这样确保你关系逻辑的一致,安全。。
事务就是这个样子,要么全部执行,要么全部不执行,回到原数据状态。
事务具有的特性
- 原子性:事务必须是一个自动工作的单元,要么全部执行,要么全部不执行。
- 一致性:事务结束的时候,所有的内部数据都是正确的。
- 隔离性:并发多个事务时,各个事务不干涉内部数据,处理的都是另外一个事务处理之前或之后的数据。
- 持久性:事务提交之后,数据是永久性的,不可再回滚。
SQL serve 数据库--视图、事物、分离附加、备份还原的更多相关文章
- 2017-3-17 SQL server 数据库 视图,事务,备份还原,分离附加
1.视图:只能查看,不能增删改不能有重复列 create view 名字as查询语句 2.事务:保证流程的完整执行 begin tran --开始事务监控 被监控的代码 ... ...if @@ERR ...
- oracle数据库使用心得之与SQL serve数据库的差异
网上对于SQL数据库的使用比较详细,但是对于Oracle的使用比较少,本文特别适合学过SQL数据库但是工程需要使用Oracle数据的编程人员查看, 时间匆忙,文章可能写得不够详细,希望有人指出错误或者 ...
- SQL Server 数据库基于备份文件的【一键还原】
1. 备份与还原的基础说明 我们知道在DBA的日常工作中,SQL Server 数据库的恢复请求偶有发生,可能是用作数据的追踪,可也可能能是数据库的灾难恢复. 数据库常用的备份命令如下: ----完整 ...
- sql注入问题-视图-事物-以及存储过程(可视化工具)
可视化工具(了解) 可视化工具 workbench 视图 视图 是一张虚拟的表 语法: create view 视图表名 as select * from t1; 作用: .他是执行as 后面的sql ...
- SQL Server数据库视图
1:什么是视图 2:视图和查询的区别 3:视图的优点 4:如何创建和管理视图 5:如何通过视图修改基本表的数据 6:如何通过视图实现数据的安全性 A:什么是视图: 视图(view):从一个或几个基本表 ...
- SQL Server 数据库引擎怎样记录完整备份后修改过的数据
SQL Server 使用两个内部数据结构跟踪被大容量复制操作修改的区,以及自上次完整备份后修改的区.这些数据结构极大地加快了差异备份的速度.当数据库使用大容量日志恢复模式时,这些数据结构也可以加快将 ...
- Sql Server数据库视图的创建、修改
if OBJECT_ID('Sales.USACusts') is not null drop view Sales.USACusts; go create view Sales.USACusts a ...
- C#连接Sql Serve数据库及增,删,改操作
一:连接. string sqlconn = "server=主机名;database=数据名;integrated security=true" //integrated sec ...
- SQL Serve数据库排序空值null始终前置的方法
[转:http://blog.knowsky.com/233986.htm] [sqlserver]: sqlserver 认为 null 最小. 升序排列:null 值默认排在最前. 要想排后面,则 ...
随机推荐
- LeetCode OJ:Validate Binary Search Tree(合法的二叉搜索树)
Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...
- XSLT 教程
应用自http://www.w3school.com.cn/xsl/index.asp XSL 指扩展样式表语言(EXtensible Stylesheet Language). 万维网联盟开始发展 ...
- EF中使用Linq的Lambda比较字符串格式日期大小
在使用EF时,想要比较字符串类型的日期时,参考以下: SQL语句: 1)select * from TableName where StartTime > ‘2015-04-08‘ 2)sele ...
- javascript之面试题精讲
from:http://blog.csdn.net/q121516340/article/details/51332454 1,检测数组的几种方式: Array.isArray(); es5 toSt ...
- bzoj 2655 calc——拉格朗日插值
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2655 先考虑DP.dp[ i ][ j ]表示值域为 i .选 j 个值的答案,则 dp[ ...
- 12.Selenium+Python案例 -- 今日头条(获取科技栏目的所有新闻标题)
一:具体代码实现 # -*- coding: utf-8 -*-# @Time : 2018/7/26 16:33# @Author : Nancy# @Email : NancyWangDL@163 ...
- python 修改文件内容
python 修改文件内容 一.修改原文件方式 1 def alter(file,old_str,new_str): 2 """ 3 替换文件中的字符串 4 :param ...
- redis client API-----------python
想知道redis针对各种编程语言推荐的接口API实现,请参考http://redis.io/clients/ 选择python语言,则使用https://github.com/andymccurdy/ ...
- jQuery 实现最简单的form表单提交 Loding 功能
<html> <head><title></title></head> <body> <form name="e ...
- 校赛热身 Problem C. Sometimes Naive (状压dp)
题解: 列举每一种3的倍数的组合,开始先求出3条边的可行解,则 六条边的可行解可以由两个三条边得来. 详见代码解析 #include<bits/stdc++.h> using namesp ...