索引和约束的区别(mysql)

2020-11-11  本文已影响0人  darkness605

摘自:https://www.cnblogs.com/YLQBL/p/8473248.html

一:约束
作用:是为了保证数据的完整性而实现的摘自一套机制,它具体的根据各个不同的数据库的实现而有不同的工具(约束);

这里主要讲解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

保证列中的值符合指定的条件。

示例:

1.   create table member(
2.       id      int(10),
3.       phone   int(15)  unsigned   zerofill,
4.       name    varchar(30)   not   null,
5.       constraint   uk_name   unique(name),
6.       constraint   pk_id     primary key (id),
7.       constraint   fk_dept_id   foreign key (dept_id,字段2)
8.       references  dept(主表1)(dept_id)
9.          );

//constraint uk_name 可以省略不写。uk_name 唯一约束名称;

//pk_id 主键约束名称;

//fk_dept_id 外键约束名称

二:索引

作用:快速定位特定数据,提高查询效率,确保数据的唯一性,快速定位特定数据;可以加速表和表之间的连接,实现表与表之间的参照完整性,使用分组和排序语句进行数据检索时,可以显著减少分组和排序的时间全文检索字段进行搜索优化;

索引的种类:

1、主键索引(primary key);

2、唯一索引(unique);

3、常规索引(index);

4、全文索引(full text);

总结:约束是为了保证表数据的完整性,索引是为了提高查询效率,两者作用不一样!其次种类也不一样。

上一篇下一篇

猜你喜欢

热点阅读