畢業**終於交給導師了,要給自己充充電,好久沒學新知識了,慚愧慚愧,後面計畫把科班基礎都學一下,彌補彌補不足。先把資料庫簡單記一下,有兩本書還在路上,之後再做補充。
關係型資料庫相當於乙個二維表,行被稱為記錄,列被稱為字段。
名稱型別
說明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就可以唯一標識乙個學生的資訊。另乙個表 學生選課表 學號,課程號...