一:約束
作用:是為了保證資料的完整性而實現的摘自一套機制,它具體的根據各個不同的資料庫的實現而有不同的工具(約束);
這裡主要講解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(
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);
總結:約束是為了保證表資料的完整性,索引是為了提高查詢效率,兩者作用不一樣!其次種類也不一樣。
摘自:
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實體地址列,用來唯一標誌一條記錄所在物理 位...