视图、事务、索引

事务

什么是事务?

      事务是将一个或多个T-SQL语句封装成一个可执行单元交给SQL Server引擎执行,要么所有语句执行成功,要么所有语句执行失败不存在某一条语句执行成功而其它语句为执行成功的现象!

事物的四个要素

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

     一致性(consistency):当事务完成是,数据必须处于一致状态,也就是说事务不能使数据处于不稳定状态

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

     持久性(durability):事务的持久性值不管系统是否发生故障,事务处理的结果都是永久保存的

执行事务的语法:

开始事务:

                      begin transaction

回滚撤销事务:

                      rollback transaction

提交事务:

                      commit transaction

视图

视图是保存在数据库上的select查询。使用视图的原因有两种:

  1. 出于安全考虑,用户不必看到整个数据库的结构,而隐藏部分数据
  2. 符合用户的日常业务逻辑,使他们对数据更容易理解

什么是视图?

视图是另一种查看数据库中一个表或多个表中数据的方法,视图是一个虚拟表视图保存的并不是数据值。而是引用表的sql语句

创建视图的语法

create  view  view_name

as

      <select语句>

删除视图的语法

drop view view_name

查看视图的语法

select col_name1,……,col_namen from view_name

索引

什么是索引?

索引是某个表中一列或若干列值的集合相应的指向表中物理表示这些值的数据页的逻辑指针清单

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

索引的作用是通过索引,大大提高数据库的检索速度,改善数据库的性能

索引分类

唯一索引:唯一索引不允许两行具有相同的索引值(创建了唯一索引将自动创建唯一索引)

主键索引:在数据库关系图中创建某列为主键则自动创建主键索引,主键索引是唯一索引的特殊形态

聚集索引:在聚集索引中,表中的各行的物理顺序与键值的逻辑顺序(索引)相同(如果表中将某列设置主键则改列将自动被提升为聚集索引(该表中事先没有聚集索引))一个表中只能包含一个聚集索引

非聚集索引:非聚集索引建立在索引页上,当查询数据时可以从索引中找到记录存放的位置(非聚集索引是表中各行数据存放的物理顺序与键值的逻辑顺序不匹配聚集索引比非聚集索引有更快的访问速度。)

符合索引:在创建索引时将多个列组合作为索引,这种索引称为复合索引(只有用到复合索引的第一列或整个复合索引列作为检索条件时才会用到复合索引)

全文索引:全文索引是一种特殊类型的基于标记的功能性索引,由SQL Server中全文索引服务创建和维护

创建索引的语法

create  【unique】 【clustered | nonclustered】 index  index_name

on table_name (column_name)[,column_name]……)

【with  fillfactor=x】

其中:

unique:指定唯一索引

clustered、nonclustered:指定是聚集索引还是非聚集索引

fillfactor:表示填充因子,指定0~100的值,如指定填充因子的值为80,表示每个叶级页上将有20%的空间保留为空,以便随着在基础表中添加数据而为扩展索引提供空间

删除索引的语法

drop index table_name.index_name

注意:删除表示将删除表中的所有索引

           如果要删除所有索引应先删除非聚集索引,再删除聚集索引。

对索引的一些个人理解如有异议请提醒改正

索引实际上就是查询数据的一种依据方法。索引类型的不同在查询数据是所依据的方法也就不同。不同的索引类型之间并没有太过紧密(直接)的关联!!!

时间: 2024-10-21 16:14:21

视图、事务、索引的相关文章

mysql 视图 事务 索引

为什么需要有视图 * 对于复杂的查询,往往是有多个数据表进行关联查询而得到,而这种语句往往比较复杂,也可能非常频繁的使用. 比如这样的SQL语句 select goods.name,goods_cates.name,goods_brands.name from goods join goods_cates on goods.cate_id = goods_cates.id join goods_brands on goods.brand_id = goods_brands.id; 为了简化用户复

mysql(视图 事务 索引 外键)

视图 视图本质就是对查询的封装 创建视图(定义视图 起名以v_开头) create view v_students as select classes.name as c_name ,students.* from students inner join classes on students.cls_id=classes.id; 查看视图 select * from v_students; 删除视图 drop view v_students; 事务 事务具有ACID特性: 原子性(A,atom

事务、视图和索引

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

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

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

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

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

关于数据库“事务”“索引”“实例”的含义

在学习数据库的时候经常听见"事务""索引""实例"等术语,那么他们具体是什么意思呢? 事务 事务:是指一个完整的操作过程.在这个过程中任何一个环节出现"意外",那么这个操作过程将会被回滚.事务经常被银行中的数据库使用. 例如:用户A向用户B转账100块,这时需要使用事务.首先,系统会从用户A的账户中扣除100块,然后在用户B的账户中增加100块.如果整过操作都成功,那么最终事务完成,转账成功.如果,某一步出现"意外&

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

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

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

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

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

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

变量,存储过程,触发器,事务-索引等

--SELECT TOP 3 Name,Age,Gender FROM View_Student WHERE GROUP having ORDER BY id DESC ----在最终生成用户想要的数据之后,才进行排序,如果不得不排序,那么就尽可能吧消耗减到最小 --ALTER VIEW View_Student --AS --SELECT * FROM dbo.Student DECLARE @num INT --赋值,取值 --赋值两种方式:set select SET @num=100 S