一:限制
作用:是為了保證資料的完整性而實作的一套機制,它具體的根據各個不同的資料庫的實作而有不同的工具(限制);
這裡主要講解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值。