mysql约束与索引的区别

转载链接
一:约束

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

这里主要讲解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
2
3
4
5
6
7
8
9
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 值。
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中的约束索引是用于确保数据完整性和提高查询性能的两个不同的概念。 1. 约束(Constraints): 约束是用于强制实施特定规则或限制数据的条件。它们定义了对表中数据的有效性和一致性要求。常见的约束类型包括主键、唯一键、外键和检查约束。 - 主键(Primary Key):用于唯一标识表中的每一行数据,确保每行都具有唯一的标识符。 - 唯一键(Unique Key):确保列或列组合中的值唯一,但可以包含空值。 - 外键(Foreign Key):用于建立表之间的关系,确保引用其他表中存在的正确数据。 - 检查约束(Check Constraint):定义了对列中值的限制条件,只允许满足条件的值插入或更新。 2. 索引(Indexes): 索引是用于提高查询性能的数据结构。它们是按特定列或列组合创建的,以加快对表中数据的访问速度。索引可以使查询更快,但会增加插入、更新和删除操作的开销。 - B-Tree索引:最常见的索引类型,适用于等值查询、范围查询和排序操作。 - 唯一索引:类似于唯一键,确保列或列组合中的值唯一。 - 全文索引:适用于在文本数据中进行全文搜索。 - 空间索引:适用于处理空间数据类型(如地理位置)。 需要注意的是,索引是通过占用额外的存储空间来提高查询性能的,而约束是用于强制实施数据完整性的。因此,在设计数据库时需要根据具体需求和考虑权衡来选择适当的约束索引

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值