一:事务

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语句

方法二:

  语法:

 Create VIEW view_name

 as

 <select  语句>

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

  语法:

Drop VIEW view_name

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

  语法:

 select col_name1,col_name2,
......
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

事务&视图和索引的更多相关文章

  1. SQL-server的事务,视图和索引

    (1):  A: B: C: D: 选错误A,D 因为bc不对所以选AD,A:关系数据库中,数据是保存在数据页中的,而索引则是存储在索引页中.因此,数据表中的索引并非越多越好,一个表中如果有大量的索引 ...

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

    事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据 ...

  3. accp8.0转换教材第5章事务、视图、索引、备份和恢复理解与练习

    知识点:事务.视图.索引.数据库的备份和恢复 一.单词部分 ①transation事务②atomicity原子性③consistency一致性④isolation隔离性 ⑤durability持久性⑥ ...

  4. java数据库编程之事务、视图、索引、备份、恢复

    第五章:事务.视图.索引.备份和恢复 5.1:事务 事务的概念:事务(transcation)是讲一系列数据操作捆绑成为一个整体进行统计管理. 如果某一事务执行成功了,则该事务进行操作的所有数据将会提 ...

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

    第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行 ...

  6. mysql优化---订单查询优化:视图优化+索引创建

    订单的表结构采用了垂直分表的策略,将订单相关的不同模块的字段维护在不同表中 在订单处理这个页面,需要查询各种维度, 因此为了方便查询创建了v_sale_order视图(老版本) drop view v ...

  7. Oracle数据库之视图与索引

    Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...

  8. 序列、视图、索引(面试看这个就GO了)

    oracle内置对象 序列.视图.索引 序列 create sequence aaa start with 1; 使用 视图 创建好之后 然后直接用 就OK了 有了视图可以代替子查询,使得sql简洁 ...

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

    一.程序包和包体 程序包(package):存储在数据库中的一组子程序.变量定义.在包中的子程序可以被其它程序包或子程序调用.但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序. ...

随机推荐

  1. C++时间标准库时间time和系统时间的使用

    #include <iostream> #include <time.h> #include <stdio.h> #include <windows.h> ...

  2. Sqli-labs less 46

    Less-46 从本关开始,我们开始学习order by 相关注入的知识. 本关的sql语句为$sql = "SELECT * FROM users ORDER BY $id"; ...

  3. list<T> 自定义比较器进行排序

    今天在研究List<T> 集合如何排序,我试过很多,但是都不行,然后看到msdn中的这个比较器排序,自己测试了代码,No Problem.给大家分享一下. 类型 T 的默认比较器按如下方式 ...

  4. POJ 3233 Matrix Power Series (矩阵快速幂+二分求解)

    题意:求S=(A+A^2+A^3+...+A^k)%m的和 方法一:二分求解S=A+A^2+...+A^k若k为奇数:S=(A+A^2+...+A^(k/2))+A^(k/2)*(A+A^2+...+ ...

  5. Java 动态代理机制分析及扩展

    Java 动态代理机制分析及扩展,第 1 部分 王 忠平, 软件工程师, IBM 何 平, 软件工程师, IBM 简介: 本文通过分析 Java 动态代理的机制和特点,解读动态代理类的源代码,并且模拟 ...

  6. HTTP协议中TCP的三次握手,四次挥手总结

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...

  7. lintcode:整数排序||

    题目 给一组整数,按照升序排序.使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法. 解题 归并排序 public class Solution { /** * @param ...

  8. lintcode:交换链表当中两个节点

    题目 给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点.保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做. 注意事项 你需要交换两个节点而不是改变节点的权值 ...

  9. 540C: Ice Cave

    题目链接 题意: n*m的地图,'X'表示有裂痕的冰块,'.'表示完整的冰块,有裂痕的冰块再被踩一次就会碎掉,完整的冰块被踩一次会变成有裂痕的冰块, 现在告诉起点和终点,问从起点能否走到终点并且使终点 ...

  10. java中静态代理,动态代理知识的补充

    文章转载自:http://blog.csdn.net/jialinqiang/article/details/8950989 一.Java动态代理 相对于静态代理的代理类在编译时生成(.class文件 ...