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

事物,视图和索引

技能掌握目标:

1.使用事物保证操作的完整性

2.掌握如何创建视图

3.掌握如何创建并使用索引

首先我们要讲的是事物,那么问题来了,请问大家什么事物,他有什么作用?

带来了哪几大好处?分别是什么。

答案:事物就是把多件事情当做一件事情来处理的过程。也就是大家同在一条船上,要活一起活,要over一起over !,这也就是保证了事物的一致性和完整性。

其作用是保证事物的一致性,持久性,原子性,和隔离性。

1.一致性:就是当我们需要更新多条数据的时候,保证他们一荣俱荣,一损俱损。

就好比如,有啷个蚂蚱在同一条船上,如果船漏水了,两个蚂蚱都要死,如果船不漏水,那么两个蚂蚱都活下来

2.持久性:当数据库通过事物完成某种操作的时候,其结果和数据库的改变时永久保存在数据库中。

3.隔离性:事物的隔离性也就是保证了数据不会出现以下几个问题:

3.1.脏读

解析:如果一个事务A对数据进行了更改,但是还没有提交,而另一个事务B就可以读到事务A尚未提交的更新结果。这样,当事务A进行回滚时,那么事务B开始读到的数据就是一笔脏数据。

3.2.不可重复读

解析:不可重复读:同一个事务在事务过程中,对同一个数据进行读取操作,读取到的结果不同。例如,事务B在事务A的更新操作前读到的数据,跟在事务A提交此更新操作后读到的数据,可能不同。

3.3.幻读

解析:同样一个查询在整个事务中多次执行,查询所得的结果不同。例如,事务A对全部记录做了更新操作,尚未提交前,事务B又插入了一条记录,那么事务A再次读取数据库时,会发现还有一条记录(即事务B新插入的记录)没有做更新。

总体来说,隔离级别与系统并发性成反比,与数据一致性成正比

4.原子性:事务的原子性指的是,事务中包含的程序作为系统的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。原子性的意义是数据库系统的基础。

介绍完了什么是事物后,我给大家讲一下怎么使用事物:

它的语法是:

1.开始事物 :begin transaction

2.提交事物 :commit transaction

3.回滚事物 :rollback transaction

那么我带着大家写一个事物,让大家有直观的感受:

BEGIN tran

DECLARE @count int

SET @count=0

--balance有约束,其的值不能小于1

UPDATE cardInfo SET balance=0  where cardID=‘1010 3576 1212 1004‘ --错误的更新

SET @[email protected][email protected]@error --记录其上面语句的错误信息

--接下来更新一条正确的信息

UPDATE cardInfo SET balance =1000 WHERE cardID = ‘1010 3576 1212 1130‘ --正确的更新

SET @[email protected][email protected]@error --记录其上面语句的错误信息

PRINT @count

IF (@count<>0)

begin

print ‘交易失败,事物将进行回滚````‘

rollback tran

end

else

begin

print ‘交易成功,事物将进行提交,谢谢合作!‘

commit tran

end

事物我就给大家讲到这里,接下来我们讲解视图

还是这个问题,既然要讲视图,那么就要了解视图,请问大家,什么是视图,视图都有哪些好处?

答案:

什么事视图

解析:视图是另一种查看数据库中一个或者多个表中的数据的方法,他是一个虚拟表,通常是作为来自一个或多个表的行或列的自己创建的。

通俗的说就是:视图是储存了一堆SQL语句的虚拟表,注意:在创建虚拟表的时候不可以使用UPDATE语句

视图都有哪些好处?

解析:好处有两个,分别是1.对最终用户的好处,就是说可以让用户更容易理解,获取数据更容易。2.对开发人员的好处,限制数据检索跟容易,维护应用程序更容易。

创建视图有两种方式,分别是使用T-SQL语句创建和使用手动创建。

接下来让我给大家使用两种方式分别创建视图,让大家有一个直观的好处。

第一种方式:

--创建视图的T-SQL语句

--检查视图是否存在,当视图存在的时候,吧该名称的视图删除,然后新建视图

IF exists(SELECT * FROM sysobjects where name=‘vw_cardInfo_userInfo‘)

DROP VIEW vw_carInfo_cuserInfo

GO

CREATE view vw_cardInfo_userInfo--创建视图的名称

as

select cardID AS 银行卡号,pass AS 密码,customerName AS 姓名 FROM cardInfo,userInfo

WHERE userInfo.customerID=cardInfo.customerID

GO

SELECT * FROM vw_cardInfo_userInfo

第二种方式:

恩恩~~~相对来说我还是推荐大家使用第一种方式,使用T-SQL语句进行创建视同,因为这样会让大家看起来有点专业的感觉~~~~~~

好的 视图我们就讲到这里了,我们还剩下最后一个知识点,就是索引了。

既然讲到这里,那么问题来了,请大家回答一下,什么事索引?,索引分为几大类,分别是什么,最主要的两种是哪两种?

解析:索引就好比我们本书的目录,都有哪些章节,在第几页,更方便与我们的查找与应用,而无需我们一页一页的查找了。

分别分为6大类:

1.唯一索引 关键字unique是唯一索引的名字 创建唯一索引必须加上 unique

use MyGongZuoZhanDian

--创建索引

GO

IF exists(SELECT * FROM sysindexes where name=‘IX_Detailed_Name‘)

DROP INDEX Detailed.IX_Detailed_Name

/*创建唯一索引*/

CREATE unique index IX_Detailed_Name

on Detailed(Name)

WITH FILLFACTOR = 30

GO

/*调用*/

SELECT * FROM Admin

WITH (INDEX=IX_Detailed_Name)

where id>=0

以下的调用方法和这个差不多,所以我也就不多写了~

2.主键索引

聚集索引在你创建主键列 并且设置成自增列的时候 他会自动创建。

3.聚集索引

use MyGongZuoZhanDian

--创建索引

GO

IF exists(SELECT * FROM sysindexes where name=‘IX_Detailed_Name‘)

DROP INDEX Admin.IX_Detailed_Name

/*创建聚集索引索引*/

CREATE CLUSTERED index IX_Detailed_Name

on admin(id)

WITH FILLFACTOR = 30

GO

4.非聚集索引 关键字 nonclustered 是非聚集索引的名字 创建非聚集索引必须加上 nonclustered ,index 是创建索引的关键字,FILLFACTOR  是设置填充因子的关键字

use MyGongZuoZhanDian

--创建索引

GO

IF exists(SELECT * FROM sysindexes where name=‘IX_Detailed_Name‘)

DROP INDEX Detailed.IX_Detailed_Name

/*创建非聚集索引*/

CREATE nonclustered index IX_Detailed_Name

on Detailed(Name)

WITH FILLFACTOR = 30

GO

5.复合索引

用户可以在多个列上建立索引,

这种索引叫做复合索引(组合索引)。复合索引的创建方法与创建单一索引的方法完全一样。但复合索引在数据库操作期间所需的开销更小,

可以代替多个单一索引。当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。

6.全文索引

全文索引与普通的索引不同,普通的索引是以B-tree结构来维护的,而全文索引是一种特殊类型的基于标记的功能性索引,是由Microsoft SQL Server全文引擎服务创建和维护的。使用全文索引可以快速、灵活地为存储在SQL Server数据库中的文本数据创建基于关键字查询的索引,与like语句不同,like语句的搜索是适用于字符模式的查询,而全文索引是根据特定语言的 规则对词和短语的搜索,是针对语言的搜索。

推广:http://www.cnblogs.com/fengyepiaoluo/p/4058050.html

时间: 2024-10-26 13:23:55

T-SQL的事物、视图和索引的相关文章

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

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

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

一:事务: 是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),事务是恢复和并发控制的基本单位. 事务的四个特性:ACID A:atomicity 原子性,事务里的所有操作都是一体的,要么一起完成,要么就都不执行,不可能出现执行一半的情况. C:consistency 一致性,保证数据的一致 I:isolation 隔离性,事务的执行不被干扰,也就是说事务在执行的过程中不可以对其中的数据进行其它操作,等事务完成之后才可以操作. D:durability 持久性,执行的时候会有记录,

第五章.事物,视图,索引,备份,恢复

★.存储过程 语法: delimiter $$ create procedure usp_list() begin select * from student;  end$$ delimiter ; 1.事务 概念: 就是一堆操作的集合.要么都执行成功,要么都执行失败基本要素: 1.原子性:事务是一个完整的操作.事物的各元素是不可分的. 2.一致性:事务完成时,数据必须处于一致状态. 3.隔离性:事务是独立的,它不应以任何方式依赖于或影响其他事务. 4.持久性:事务的处理结果是永久的. 执行事物

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

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

事务,视图,索引

一.事务 1.什么是事务:事务是一种机制,一个操作序列,它包含一组数据库的操作命令.并把所有命令作为一个整体一起向系统提交或撤销操作请求 ,要么这些数据库操作都执行,要不都不执行.事务是一个不可分割的整体. 2:事务的四种特性:原子性.一致性.隔离性.持久性 3:如何执行事务操作: 1.开始事务:begin transaction 2.提交事务:commit transaction 3.回滚事务:rollback transaction 二.视图 创建视图的语法: create view vie

事务、视图和索引

今天我们学习了事务.视图和索引!!这是一个很神奇的东西!我们先来说说最神奇的事务吧,什么叫事务呢?事务是一个不可分割的整体,事务中的多个执行过程,同生共死.要么都执行成功,要么都执行失败.(一荣俱荣,一损俱损) 事务有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

优化MySchool数据库(事务、视图、索引)

Java培训.Android培训.iOS培训..Net培训.期待与您交流! 事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据检索效率” 事务: ---- 用于保证多条SQL语句的同步执行(要么一起全部执行成功,要么全部都回滚不执行) ---- 语法: Begin Transaction        (开始事务) {  多条SQL语句 } com

SQL Server和Oracle数据库索引介绍

SQL Server和Oracle数据库索引介绍 1 SQL Server中的索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度.索引包含由表或视图中的一列或多列生成的键.这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行. 表或视图可以包含以下类型的索引: 聚集索引 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行.索引定义中包含聚集索引列.每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序. 只有当表包含聚集索引