MySQL中创建四种不同类型索引的方法

对first_name创建唯一索引uniq_idx_firstname

http://www.nowcoder.com/questionTerminal/e1824daa0c49404aa602cf0cb34bdd75

感谢评论区朋友的提醒🤝,这里严谨一下:

看大家都用的是sqlite的语法,这里简单提一下常用的关于MySQL中给字段创建四种不同类型索引的基本语法:

  1. 添加主键
ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);
// 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
  1. 添加唯一索引
ALTER TABLE tbl_name ADD UNIQUE index_name (col_list);
// 这条语句创建索引的值必须是唯一的。
  1. 添加普通索引
ALTER TABLE tbl_name ADD INDEX index_name (col_list);
// 添加普通索引,索引值可出现多次。
  1. 添加全文索引
ALTER TABLE tbl_name ADD FULLTEXT index_name (col_list);
// 该语句指定了索引为 FULLTEXT ,用于全文索引。

PS: 附赠删除索引的语法:

DROP INDEX index_name ON tbl_name; 
// 或者
ALTER TABLE tbl_name DROP INDEX index_name;
ALTER TABLE tbl_name DROP PRIMARY KEY;

PPS:评论区又有朋友提到还可以用CREATE来创建索引,的确是可行的在本题,下面给出参考答案:

CREATE UNIQUE INDEX uniq_idx_firstname ON actor (`first_name`);
CREATE INDEX idx_lastname ON actor (`last_name`);

以及CREATE INDEX的基本常用语法:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name ON tbl_name (col_name);
//该语句指定了索引可以是唯一索引、全文索引、空间索引(一种基于空间对象的空间关系排列的数据结构,比如我们常见的地图定位应用,有兴趣的朋友可以自行谷歌一下)以及普通索引。

但是要注意!CREATE INDEX 不能用于创建PRIMARY KEY(主键),更多CREATE INDEX的用法大家可自行参考官方文档进行学习:https://dev.mysql.com/doc/refman/8.0/en/create-index.html

谢谢😁

MySQL题解 文章被收录于专栏

本专栏主要对各种经典的MySQL题进行解说,希望用最易懂简洁的语言帮助大家通关MySQL。

全部评论
这四种方式是一种方式
1 回复 分享
发布于 2021-09-26 12:27
列名不应该加引号吧(mysql)
点赞 回复 分享
发布于 04-04 15:21 河南
也可以使用create吧?
点赞 回复 分享
发布于 2022-02-08 14:32

相关推荐

评论
495
61
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务