MySQL的約束和索引

2021-07-27 02:21:00 字數 1566 閱讀 1154

一、約束:

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

constraintfk_dept_id foreign key (dept_id,欄位2)

referencesdept(主表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的約束和索引

mysql的約束和索引。一 約束 1.非空約束 not null 2.唯一約束 unique uk unique約束的字段,要求必須是唯一的,但null除外。3.主鍵約束 primary key pk 主鍵約束 not null unique 4.外來鍵約束 foreign key referenc...

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

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