zoukankan      html  css  js  c++  java
  • 事务&视图和索引

    一:事务

    1.含义:事务是一个不可分割的整体,事务中的多个执行过程,同生共死。要么都执行成功,要么都执行失败。

      事务必须具备以下四个属性,(简称:ACID):

        ①.原子性(Atomicity):事务的各元素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。

        ②.一致性(Consistency):当事务完成时,数据必须处于一致状态。也就是说,在事务开始之前,数据库中存储的数据处于一致状态。

        ③.隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。

        ④.持久性(Durability):指不管系统是否发生了故障,事务处理的结果都是永久的。

    2.如何执行事务?

    语法:

    ①:开始事务(显式地标记一个事务的起始点)

    Begin Transaction

    ②:提交事务(标志一个事务成功结束)

    Commit  transaction

    ③:回滚(撤销)事务(清除自事务起始点至该语句所做的所有数据更新操作,将数据状态回滚到事务开始前,并释放由事务控制的资源)

    Rollback  transaction

    3.事务分类

    在SqlServer中,事务有以下3种类型:

    ①:显式事务:(实际开发中最常用,明确的指定事务的开始边界)

    ②:隐式事务:当以隐式事务操作时,Sql Server将在提交或回滚事务后自动启动新事务。不需要描述每个事务的开始,只要提交或回滚每个事务即可。

    ③:自动提交事务:Sql Server的默认模式,它将每条单独的T-SQL语句视为一个事务。

    4.应用示例:

    通过银行转账的案例说明在SQL中如何开启一个事务:

    5.编写事务时要遵守的原则:

       尽可能简短、访问的数据量尽量最少、查询数据时尽量不要使用事务、在事务处理过程中尽量不要出现等待用户输入的操作。

    二:视图

    1.对于视图的理解:不能保存数据,保存的是SQL语句。是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。

    <能不能对视图进行增删改操作。(答题的话可以,面试不可以)>

    2.如何创建和使用视图?

     创建视图两种方法:

    方法一:

      ①  展开数据库,选择“视图”,点击“新建视图”。

       ②  单击“添加”,会自动出现连接,自动生成sql语句

    方法二:

      语法:

    1 Create VIEW view_name
    2 
    3 as
    4 
    5 <select  语句>

    使用T-SQL语句删除视图:

      语法:

    Drop VIEW view_name

    使用T-SQL语句查看视图数据:

      语法:

    1 select col_name1,col_name2,
    2 ......
    3 from view_name

    示例:

    3.使用视图的注意事项:

    ① 每个视图中可以使用多个表

    ② 与查询相似,一个视图可以嵌套另一个视图,但最好不要超过3层

    ③ 视图定义中的select语句不能包括下列内容:

    • order by 子句,除非在select 语句的选择列表中也有一个top子句
    • into 关键字
    • 引用临时表或表变量

    三:索引

    1.定义:

      是SQL Server编排数据的内部方法,是检索表中数据的直接通道。

    索引页是数据库中存储索引的数据页

    2.作用:

    大大提高数据库的检索速度,改善数据库性能。

    3.索引分类:

    常用的索引有以下6类:

      唯一索引:不允许两行具有相同的索引值

      主键索引:要求主键中的每个值是非空、唯一的。主键索引是唯一索引的特殊类型

      聚集索引:在聚集索引中,表中各行的物理顺序与键值得逻辑(索引)顺序相同。一个表只能包含一个聚集索引

      非聚集索引:使表中各行数据存放的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引有更快的数据访问速度

      复合索引:在创建索引时,并不是只能对其中一列创建索引,与创建主键一样,可以将多个列组合作为索引。

      全文索引:是一种特殊类型的基于标记的功能性索引。主要用于在大量文本文字中搜索字符串

    4.创建索引:

    使用T-SQL语句创建索引:

      语法:

    1 create [unique] [clustered|nonclustered] index index_name
    2 
    3 on table_name (column_name[,column_name]……)
    4 
    5 [with filifactor=x]

    5.删除索引:

      语法:

    Drop index table_name.index_name

    注: 删除表时,该表的所有索引将同时被删除

         如果要删除表的所有索引,则先要删除非聚集索引,再删除聚集索引

    6.查看索引:

    ①:用系统存储过程sp_helpIndex查看

      语法:

    sp_helpIndex table_name

    ②:用视图sys.indexes查看

      语法:

    select * from sys.indexes
  • 相关阅读:
    android如何从网络中获取数据
    如何写好代码
    如何有效遍历集合中的对象
    Android中自定义控件
    Android如何从网络中获取图片
    如果对象的类型为T1,就做某件事;如果对象的类型为T2,就做另外一件事,请赏自己一个巴掌
    android如何在网络中获取数据
    android shell脚本使用
    ASP.NET应用程序
    php记住用户名和密码实现代码(cookie)
  • 原文地址:https://www.cnblogs.com/Zhangmin123/p/5269071.html
Copyright © 2011-2022 走看看