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
保证列中的值符合指定的条件。
示例:
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 值。
转载于:https://www.cnblogs.com/YLQBL/p/8473248.html
mysql约束与索引的区别相关推荐
- mysql 约束 和索引_Mysql中索引和约束的示例语句
外键 查询一个表的主键是哪些表的外键 SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCE ...
- 后端开发【一大波有用知识】MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
一.索引 索引分类:主键索引.唯一索引.普通索引.组合索引.以及全文索引(elasticsearch) 主键索引 非空唯一索引,一个表只有一个主键索引:在 innodb 中,主键索引的 B+ 树包含表 ...
- mysql创建非聚集索引_一文看懂聚集索引和非聚集索引的区别
一.深入浅出理解索引结构 实际上,可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclu ...
- mysql创建非聚集索引_聚集索引和非聚集索引的区别
作者:riemann riemann.blog.csdn.net/article/details/90324846 一.深入浅出理解索引结构 实际上,可以把索引理解为一种特殊的目录.微软的SQL SE ...
- php 如何设计索引_Mysql学习浅谈mysql的索引设计原则以及常见索引的区别
<Mysql学习浅谈mysql的索引设计原则以及常见索引的区别>要点: 本文介绍了Mysql学习浅谈mysql的索引设计原则以及常见索引的区别,希望对您有用.如果有疑问,可以联系我们. 索 ...
- mysql聚集索引和非聚集索引的区别_聚集索引与非聚集索引的总结
一.索引简介 众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引.这篇文章会总结SQL Se ...
- MySQL普通索引和唯一索引的区别
文章目录 查询流程区别 更新过程区别 change buffer 索引选择 change buffer 与 redo log 对于普通索引和唯一索引的使用,对于一个开发来说,我相信更多的区别场景就是: ...
- MySQL主键、普通索引和唯一索引的区别、全文索引
1 概念区分 普通索引 V.S 唯一索引 普通索引可重复,唯一索引和主键一样不能重复. 唯一索引可作为数据的一个合法验证手段,例如学生表的身份证号码字段,人为规定该字段不得重复,那么就使用唯一索引.( ...
- Mysql InnoDB B+树索引和哈希索引的区别? MongoDB 为什么使用B-树?
B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域. B+树 B+树是为磁盘及其他存储辅助设备而设计一种平衡查找树(不是二叉树).B+ ...
最新文章
- Properties持久的属性集
- java编程笔记8 面向对象三 内部类
- Python zipfile 文件名称编码 file_name.encode(‘cp437‘).decode(‘gbk‘)
- #串口通信超时处理_【学院推荐】划重点!LabVIEW中串口参数需注意的几点
- java axis2小实例_java webservice axis2简单开发实例
- Oracle存储过程--案例
- Jafka源码粗略解读之二--关于JMX
- 【LeetCode笔记】剑指 Offer 61-. 扑克牌中的顺子 (Java、哈希表)
- 浙大计算机考研录取名单2021,2021浙大考研拟录取名单公布,初试倒数第一竟然成功逆袭!...
- 分布式系统设计理念为何这么难学?
- node.js学习之路(1)
- 查看文件md5_了解 | Mongodb 文件存储之 GridFs
- jdk lambda表达式的坑
- 数据对比,四个角度看中国公募基金的未来
- Linux logviewer的功能,基于终端的日志工具logview
- 巴厘岛游记:风吹又日晒,自由又自在
- FoxMail上配置163邮箱的方法
- Ant Design Pro从零到一(认识AntD)
- 设计模式——做软件的必学课程
- MT6735 刷机时:brom error:s ft download fail 4008
热门文章
- appinventor贪吃蛇制作步骤_旋转RGB制作指导
- 性能测试利器 - Locust框架解析
- mysql 内存表 速度_mysql查询速度。为什么用内存表查询tmp表比直接选择慢?
- python nonlocal的用法_python global和nonlocal用法解析
- linux中nfs存储权限,NFS权限管理 - 麦苗的个人空间 - OSCHINA - 中文开源技术交流社区...
- python模块与类的区别_Python类、模块、包的概念及区别
- maya中将每帧渲染成图片,再用播放器播放
- 语义分割项目:病害程度定量估算(求每类占总量比例)
- 利用CNN和迁移学习方法识别植物叶片疾病
- python集合的练习