程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 數據庫的視圖、事務、索引

數據庫的視圖、事務、索引

編輯:關於SqlServer
sql server數據庫的視圖、事務、索引

事務

什麼是事務?

      事務是將一個或多個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

注意:刪除表示將刪除表中的所有索引

           如果要刪除所有索引應先刪除非聚集索引,再刪除聚集索引。

對索引的一些個人理解如有異議請提醒改正

索引實際上就是查詢數據的一種依據方法。索引類型的不同在查詢數據是所依據的方法也就不同。不同的索引類型之間並沒有太過緊密(直接)的關聯!!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved