码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver中 事物 索引及视图

时间:2015-08-28 21:20:23      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

 

 

  1.                                              事务
         1、什么是事务
              事务是一个不可分割的工作逻辑单元,它包含了一组数据库的操作命令,并且所有命令作为一个整体一起向系统提交或撤销操作请求,即要么都执行,要么都不执行
      2、事务的4个属性
              (1)、原子性(Atomicity):事务是一个完整的操作,事务个元素不可分
              (2)、一致性(Consistency):当事务完成时,数据必须处于一致状态
              (3)、隔离性(Isolation):对数据进行修改的所有并发事务时彼此隔离的,这表明事务必须时独立的,它不应该以任何方式依赖于或影响其他事务
              (4)、持久性(Durability):事务完成后,它对于系统的影响是永久性的
        3、创建事务的语法:
             --开始事务--
             begin transaction
                 --定义变量,累计事务执行过程中的错误--
          declare @errorSum int
                 set @errorSum=0      --初始化为0,即无错误
          --增删改操作---
          set  @errorSum = @errorSum +@@error   --累计是否有错误
          ........
      
          --根据是否有错误,确定事务是提交还是撤销--
          if(@errorSum=0)
                      commit transaction    --提交事务
          else 
                      rollback transaction   --撤销事务
          
          注意:变量@errorSum只对增删改进行操作,查询并不需要
          
    
     4、什么时候使用事务
         当一个操作由多个增删改组成的时候,则应用事务
    
                                                          索引
    
        1、什么是索引
           它是SQL Server编排数据的内部方法,为SQL Server提供一种方法来编排查询数据的路径,相当于字典里的目录
        2、索引的分类
               (1)、唯一索引:唯一索引不允许两行具有相同的索引值
              (2)、主键索引:在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型         
              (3)、聚集索引:  表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能由一个
              (4)、非聚集索引:非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以是多个,小于249个
         3、创建索引
              语法:
              create [unique] [clustered | nonclustered] index index_name
                  on table_name (column_name[,column_name]....)
                   [
                        fillfactor=x
                ]
    
               unique指定唯一索引,可选
             clustered、nonclustered指定是聚集索引还是非聚集索引,可选
             fillfactor表示填充因子,指定一个0~100的值,该值指示索引页填满的空间所占的百分比
         
            示例:
               use stuDB
               go
               /*--检测是否存在该索引(索引存放在系统表sysindexes中)--*/
              if exists(select name from sysindexes
                             where name=‘ix_stumarks_writtenexam‘)
                    drop index  stumarks.ix_stumarks_writtenexam     --删除索引
             /*--笔试列创建非聚集索引:填充因子为30%--*/
             create nonclustered index ix_stumarks_writtenexam
              on stumarks(writtenexam)
              with  fillfactor=30
              go
    
          3、应该创建索引和不应该创建索引
             应该创建索引:
                 经常以这个列进行查询
                 经常以这个列进行排序
             不应该创建索引:
                表的数据量小时,不应创建(会先查索引页,然后再表)
                当某列的值经常发生变更(修改数据会影响到索引页)
                当该列的值比较单一的情况(比如该列的值为性别 男和女)
                                                  视图
          1、什么是视图
               视图是另一种查看数据库中一个或多个表中的数据的方法,视图是一种虚拟表
          2、语法
               create view view_name
                as <select语句>
               注意:视图可以对表进行增删改查, 但建议不对其使用增删改,多用来进行查询

sqlserver中 事物 索引及视图

标签:

原文地址:http://www.cnblogs.com/liuyudong0825/p/4762540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!