事務 什麼是事務? 事務是將一個或多個T-SQL語句封裝成一個可執行單元交給SQL Server引擎執行,要麼所有語句執行成功,要麼所有語句執行失敗不存在某一條語句執行成功而其它語句為執行成功的現象! 事物的四個要素 原子性(atomicity):食物是一個完整的操作,事物的素是不可分的(原子的)。...
事務
什麼是事務?
事務是將一個或多個T-SQL語句封裝成一個可執行單元交給SQL Server引擎執行,要麼所有語句執行成功,要麼所有語句執行失敗不存在某一條語句執行成功而其它語句為執行成功的現象!
事物的四個要素
原子性(atomicity):食物是一個完整的操作,事物的素是不可分的(原子的)。事務中的所有元素必須作為一個整體提交或回滾。如果事務中的任何元素失敗則整個事務失敗
一致性(consistency):當事務完成是,數據必須處於一致狀態,也就是說事務不能使數據處於不穩定狀態
隔離性(isolation):對數據進行修改所有併發事務是彼此隔離的,這表明事務必須是獨立的。不應以任何方式依賴或影響其他事務
持久性(durability):事務的持久性值不管系統是否發生故障,事務處理的結果都是永久保存的
執行事務的語法:
開始事務:
begin transaction
回滾撤銷事務:
rollback transaction
提交事務:
commit transaction
視圖
視圖是保存在資料庫上的select查詢。使用視圖的原因有兩種:
- 出於安全考慮,用戶不必看到整個資料庫的結構,而隱藏部分數據
- 符合用戶的日常業務邏輯,使他們對數據更容易理解
什麼是視圖?
視圖是另一種查看資料庫中一個表或多個表中數據的方法,視圖是一個虛擬表視圖保存的並不是數據值。而是引用表的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
註意:刪除表示將刪除表中的所有索引
如果要刪除所有索引應先刪除非聚集索引,再刪除聚集索引。
對索引的一些個人理解如有異議請提醒改正
索引實際上就是查詢數據的一種依據方法。索引類型的不同在查詢數據是所依據的方法也就不同。不同的索引類型之間並沒有太過緊密(直接)的關聯!!!