什么是主键索引?

把主键添加索引就是主键索引,它是一种特殊的唯一索引,不允许有空值,而唯一索引(unique是允许为空值的)。指定为“PRIMARY KEY”
主键:主键是表的某一列,这一列的值是用来标志表中的每一行数据的。
注意:每一张表只能拥有一个主键

创建主键:

1.创建表的时候创建

mysql> create table test (id int(7) zerofill not null,username varchar(20),servnumber varchar(30),password varchar(20),createtime datetime,primary key (id))DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> show create table test;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                    |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (`id` int(7) unsigned zerofill NOT NULL,`username` varchar(20) DEFAULT NULL,`servnumber` varchar(30) DEFAULT NULL,`password` varchar(20) DEFAULT NULL,`createtime` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

2.直接为表添加主键索引

mysql> alter table test add primary key (id);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> show index from test;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| test  |          0 | PRIMARY  |            1 | id          | A         |           0 | NULL     | NULL   |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.03 sec)mysql> show create table test;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                    |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (`id` int(7) unsigned zerofill NOT NULL,`username` varchar(20) DEFAULT NULL,`servnumber` varchar(30) DEFAULT NULL,`password` varchar(20) DEFAULT NULL,`createtime` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

删除主键:

alter table 表名 drop primary key;

注意:在有自增的情况下,必须先删除自增,才可以删除主键

删除自增:alter table test change id id int(7) unsigned zerofill not null;

mysql> alter table test drop primary key;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> show create table test;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                               |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (`id` int(7) unsigned zerofill NOT NULL,`username` varchar(20) DEFAULT NULL,`servnumber` varchar(30) DEFAULT NULL,`password` varchar(20) DEFAULT NULL,`createtime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

mysql必备核心知识之主键索引相关推荐

  1. mysql主键索引_MySQL索引之主键索引

    在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别. 1.主键索引 主键索引,简称主键,原文是PR ...

  2. MySQL中的索引(主键索引)

    MySQL中的索引(主键索引篇) 主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值.一般是在建表的时候同时添加主键索引: 一.如何添加主键索引 修改表添加主键索引 Alter tab ...

  3. 【实施工程师之家】——mysql四种索引PRIMARY(主键索引)、INDEX(一般索引)、UNIQUE(非空索引)、FULLTEXT(全文索引)应用

    mysql四种索引PRIMARY(主键索引).INDEX(一般索引).UNIQUE(非空索引).FULLTEXT(全文索引)应用 目录 1)PRIMARY: 2)NORMAL: 3)UNIQUE: 4 ...

  4. MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...

    文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...

  5. mysql非主键索引_主键索引和非主键索引的区别

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

  6. 主键索引 or 辅助索引?一文告诉你 Mysql limit 优化时的索引选择!

    作者 | 吴海存 责编 | 徐威龙 封图| CSDN下载于视觉中国 导读: 本文主要针对limit分页时,是优先基于主键索引还是辅助索引等层面展开分析,对limit及offset的用法以及是否该用索引 ...

  7. mysql索引类型和区别是什么意思_mysql主键索引和普通索引之间的区别是什么

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

  8. mysql插入报主键冲突,解决方法主键索引重新排序

    mysql插入报主键冲突,解决方法主键索引重新排序 参考文章: (1)mysql插入报主键冲突,解决方法主键索引重新排序 (2)https://www.cnblogs.com/nizuimeiabc1 ...

  9. mysql建表语句主键索引_MySQL添加主键、索引

    查看索引 SHOW INDEX FROM  数据库表名 比如:SHOW INDEX FROM order_info; 添加索引 alter table 数据库add index 索引名称(数据库字段名 ...

最新文章

  1. vue 打印 canvas 显示空白
  2. BIOS INT 10中断功能
  3. android 查看gpio状态_GPIO子系统重要概念
  4. python中requests的用法总结
  5. js实现代码类似w3School演示效果
  6. Linux系统中用stat命令查看文件的三个时间属性
  7. numpy—np.stack、np.hstack、np.vstack
  8. 计算机科学技术专业词汇,计算机专业一些单词
  9. Atitit View事件分发机制
  10. python海词查单词
  11. 耳朵电一电焦虑失眠就好了?
  12. Android在xml文件中设置颜色透明度
  13. 爬取链家二手房交易数据
  14. Electron打包方式
  15. 芝加哥面孔数据库(CFD)的人脸模板
  16. linux路由器 性能测试工具,使用iperf测试路由器性能
  17. 矩阵正定 matlab,matlab 错误使用 chol 矩阵必须为正定矩阵
  18. matlab三维图 魔方,matlab制作魔方图片
  19. 腾讯,新浪网页打不开
  20. 新手如何入门短视频-今抖云创

热门文章

  1. lol1月8日服务器维护,lol1月8日更新内容 停机维护到几点
  2. MCS-51单片机指令系统“读-改-写”指令
  3. AJAX - XML简介、AJAX优缺点、HTTP协议
  4. 重启计算机网络连接巨慢,电脑重启后很久才能打开宽带连接怎么样解决
  5. 【MySQL】MySQL中的日期和时间函数有哪些?元宵节杭州灯光烟花秀你去看了吗?
  6. 二叉树的性质与满二叉树和完全二叉树
  7. 【转贴+排版】测度论简介——一个通往异世界的大门
  8. VSCode——修改VSCode背景图片
  9. 搜索引擎/网络蜘蛛程序源代码
  10. js 鼠标按下并移动事件