資料庫主鍵 外來鍵 索引

2021-10-03 11:57:50 字數 1949 閱讀 8882

畢業**終於交給導師了,要給自己充充電,好久沒學新知識了,慚愧慚愧,後面計畫把科班基礎都學一下,彌補彌補不足。先把資料庫簡單記一下,有兩本書還在路上,之後再做補充。

關係型資料庫相當於乙個二維表,行被稱為記錄,列被稱為字段。

名稱型別

說明int

整型4位元組 ±22億的範圍

bigint

長整型8位元組 ±922億

real

浮點型4位元組浮點數,±10^38

double

浮點型8位元組浮點,±10^308

decimal(m,n)

高精度小數

decimal(20,10)20位中10位小數

char(n)

字串固定長度n,只能存長度n的字串

varchar(n)

可變字串

可變長度,最大為n,可取0-n位

boolean

布林true false

date

日期1995-08-24

time

時間11:30:21

datetime

日期時間

1995-08-24 11:30:21

主鍵是某乙個具有唯一標識的字段,不能與業務相關,型別有自增整數(bigint not null auto_increment,主鍵自動增長)和全域性唯一guid型別,不允許有null,還有聯合主鍵這種,多個字段同時作為主鍵,可單獨乙個有重複,但不能多個同時重複。

外來鍵是在另乙個表作為主鍵,但在當前表存在,為了將當前表與另一張表聯絡在一起。

定義方式:

alter

table students 表名

addconstraint yueshu_id 外來鍵約束名

foreign

key(class_id) 外來鍵在本表的欄位名

references class(id) 與class表中的id關聯

刪除方式:

alter

table students

drop

foreign

key yueshu_id

外來鍵主要起約束作用,即另乙個表中無99這個主鍵名,當前表由於被約束了,就無法新增外來鍵為99的記錄。

但一般不用外來鍵,因為外來鍵效率低,通過邏輯對其進行約束。

上面說的主要是一對多或多對一的關係。對於多對多的關係,採用中間表,即再建立一張表將那兩張表的主鍵對應存入;對於一對一關係,再建立一張表存入另乙個表的主鍵,以及其他資訊,為什麼這樣做而不是直接在原表新增一列?因為原表中未必所有記錄都有這個資訊,可能有的為null,而且這樣可將頻繁使用的字段單獨拿出來進行查詢,效率高。

索引是對某乙個或多個字段進行預排序的資料結構b-tree,資料庫可直接定位索引,而不是從頭搜尋表。索引中重複的越少,效率越高。被查詢次數最多的(在where**現的)且盡量不重複的字段適合作為索引。預設主鍵自動被建立索引,因為主鍵唯一效率最高。

建立方式:

alter

table students

addindex idx_score(score) 建立了乙個以socre欄位的索引idx_score,如果是以score為依據的頻繁查詢,可提高查詢效率。也可以多個為依據。

唯一性索引

就是新增唯一性約束,很多字段希望他是唯一的不重複,可通過新增它的唯一性索引或者唯一性約束。

新增唯一性索引

alter

table students

addunique

index uni_id(id) 為id列新增了唯一性unique的索引

唯一性約束

alter

table students

addconstraint uni_id unique

(id) 這個對id沒新增索引,而是使其有唯一性約束。

資料庫中主鍵 外來鍵 索引

1 主鍵 若某乙個屬性組 注意是組 能唯一標識一條記錄,該屬性組就是乙個主鍵。主鍵不能重複,且只能有有乙個,也不允許為空。定義主鍵主要是為了維護關聯式資料庫的完整性。2 外來鍵 外來鍵用於與另一張表的關聯,是能確定另一張表記錄的字段。外來鍵是另乙個表的主鍵,可以重複,可以有多個,也可以是空值。定義外...

資料庫的主鍵外來鍵索引

title 資料庫的主鍵外來鍵索引 date 2018 04 08 16 03 01 uodated 2020 03 07 14 05 24 categories 資料庫 tags 資料庫 這是一篇資料庫的主鍵 外來鍵 索引的學習筆記 主鍵外來鍵 索引定義 唯一標識一條記錄,不能有重複的,不允許為空...

資料庫 主鍵 外來鍵

1 什麼是主鍵 在一張表中,用來唯一標識一條記錄的字段集,叫做主關鍵字或者主關鍵碼,簡稱主鍵 或主碼 這裡說 欄位集 是因為主鍵可能用乙個字段或者多個欄位來表示。舉例來看 學生表 學號,姓名,性別,專業編號 這裡學號是主鍵,乙個學號id就可以唯一標識乙個學生的資訊。另乙個表 學生選課表 學號,課程號...