mysql索引和約束區別

2022-05-03 21:36:20 字數 1861 閱讀 9071

一:約束

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

這裡主要講解mysql的約束:

1、非空約束:not null;

指示某列不能儲存null 值

2、唯一約束:unique();uk 

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

3、主鍵約束:primary key();pk

主鍵約束=not  null + unique,確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的乙個特定的記錄。

保證乙個表中的資料匹配另乙個表中的值的參照完整性。語法:constraint  fk_dept_id   foreign key  (dept_id)  references  dept(dept_id);

5、自增約束:auto_increment

6、預設約束:default 

給定預設的值

7、檢查性約束:check 

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

示例:123

4567

89create table member(

idint(10),

phoneint(15)  unsigned   zerofill,

name    varchar(30)   notnull,

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);

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

摘自:

mysql 索引與約束 mysql索引和約束區別

一 約束 作用 是為了保證資料的完整性而實現的摘自一套機制,它具體的根據各個不同的資料庫的實現而有不同的工具 約束 這裡主要講解mysql的約束 1 非空約束 not null 指示某列不能儲存null 值 2 唯一約束 unique uk unique約束的字段,要求必須是唯一的,但null除外 ...

索引和約束的區別

constraint 約束被 db2 universal database db2 udb 用來對資料業務規則和資料完整性進行實施 維護。約束的作用範圍僅限在當前資料庫,通過檢索 資料庫目錄 和 命令方式 select from user constraints 可以檢視到約束資訊。如果想方便 快捷...

索引和約束

索引優點 1.索引使得檢索的資料的速度大大加快 2.建立索引時自動新增了唯一性約束,確保每一條資料的唯一性 3.可以加快表與表之間的鏈結,提高多表查詢的速度 4.在分組和排序子句進行資料彙總的時候,顯著減少查詢中分組和排序的時間。每張表都會有乙個rowid實體地址列,用來唯一標誌一條記錄所在物理 位...