一、什麼是主鍵、外來鍵:
關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組(
注意是組
)能唯一標識一條記錄
,該屬性組就可以成為乙個主鍵
比如學生表(
學號,姓名,性別,班級
) 其中每個學生的學號是唯一的,學號就是乙個主鍵
課程表(
課程編號
,課程名,學分
) 其中課程編號是唯一的,
課程編號就是乙個主鍵
成績表(學號,
課程號,
成績)
成績表中單一乙個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以
學號和課程號的屬性組是乙個主鍵
成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外來鍵
同理 成績表中的課程號是課程表的外來鍵
定義主鍵和外來鍵主要是為了維護關聯式資料庫的完整性,總結一下:
1.主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。
身份證號是唯一能確定你這個人的,其他都可能有重複,所以,身份證號是主鍵。
2.外來鍵用於與另一張表的關聯
。是能確定另一張表記錄的字段
,用於保持資料的一致性。
比如,a
表中的乙個字段,是
b表的主鍵,那他就可以是
a表的外來鍵。
一、什麼是索引?
索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b-樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜尋條件的列上已經建立了索引,mysql無需掃瞄任何記錄即可迅速得到目標記錄所在的位置。如果表有1000個記錄,通過索引查詢記錄至少要比順序掃瞄記錄快100倍。
二、索引的型別
普通索引 :
這是最基本的索引型別,而且它沒有唯一性之類的限制。普通索引可以通過以下幾種方式建立:
建立索引,例如create index 《索引的名字》 on tablename (列的列表);
修改表,例如alter table tablename add index [索引的名字] (列的列表);
建立表的時候指定索引,例如create table tablename ( [...], index [索引的名字] (列的列表) );
唯一性索引:
這種索引和前面的「普通索引」基本相同,但有乙個區別:索引列的所有值都只能出現一次,即必須唯一。唯一性索引可以用以下幾種方式建立:
建立索引,例如create unique index 《索引的名字》 on tablename (列的列表);
修改表,例如alter table tablename add unique [索引的名字] (列的列表);
建立表的時候指定索引,例如create table tablename ( [...], unique [索引的名字] (列的列表) );
索引命名規則
索引須按照idx_table__,其中是建立索引的表名,是建立索引的欄位名
索引名限制在30個字元內。當索引名超過30字元時,可用縮寫來減少索引名的長度,如description –> desc;information –> info;address –> addr等
如:@"create unique index idx_groupid on grouptablev2(groupid);";
資料庫基本概念
資料庫的分類 一 網路資料庫 網路資料庫是指把資料技術引入到計算機網路系統中,借助與網路技術將儲存於資料庫中的大量資訊及時發布出去,而計算器網路借助於成熟的資料庫技術對網路中的各種資料進行有效管理,並實現使用者與網路中的資料進行有效管理 並實現使用者與網路中的資料庫進行實時動態資料互動 二 層次資料...
資料庫基本概念
資料庫的基本概念 資料庫管理系統 dbms 是一種操作和管理資料庫的大型軟體,用於建立 使用和維護資料庫。它對資料庫進行統一的管理和控制,以保證資料庫 的安全性和完整性。dbms提供資料定義語言ddl與資料操作語言dml。資料庫的三種模型 網狀資料庫 層次資料庫 關聯式資料庫。1.網狀模型 層次模型...
資料庫基本概念
引言 由於前段時間在實習。好長一段時間沒更新部落格了。儲存過程是使用者定義的完畢特定功能的一系列sql語句的集合,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數 假設該儲存過程帶有引數 來呼叫執行它。涉及特定表或其它物件的任務,使用者能夠呼叫儲存過程。而函式一般是資料庫已定義的方法。...