天天看點

mysql索引與限制_mysql限制與索引的差別

一:限制

作用:是為了保證資料的完整性而實作的一套機制,它具體的根據各個不同的資料庫的實作而有不同的工具(限制);

這裡主要講解mysql的限制:

1、非空限制:not null;

訓示某列不能存儲NULL值

2、唯一限制:unique();uk

unique限制的字段,要求必須是唯一的,但null除外;

3、主鍵限制:primary key();pk

主鍵限制=not  null + unique,確定某列(或兩個列多個列的結合)有唯一辨別,有助于更容易更快速地找到表中的一個特定的記錄。

4、外鍵限制:foreign  key () references (參考),fk

保證一個表中的資料比對另一個表中的值的參照完整性。文法:constraint  fk_dept_id   foreign key  (dept_id)  references  dept(dept_id);

5、自增限制:auto_increment

6、預設限制:default

給定預設的值

7、檢查性限制:check

保證列中的值符合指定的條件。

示例:

create table member(

id int(10),

phone int(15) unsigned zerofill,

name varchar(30) not null,

constraint uk_name unique(name),

constraint pk_id primary key (id),

constraint fk_dept_id foreign key (dept_id,字段2)

references dept(主表1)(dept_id)

);

注:

//constraint  uk_name   可以省略不寫。uk_name  唯一限制名稱;

//pk_id     主鍵限制名稱;

//fk_dept_id   外鍵限制名稱

二:索引

作用:快速定位特定資料,提高查詢效率,確定資料的唯一性,快速定位特定資料;可以加速表和表之間的連接配接,實作表與表之間的參照完整性,使用分組和排序語句進行資料檢索時,可以顯著減少分組和排序的時間全文檢索字段進行搜尋優化;

索引的種類:

1、主鍵索引(primary   key);

2、唯一索引(unique);

3、正常索引(index);

4、全文索引(full  text);

總結:限制是為了保證表資料的完整性,索引是為了提高查詢效率,兩者作用不一樣!其次種類也不一樣。

1.-訓示某列不能存儲NULL值。