用的比较多的索引
- 主键(PRIMARY KEY),每张表一个,被定为索引的列,值不能重复。
- 唯一(UNIQUE),每张表可以有多个,被定为索引的列,值不能重复(可以有多个NULL值)。
- 普通(INDEX/KEY),每张表可以有多个,被定为索引的列,值可以重复。
索引的创建和删除
把索引看成表的一部分(类似于列),那么就可以在创建表的时候直接创建它;用修改表结构的方式删除或者添加它。
建表的时候创建索引:
create table t1(xh char(1),xm varchar(5),nl tinyint,primary key (xh),unique (xm),index (nl));
查看表结构:
删除索引:
alter table t1 drop primary key;
alter table t1 drop index xm;
alter table t1 drop index nl;
其中,因为主键唯一,故可以不指定名称。
作为唯一索引和普通索引,反正都是要被删除的索引,故没有必要再指定类型。按名称删除即可。
以上操作后,表结构为:
用修改表结构的方式添加索引:
alter table t1 add primary key (xh);
alter table t1 add unique (xm);
alter table t1 add index (nl);
查看表结构:
观察索引对列值(不重复)的影响
先录入一些记录:
尝试在各列插入重复值,观察结果:
什么可以重复,什么不可以重复,显而易见。
同样的,一张表中,除了主索引,都可以出现多个,也可以验证。
多个唯一索引:
多个普通索引:
索引基本操作结束,转P76,5.1.4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2020-11-16 java队列-营业厅
2020-11-16 队列基本操作-顺序和链式