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...