MySQL的約束和索引

2021-12-30 12:23:47 字數 1492 閱讀 8903

mysql的約束和索引。

一、約束:

1.非空約束 not 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) ;

示例://constraint uk_name 可以省略不寫。

//uk_name 唯一約束名;

//pk_name 主鍵約束名

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)

二、資料庫索引

作用:提高查詢速度,確保資料的唯一性

可以加速表和表之間的連線,實現表與表之間的參照完整性

使用分組和排序子句進行資料檢索時,可以顯著減少分組和排序的時間

全文檢索字段進行搜尋優化;

1.索引的種類

1.1.主鍵索引(primary key)

1.2.唯一索引(unique)

1.3.常規索引(index)

作用:快速定位特定資料

//新增乙個索引 index_name。

alter table emp add index index_name(name);

create index index_name on emp (name);

//刪除表emp中的index_emp索引。

drop index_name on emp;

alter table emp drop primary key;

1.4.全文索引(full text)

2.索引的準則:

1.索引不是越多越好;

2.不要對經常變動的資料加索引;

3.小資料量的表建議不要加索引;

4.索引一般應加在查詢條件的字段;

3.什麼時候新增索引?

在 where、order by 子句中經常使用的字段;

欄位的值是多個(例如性別欄位則不適合);

字段內容不是經常變化的,經常變化的字段,新增索引反而降低效能;

不宜過多新增索引,每新增一條索引都會占用磁碟空間;

個人了解:

儲存器、觸發器、定時器、檢視。

mysql約束和索引

1 作用 保證資料的完整性 一致性 有效性 2 約束分類 1 預設約束 default 插入記錄,不給該字段賦值,則使用預設值 1 非空約束 not null 不允許該字段的值有null記錄 3 示例 create table t2 id int not null,name varchar 15 e...

MySQL的約束和索引

一 約束 1.非空約束 not null 2.唯一約束 unique uk unique約束的字段,要求必須是唯一的,但null除外。3.主鍵約束 primary key pk 主鍵約束 not null unique 4.外來鍵約束 foreign key references 參考 fk con...

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

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