事务,视图及索引!!!
2016-03-11 16:46
369 查看
事务
为什么需要事务?
因为要保证事务的一致性!!!
事务的四个属性:
1.原子性
事务是一个完整的操作!
2.一致性
当事务完成时,数据必须处于一致状态!
3.隔离性
事务是独立的!
4.持久性
持久性是指无论系统发生什么故障,事务处理的结果都是永久的!
这些特性通常简称为ACID
执行事务的语法
(1)开始事务
begin tran
这个语句显示地标记一个事务的起始点.
(2)提交事务
commit tran
这个语句标记事务成功结束。
(3)回滚(撤销事务)
rollback transaction
清除自事务起始地至该语句所做的所有数据更新操作,将数据状态回滚到事务开始前,并释放由事务控制的资源!
事务分类
1.显示事务
2.隐式事务
3.自动提交事务
示例1:
视图
视图是保持在数据库中的select查询.
为什么需要视图?
为保证数据库中数据的安全.
什么是视图?
视图是另一种查看数据库中一个或多个表中数据方法
视图充当着查询中指定表筛选器.
视图通常用来进行三种操作:
1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.将多个物理数据表抽象为一个逻辑数据表
使用T-SQL语句
创建视图的语法是:
create view view_name
as
<select 语句>
如果需要对以创建的视图进行查询代码修改,那么就需要删除已存在的同名视图,在重新创建.
删除视图
drop view vuew_name
查看视图
select col_name1,col_name2,..... from view_name
示例二:
注意:
在视图里存储的是sql语句,并不是数据!
我爱你
Select * from Aritcle
Where content like ‘%我爱你%’
★:填充因子
★:索引会降低增删改效率
单位换算
1G=1024M
1M=1024K
1k=1024(byte)字节
1byte=8bit
4MB/s 512kb/s
为什么需要事务?
因为要保证事务的一致性!!!
事务的四个属性:
1.原子性
事务是一个完整的操作!
2.一致性
当事务完成时,数据必须处于一致状态!
3.隔离性
事务是独立的!
4.持久性
持久性是指无论系统发生什么故障,事务处理的结果都是永久的!
这些特性通常简称为ACID
执行事务的语法
(1)开始事务
begin tran
这个语句显示地标记一个事务的起始点.
(2)提交事务
commit tran
这个语句标记事务成功结束。
(3)回滚(撤销事务)
rollback transaction
清除自事务起始地至该语句所做的所有数据更新操作,将数据状态回滚到事务开始前,并释放由事务控制的资源!
事务分类
1.显示事务
2.隐式事务
3.自动提交事务
示例1:
--转账 --在sql中如何开启事务 begin tran declare @errorsum int set @errorsum=0 update Bank set cardBalance-=49000 where cradId=1 --记录错误号 set @errorsum+=@@ERROR update Bank set cardBalance+=49000 where cradId=2 set @errorsum+=@@ERROR if(@errorsum>0) begin --数据回滚,其中一个操作时错误的,事务整体都会回滚 roolback rollback tran end else begin --提交 commit commit tran end
视图
视图是保持在数据库中的select查询.
为什么需要视图?
为保证数据库中数据的安全.
什么是视图?
视图是另一种查看数据库中一个或多个表中数据方法
视图充当着查询中指定表筛选器.
视图通常用来进行三种操作:
1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.将多个物理数据表抽象为一个逻辑数据表
使用T-SQL语句
创建视图的语法是:
create view view_name
as
<select 语句>
如果需要对以创建的视图进行查询代码修改,那么就需要删除已存在的同名视图,在重新创建.
删除视图
drop view vuew_name
查看视图
select col_name1,col_name2,..... from view_name
示例二:
--当前数据库 use MySchool go --检测视图是否存在:视图记录存放在系统表sysobjects中 if exists(select * from sysobjects where name='vw_student_result') drop view vw_student_result go --创建视图 create view vw_student_result as select 姓名=studentname,学号=student.StudentNo,成绩=Studentresult,课程名称=Subjectname,考试时间=examdate from Student inner join Result on Student.StudentNo=Result.StudentNo inner join Subject on Result.SubjectId=Subject.SubjectId where Subject.SubjectId= ( select SubjectId from Subject where SubjectName='oop' ) and ExamDate= ( select max(ExamDate) from Result,Subject where Result.SubjectId=Subject.SubjectId and SubjectName='oop' ) go
注意:
在视图里存储的是sql语句,并不是数据!
★:索引:是SQL Server编排数据的内部方法。它为SQL Server提供一种方法来编排查询数据
文章 3万个字我爱你
Select * from Aritcle
Where content like ‘%我爱你%’
★:填充因子
★:索引会降低增删改效率
单位换算
1G=1024M
1M=1024K
1k=1024(byte)字节
1byte=8bit
4MB/s 512kb/s
相关文章推荐
- spark.driver.maxResultSize || java.lang.OutOfMemoryError
- 2016C#判断是否为闰年
- 输入字符串,按由小到大的顺序输出
- SVN--(Eclipse)在历史记录中比较版本差异
- 关于dsp/bios的hwi和ecm的问题
- c++基础--容器适配器
- java的if-else和while用法
- python学习之:运行CMD命令
- mysql等关系型数据库实现原理(小白版本)
- 数据结构排序算法之堆排序
- BZOJ2938 POI2000 病毒 题解&代码
- 数据结构排序算法之堆排序
- iOS - UILabel
- IIC时序图
- 8大策略让你对抗机器学习数据集里的不均衡数据
- 一个小程序:Instrumentation的使用
- php提示undefined index的几种解决方法
- 数据库sql语句小知识
- 肖哥教你快速子网划分
- LCT 动态树 hdu 5002