索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。MySQL提供多种索引类型供选择:普通索引 、唯一性索引、主键索引 、全文索引等等。下面本篇文章就来给大家介绍一下主键索引和普通索引之间的区别 ,希望对你们有所帮助。

普通索引

普通索引是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建:

创建索引,例如

CREATE INDEX <索引的名字> ON tablename (列的列表);

修改表,例如

ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);

创建表的时候指定索引,例如

CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );

主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。主键索引

主键一般在创建表的时候指定,例如

CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) );

区别但是,我们也可以通过修改表的方式加入主键,例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表); ”。每个表只能有一个主键。

1、普通索引是最基本的索引类型,没有任何限制,值可以为空,仅加速查询。普通索引是可以重复的,一个表中可以有多个普通索引。

2、主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值;索引列的所有值都只能出现一次,即必须唯一。简单来说:主键索引是加速查询 + 列值唯一(不可以有null)+ 表中只有一个

mysql主键索引和普通索引之间的区别是什么相关推荐

  1. mysql主键创建非聚集索引_什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推...

    聚集索引 我们先建如下的一张表 CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` var ...

  2. mysql主键索引需要创建_mysql主键还需要建立索引吗?

    mysql主键不需要建立索引,主键具备索引的功能:当创建或设置主键的时候,mysql会自动添加一个与主键对应的唯一索引,不需要再做额外的添加.数据库管理系统对于主键会自动生成唯一索引,所以主键是一个特 ...

  3. mysql主键索引和普通索引之间的区别

    索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.MySQL提供多种索引类型供选择:普通索引 .唯一性索引.主键索引 .全文索引等等.下面本篇文章就来给大家介绍一下主键索 ...

  4. MySQL主键、普通索引和唯一索引的区别、全文索引

    1 概念区分 普通索引 V.S 唯一索引 普通索引可重复,唯一索引和主键一样不能重复. 唯一索引可作为数据的一个合法验证手段,例如学生表的身份证号码字段,人为规定该字段不得重复,那么就使用唯一索引.( ...

  5. mysql主键索引_mysql主键与索引

    一.概念: 1.主键(primary key)能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录的 ...

  6. Oracle与Mysql主键、索引及分页的区别小结

    Oracle与Mysql主键.索引及分页的区别,学习oracle的朋友可以参考下 区别: 1.主键,Oracle不可以实现自增,mysql可以实现自增. oracle新建序列,SEQ_USER_Id. ...

  7. mysql 主键索引如何创建_SQL创建索引、主键

    -- MySQL中四种方式给字段添加索引 1) # 添加主键 # ALTER TABLE tbl_name ADD PRIMARY KEY (col_list); # -- // 该语句添加一个主键, ...

  8. MySQL 主键和索引

    主键:关系数据可依赖于主键,主键在物理层面上主要有两个用途: 唯一的标识一行 因为主键可以唯一标识一行记录,所以可以确保执行数据更新.删除的时候不会出现张冠李戴的错误. 作为一个可以被外键引用的对象 ...

  9. MySQL主键索引和唯一索引区别

    MySQL主键索引和唯一索引区别 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结 ...

  10. mysql 主键 聚集索引_主键索引就是聚集索引吗?

    这个问题很刁钻! 答案是错的. 的确在mysql数据库innodb引擎里面,主键的确就是聚集索引. 但是myisam引擎里面主键也不是聚集索引. 另外在sql server中还可以显示的指定聚集索引. ...

最新文章

  1. Android开发小问题集
  2. 拿什么来衡量程序员的生产力?
  3. JAVA调用BAPI创建销售订单
  4. 带宽与流量的基本概念(更新)
  5. webAPI token验证
  6. 桁和 / Digit Sum(AtCoder-2038)
  7. PHP开发的爱情盲盒交友系统网站源码
  8. C语言 字符串大小写转换
  9. 一人网站所有的 ip地址_咸宁网站建设-网站的主要特征
  10. ubuntu中显示本机的gpu_Ubuntu下实时查看Nvidia显卡显存占用情况和GPU温度
  11. thinkcmf5调用指定分类的二级_Mybatis一二级缓存的使用和实现原理
  12. 上海市建筑工程资料管理软件
  13. 计算机思维考试题,10道思维水平测试题
  14. C#源码刷新网页 最小化托盘http get和post请求配置保存版权时间限制定时调用 单实例运行,如果已经运行则激活窗口到最前显示
  15. 爬虫爬取电影天堂电影链接
  16. win10纯净版安装教程
  17. NOIP 2015 D1 T2 信息传递
  18. Mysql基础到进阶精品视频教程附讲义文档 91课
  19. java转人工智能_[转]人工智能缩略语大全
  20. MyEclipse weblogic Deploy Location项目名称不正确解决方案

热门文章

  1. 智能颈部按摩仪设计——3.功能模式实现
  2. Linux安装Gitblit
  3. 虚拟环境中使用jupyter notebook
  4. IPv4、IPv6地址、组播地址及子网子划分详解一
  5. 怎么用计算机ping组播地址,能正常Ping通组播源地址
  6. 科技云报道:被封神的零信任,如何走下神坛?
  7. “姚期智版”L4级水上无人驾驶游船首航成功,你想去坐坐么?
  8. 李宏毅机器学习 hw2 boss baseline 解析
  9. SQL批量删除与批量插入
  10. spread spectrum 展频的工作原理