一:事務
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
示例:
--創建視圖 create VIEW vw_Student as select StudentName as 姓名, StudentNo as 學號,StudentResult as 學生成績 from Student --刪除視圖 drop VIEW vw_Student --查看視圖 select * from vw_Student
3.使用視圖的注意事項:
① 每個視圖中可以使用多個表
② 與查詢相似,一個視圖可以嵌套另一個視圖,但最好不要超過3層
③ 視圖定義中的select語句不能包括下列內容:
order by 子句,除非在select 語句的選擇列表中也有一個top子句
into 關鍵字
引用臨時表或表變量
三:索引
1.定義:
是SQL Server編排數據的內部方法,是檢索表中數據的直接通道。
索引頁是數據庫中存儲索引的數據頁
2.作用:
大大提高數據庫的檢索速度,改善數據庫性能。
3.索引分類:
常用的索引有以下6類:
唯一索引:不允許兩行具有相同的索引值
主鍵索引:要求主鍵中的每個值是非空、唯一的。主鍵索引是唯一索引的特殊類型
聚集索引:在聚集索引中,表中各行的物理順序與鍵值得邏輯(索引)順序相同。一個表只能包含一個聚集索引
非聚集索引:使表中各行數據存放的物理順序與鍵值的邏輯順序不匹配。聚集索引比非聚集索引有更快的數據訪問速度
復合索引:在創建索引時,并不是只能對其中一列創建索引,與創建主鍵一樣,可以將多個列組合作為索引。
全文索引:是一種特殊類型的基于標記的功能性索引。主要用于在大量文本文字中搜索字符串
4.創建索引:
使用T-SQL語句創建索引:
語法:
create [unique] [clustered|nonclustered] index index_name on table_name (column_name[,column_name]……) [with filifactor=x]
5.刪除索引:
語法:
Drop index table_name.index_name
注: 刪除表時,該表的所有索引將同時被刪除
如果要刪除表的所有索引,則先要刪除非聚集索引,再刪除聚集索引
6.查看索引:
①:用系統存儲過程sp_helpIndex查看
語法:
sp_helpIndex table_name
②:用視圖sys.indexes查看
語法:
select * from sys.indexes
文章列表