1 常見概念──約束、主鍵、外來鍵、檢視
約束是資料庫伺服器強制使用者必須遵從的業務邏輯。它們限制使用者可能輸入指定列的值,從而強制引用完整性。在資料庫設計器中建立約束時,約束遵從用於建立和更改表的 ansi 標準。
主鍵:表中經常有乙個列或列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵,通過它可強制表的實體完整性。 當建立或更改表時可通過定義 primary key 約束來建立主鍵。乙個表只能有乙個 primary key 約束,而且 primary key 約束中的列不能接受空值。由於 primary key 約束確保唯一資料,所以經常用來定義標識列。
外來鍵用於兩個表的聯絡。兩個表必須具有相同型別的屬性,在該屬性上有相同的值。該屬性應為其中乙個表的主 鍵,在另外乙個表設定為外來鍵。約束內錶的資料的更新,從定義外來鍵時可以發現 外來鍵是和主鍵表聯絡,資料型別要統一,長度(儲存大小)要統一。這樣在更新資料的時候會保持一致性。
索引:在資料庫表中,可以使用索引加快訪問資料的速度。通過在要執行搜尋的表中選擇一列或多列來建立索引。索引可以看成是乙個表按指定索引列的排序後的影射表。
檢視:所謂檢視(view)其實是執行查詢語句後得到的結果,但這個查詢結果可以**成資料表來使用,所以有人也稱它為「虛擬資料表」,檢視在操作上和資料表沒有什麼區別,但兩者的差異是其本質是不同的:資料表是實際儲存記錄的地方,然而檢視並不儲存任何記錄,它儲存的實際上是查詢語句,其所呈現出來的記錄實際來自於資料表,可以為多張資料表,大家由此可以預見到檢視應用的彈性!我們可以依據各種查詢需要建立不同檢視,但不會因此而增加資料庫的資料量。
2聚簇索引和非聚簇索引
索引有兩種型別:聚簇索引和非聚簇索引。在
聚簇索引中,索引樹的葉級頁包含實際的資料:
記錄的索引順序與物理順序相同。在
非聚簇索引中,葉級頁指向表中的記錄:
記錄的物理順序與邏輯順序沒有必然的聯絡。
聚簇索引非常象目錄表,目錄表的順序與實際的頁碼順序是一致的。非聚簇索引則更象書的標準索引表,索引表中的順序通常與實際的頁碼順序是不一致的。一本書也許有多個索引。例如,它也許同時有主題索引和作者索引。同樣,
乙個表可以有多個非聚簇索引。
通常情況下,你使用的是聚簇索引,但是你應該對兩種型別索引的優缺點都有所理解。
每個表只能有乙個聚簇索引,因為乙個表中的記錄只能以一種物理順序存放。通常你要對乙個表按照標識字段建立聚簇索引。但是,你也可以對其它型別的字段建立聚簇索引,如字元型,數值型和日期時間型字段。
可以對乙個表同時建立聚簇索引和非聚簇索引
非聚簇索引需要大量的硬碟空間和記憶體。另外,雖然非聚簇索引可以提高從表中取資料的速度,它也會降低向表中插入和更新資料的速度。每當你改變了 乙個建立了非聚簇索引的表中的資料時,必須同時更新索引。因此你對乙個表建立非聚簇索引時要慎重考慮。如果你預計乙個表需要頻繁地更新資料,那麼不要對它 建立太多非聚簇索引。另外,如果硬碟和記憶體空間有限,也應該限制使用非聚簇索引的數量。
question——
sql中建立乙個索引,我怎麼用它,或者我怎麼知道它是怎樣被人使用的。
answer——
建索引主要是用於提高檢索資料的速度.
有如下的查詢語句:select * from table1 where name='zhangshan'
在沒有針對name建立索引的時候,這個查詢會相當慢,到少比建立了索引後慢好幾倍.這就是索引的好處之一.
你並不知道你用了它,只能從查詢速度上感覺出來.
對乙個表建立唯一索引,可以使用關鍵字unique。對聚簇索引和非聚簇索引都可以使用這個關鍵字。這裡有乙個例子:
create unique coustered index myclumn_cindex on mytable(mycolumn)
這是你將經常使用的索引建立語句。無論何時,只要可以,你應該盡量對乙個對乙個表建立唯一聚簇索引來增強查詢操作。
最後,要建立乙個對多個欄位的索引──復合索引──在索引建立語句中同時包含多個欄位名。下面的例子對firstname和lastname兩個字段建立索引:
create index name_index on username(firstname,lastname)
這個例子對兩個字段建立了單個索引。在乙個復合索引中,你最多可以對16個字段進行索引。
用事務管理器建立索引
用事務管理器建立索引比用sql語句容易的多。使用事務管理器,你可以看到已經建立的索引的列表,並可以通過圖形介面選擇索引選項。
使用事務管理器你可以用兩種方式建立索引:使用manage tables視窗或使用manage indexes視窗。
要用manage tables 視窗建立乙個新索引,單擊按鈕advanced options(它看起來象乙個前面有一加號的表)。這樣就開啟了advanced options對話方塊。這個對話方塊有一部分標名為primary key。
注意:唯一索引是指該字段不能有重複的值,而不是只能建立這乙個索引。
3 儲存過程觸發器
儲存過程是儲存起來的可以接受和返回使用者提供的引數的 transact-sql 語句的集合。
可以建立乙個過程供永久使用,或在乙個會話中臨時使用(區域性臨時過程),或在所有會話中臨時使用
全域性臨時過程),也可以建立在 microsoft sql server 啟動時自動執行的儲存過程。
觸發器是一種特殊型別的儲存過程,它不同於我們前面介紹過的儲存過程。觸發器主要是通過事件進行觸發而被執 行的,而儲存過程可以通過儲存過程名字而被直接呼叫。當對某一表進行諸如update、 insert、 delete 這些操作時,sql server 就會自動執行觸發器所定義的sql 語句,從而確保對資料的處理必須符合由這些sql 語句所定義的規則。
61850知識小節
各邏輯節點的英文簡稱,中文名稱及其含義如下 1 斷路器 xcbr 能夠在故障時切斷短路電流。2 斷路器控制 cswi 能夠處理來自執行人員 保護及自動裝置的操作命令。3 過流保護 pioc 當故障電流值增大到動作值時保護裝置會動作。4 電流互感器 tctr 將大電流傳變為小電流。5 電壓互感器 tv...
資料庫知識
1 資料庫的建立 建立格式 create table table name 字段 其中,字段包含三部分內容 名稱 域 逗號 域即資料型別,資料庫包含5中資料型別 integer real text blob null 2 改變表 altertable 命令可以改變表的結構,sqlite版的alter...
資料庫知識
關於資料庫的知識點 表的子查詢,聯合查詢,連線查詢 子查詢 查詢中巢狀查詢。把子查詢的結果作為父查詢的查詢物件 如 select from select cname,cid from tblclass union select dname,did from department as t1 orde...