SQl 事物+视图+游标+索引+锁

一:事务:

是访问并可能更新数据库中各种数据项的一个程序执行单元(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-08-07 23:52:44

SQl 事物+视图+游标+索引+锁的相关文章

T-SQL的事物、视图和索引

事物,视图和索引 技能掌握目标: 1.使用事物保证操作的完整性 2.掌握如何创建视图 3.掌握如何创建并使用索引 首先我们要讲的是事物,那么问题来了,请问大家什么事物,他有什么作用? 带来了哪几大好处?分别是什么. 答案:事物就是把多件事情当做一件事情来处理的过程.也就是大家同在一条船上,要活一起活,要over一起over !,这也就是保证了事物的一致性和完整性. 其作用是保证事物的一致性,持久性,原子性,和隔离性. 1.一致性:就是当我们需要更新多条数据的时候,保证他们一荣俱荣,一损俱损. 就

触发器 索引视图 游标 事务

  触发器 create trigger tr_banj_insert on t_banj after insert as begin declare @log varchar(50) select @log='插入的记录:banj_mc=' +banj_mc+'banzr='+banzr from inserted --新数据 insert into t_log (biaomc,caoznr) values('t_banj',@log) end create trigger tr_banj_d

Oracle实践--PL/SQL基础之视图和索引

PL/SQL基础入门之视图和索引         PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. -----------------------------------

PL/SQL 编程(三 )程序包和包体,触发器,视图,索引

一.程序包和包体 程序包(package):存储在数据库中的一组子程序.变量定义.在包中的子程序可以被其它程序包或子程序调用.但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序. 它具有面向对象程序设计语言的特点,是对这些PL/SQL 程序设计元素的封装.包类似于JAVA语言中的类,其中变量相当于类中的成员变量,过程和函数相当于类方法. create or replace package stuinfo as type stucur is ref cursor; proce

索引 视图 游标

索引: 不用扫描整个表就实现对数据快速访问的途径. 二进制类型不支持索引 视图: 从一个或多个基本表中导出所显示的表,是没有数据的虚表. 多表出一视图,一表出多视图,多表与一视图出一视图 游标: 所有数据库:行的次序无关,列的次序无关 select Code,Name,Brand_Name,Prod_Name,oil,Price from car join Brand on Car.Brand = Brand.Brand_Code join Productor on Productor.Prod

SQL Server Insert操作中的锁

原文:SQL Server Insert操作中的锁 这篇博文简单介绍一下在SQL Server中一条Insert语句中用到的锁. 准备数据 首先我们建立一张表Table_1,它有两列Id(bigint)和Value(varchar),其中Id建立了主键. CREATE TABLE [dbo].[Table_2]( [Id] [bigint] NOT NULL, [Value] [nchar](10) NULL, CONSTRAINT [PK_Table_2] PRIMARY KEY CLUSTE

事务、视图和索引

今天我们学习了事务.视图和索引!!这是一个很神奇的东西!我们先来说说最神奇的事务吧,什么叫事务呢?事务是一个不可分割的整体,事务中的多个执行过程,同生共死.要么都执行成功,要么都执行失败.(一荣俱荣,一损俱损) 事务有4个神奇的特性: ACID原则 原子性(Atomicity ) 一致性( Consistency ) 隔离性( Isolation) :两个事务之间 永久性(Durabilily) 事务分类 显式事务;自己写的事务都是显式事务 隐式事务 自动提交事务 视图! 如何创建视图 Crea

Oracle学习(十):视图,索引,序列号,同义词

1.知识点:可以对照下面的录屏进行阅读 视图,序列,索引,同义词 SQL> --视图:虚表 SQL> --视图的优点:简化复杂查询,限制数据访问(银行用的多),提供数据的相互独立,同样的数据可以有不同的显示方式 SQL> --第一个视图: 员工号 姓名 月薪 年薪 SQL> create view view1 2 as 3 select empno,ename,sal,sal*12 annlsal from emp; SQL> --如果显示没有权限,则需要授权,见下图1-1

使用SQL Server视图的优缺点

SQL Server视图我们经常会用的到,下面就为您介绍使用SQL Server视图的优缺点,希望可以对您SQL Server视图有更多的了解. 在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,SQL Server视图具有如下的一些优点: ● 简单性.视图不仅可以简化用户对数据的理解,也可以简化他们的操作.那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件. ● 安全性.通过视图用户只能查询和修改他们所能见到的数据.数据库中的其他数据则既看不见也取不到