第六章:事務,視圖和索引
一、事務
事務的概念
事務(TRANSACTION)是作爲單個邏輯工作單元執行的一系列操作,這些操作作爲一個整體一起向系統提交,要麼都執行、要麼都不執行 事務是一個不可分割的工作邏輯單元
事務的四個屬性(簡稱ACID)
- 原子性(Atomiaity): 事務的各元素是不可分的(原子的)。
- 一致性(Consistency):當事務完成時,數據必須處於一致狀態。
- 隔離性(Isolation):對數據進行修改的所有併發事務是彼此隔離的,這表明事務必須是獨立的,它不以任何方式依賴或影響其它事務。
- 持久性(Durability):不管系統是否發生了故障,事務處理的結果都是永久的。
執行事務(transaction可以簡寫爲tran)
(1)開始事務
begin transaction
(2)提交事務
commit transaction
(3)回滾事務
rollback transaction
----從張三賬戶轉賬1000元到李四的賬戶,要求保存交易信息
begin transaction
declare @errorSum int
set @errorSum=0
update bank set currentMoney=currentMoney-500 where customerName='張三'
set @errorSum=@errorSum+@@ERROR
update bank set currentMoney=currentMoney+500 where customerName='李四'
set @errorSum=@errorSum+@@ERROR
if(@errorSum>0)
begin
print '轉賬失敗'
rollback transaction
end
else
begin
print '轉賬成功'
commit transaction
end
二、索引
有助於提高檢索數據的效率,可以快速通過索引定位到數據
分類:唯一索引,主鍵索引,聚集索引,非聚集索引
索引語法:
create [unique唯一] [clustered聚集/nonclustered非聚集] index 索引名稱
on 表名(列名)
----- 在sudent表中,在studentName(學生姓名)列上創建索引
create unique nonclustered
index index_Name
on student(studentName)
索引的好處:可以快速檢索數據,
缺點:佔用更多的空間。當數據量大的時候使用索引,在經常檢索的列,排序的列上建立索引,列值只有幾個有限的值的列不需要建索引
三、視圖
視圖是一張虛擬表,根據用戶需要建立不同視圖以便用戶方便查詢數據,提高數據安全性
視圖語法:
create view 視圖名
as
查詢語句
—創建學生表的視圖,按學號排序,顯示學號,學生姓名,手機號
create view student
as
select studentNo 學號, studentName 學生姓名, phone 手機號 from student order by studentNo
– 看了記得點贊哦~我會繼續加油的,