事务,视图以及游标

一:事务:

是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),事务是恢复和并发控制的基本单位。

事务的四个特性:ACID

A:atomicity 原子性,事务里的所有操作都是一体的,要么一起完成,要么就都不执行,不可能出现执行一半的情况。

C:consistency 一致性,保证数据的一致

I:isolation 隔离性,事务的执行不被干扰,也就是说事务在执行的过程中不可以对其中的数据进行其它操作,等事务完成之后才可以操作。

D:durability 持久性,执行的时候会有记录,如果突然断电,重新通电时返回重新开始执行事务

begin transaction  --开始事务
commit transaction  --提交事务
rollback  --回滚事务

@@error --错误提醒,程序无错的时候返回0,出错返回出错的值

一种事务的用法是用if语句判断@@error的值是否不等于0,来进行回滚操作:

if @@ERROR <>0 --判断是否出错
begin
rollback  --出错回滚
end
else
begin
commit  --没错提交
end

另一种用法是用try和catch,try是开始执行程序体,没问题的话commit提交,程序出错则直接被catch抓住,回滚。

begin try
 --程序体
 commit
end try
begin catch  --抓错
 rollback
end catch

二:索引,索引是为了提高查找的效率

建索引的步骤:

在表的设计界面,右键选择索引/键

在出来的界面上点添加,然后选出哪一列作为索引就建立起了一个索引

三:视图

视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。

所以视图不是真实存在的基础表,而是一张虚表视图,所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。通过视图看到的数据只是存放在基本表中的数据。

视图的优点:

1.视点集中
视图集中即是使用户只关心它感兴趣的某些特定数据和他们所负责的特定任务
2.简化操作
若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。
3.合并分割数据
表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。
4.安全性
通过视图用户只能查看和修改他们所能看到的数据,其它数据库或表既不可见也不可以访问。

--创建一个视图,在chinastates表中查询出省份是shandong的城市

create view shandong
as
select *from ChinaStates where parentareacode=‘37‘
go
--显示视图

之后每次要查询shandong的城市时直接调用视图就可以,不用每次都写代码,比较简便。
select *from shandong

--删除视图
drop view

四:游标

关系数据库管理系统实质是面向集合的,在MS SQL SERVER 中并没有一种描述表中单一记录的表达形式。

游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制,用游标的时候一般是伴随着while来用的,游标用的比较少,因为会降低数据库的效率。

这里定义了一个游标,利用while和next来查询奥迪A4 07款 上一个和下一个

declare cur_car cursor scroll  --定义游标,scroll是让游标可以来回滚动
for select name from car where name like ‘奥迪%‘
open cur_car --开启游标
fetch first from cur_car  --让游标回到第一个
while @@FETCH_STATUS =0  [email protected]@fetch_status是全局变量返回上次执行FETCH 命令的状态,0   FETCH 命令被成功执行
-1   FETCH 命令失败或者行数据超   过游标数据结果集的范围
-2   所读取的数据已经不存在
begin
 declare @name varchar(20)
 fetch next from cur_car into @name
 
 if LEFT(@name,LEN(‘奥迪A4 07款‘))=‘奥迪A4 07款‘
 begin
  fetch prior from cur_car into @name
  print @name
  fetch relative 2 from cur_car into @name
  print @name
 end
end
close cur_car

五:锁

锁分为悲观锁和乐观锁

悲观锁:它指的是对数据被外界(包括本系统当前的其他事务,以及来自 外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态,事务就是悲观锁,在事务执行的时候,数据不可查不可更改。

乐观锁:相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制,在更改数据的时候可以进行查询操作,在更改完成的瞬间往数据库里放的时候才进行加锁,锁的时间较短,这种机制的锁谨慎使用。

时间: 2024-10-10 08:49:25

事务,视图以及游标的相关文章

第五章 MySQL事务,视图,索引,备份和恢复

第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行,要么都不执行. 事务是作为最小的控制单元来使用的,特别使用与多用户同时操作的数据库系统. 2.为什么需要事务 事务(transaction)是指将一系列数据操作捆绑成为一个整体进行统一管理,如果某一事务执行成功,则在该事务中进行的所有数据均会提交,成为数据库中永久的组成部分.如果事务执行遇到错误且

ORACLE 索引、视图、游标、存储过程和触发器

1 索引 目标是为了提高查询的速度,当用户对查询速度不满意而需要对数据库的性能进行调校时,优先考虑建立索引. 数据库中索引的概念与书索引的概念非常类似,不同之处在于数据库索引用来在表中查找特定的行. 索引缺点:向表中“添加/删除”行时,必须花费额外的时间来更新该行的索引. 创建索引的时机:当需要从大表中检索少数几行时,都应该对列创建索引. 基本准则:当任何单个查询要检索的行<=整个表行数的10%时,索引就非常有用.自动创建索引:表的主键和唯一键将自动创建索引 . 1.1 语法 create [u

140912●索引、视图、游标

索引 一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引,页面索引就存放在索引页面上.通常索引页面相对于数据页面来说小得多,当进行数据检索时,系统先搜索索引页面,从中找到所需数据的指针再直接通过指针从数据页面中读取数据. 从某种程度上,可以把数据库看作一本书,把索引看作书的目录. 在SQL Server 的数据库中按存储结构的不同将索引分为两类 簇索引  ClusteredIndex 非簇索引  Nonclustered Index 簇索引对表的物理数据页中的数据按列进行

事务 视图 索引

什么叫做事务? 事务具有如下的特性. 原子性(atomicity)事务是一个完整的操作,事务的各元素是不可分的(原子的). 一致性(consistency)当事务完成时,数据必须处于一致状态. 隔离性(islation)对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,他不应该以任何方式依赖于活影响其他事务. 持久性(durability)事务的持久性是指不管系统是否发生了故障,事务处理的结果都是永久的. 以上的四个特性被称为ACID特性 事务可以分为如下类型. 显示事务用 BE

关于MySQL 事务,视图,索引,数据库备份,恢复

  /*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`(    `customerName` CHAR(10),        #用户名    `currentMoney` DECIMAL(10,2)         #当前余额);/*插入数据*/INSERT INTO `bank` (`customerName`,`currentMoney`) VALUES ('张三',1000);INSERT IN

SQL Service 数据库 基本操作 视图 触发器 游标 存储过程

use NewTest1 ---声明视图--- create view NewViewte as select StudentInfo.name as 姓名,StudentInfo.sex as 性别,course.name as 课程 from StudentInfo join Course on StudentInfo.Cid= Course.id ---调用视图 select * from NewViewte --- 声明触发器--- create trigger NewTri on Cl

事务视图索引备份和恢复

事务 事务必须具备以下四个属性,简称ACID属性 语法 示例 自动关闭和开启事务 视图 为什么需要视图 什么是视图 视图的用途 创建视图 使用视图注意事项 原文地址:https://www.cnblogs.com/xhddbky/p/9231356.html

事务视图存储过程触发器数据备份

目录 事务 事务的特性 原子性(Atomicity): 一致性(Consistency): 隔离性(Isolation): 持久性(Durability): 存储引擎 InnoDB :保时捷引擎 MyIsam:奔奔引擎 视图 使用 增加视图 删除视图 触发器 存储过程 创建 函数 数据库的备份 语法 示列 事务 通俗的说,事物指一组操作,要么都执行成功,要么都执行失败 使用事务: start transactino sql语句 commit/rowllback # 演示: mysql> sele

数据库的索引、视图、触发器、存储过程、游标等概念的理解

索引.视图.游标.存储过程和触发器的理解 索引.视图.游标.存储过程和触发器的理解 1.索引 1-1.索引的概述 我们把一个表中的一列或者多列和列中元素所在表中记录的物理地址组合成一个新的表.这个表的记录大致为列的内容和该列所在记录的物理地址. 1-2.索引的优缺点   www.2cto.com 优点:大大加快了对源表的执行速度,我们对索引表的检索就可以实现对源表的检索.到底快在哪里?举例说明:我们通过T-SQL语句查询源表中的一条记录,在没有索引表的时候,计算机首先把整个源表从外存加载到内存,