mysql索引

索引分类
1.普通索引index :加速查找
2.唯一索引
    主键索引:primary key :加速查找+约束(不为空且唯一)
    唯一索引:unique:加速查找+约束 (唯一)
3.联合索引
    -primary key(id,name):联合主键索引
    -unique(id,name):联合唯一索引
    -index(id,name):联合普通索引
4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
5.空间索引spatial :了解就好,几乎不用

创建/删除索引的语法

1 #方法一:创建表时
 2       CREATE TABLE 表名 (
 3                 字段名1  数据类型 [完整性约束条件…],
 4                 字段名2  数据类型 [完整性约束条件…],
 5                 [UNIQUE | FULLTEXT | SPATIAL ]   INDEX | KEY
 6                 [索引名]  (字段名[(长度)]  [ASC |DESC]) 
 7                 );
 8 
 9 
10 #方法二:CREATE在已存在的表上创建索引
11         CREATE  [UNIQUE | FULLTEXT | SPATIAL ]  INDEX  索引名 
12                      ON 表名 (字段名[(长度)]  [ASC |DESC]) ;
13 
14 
15 #方法三:ALTER TABLE在已存在的表上创建索引
16         ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATIAL ] INDEX
17                              索引名 (字段名[(长度)]  [ASC |DESC]) ;
18                              
19 #删除索引:DROP INDEX 索引名 ON 表名字;
创建索引
    -在创建表时就创建(需要注意的几点)
    create table s1(
    id int ,#可以在这加primary key
    #id int index #不可以这样加索引,因为index只是索引,没有约束一说,
    #不能像主键,还有唯一约束一样,在定义字段的时候加索引
    name char(20),
    age int,
    email varchar(30)
    #primary key(id) #也可以在这加
    index(id) #可以这样加
    );
    -在创建表后在创建
    create index name on s1(name); #添加普通索引
    create unique age on s1(age);添加唯一索引
    alter table s1 add primary key(id); #添加住建索引,也就是给id字段增加一个主键约束
    create index name on s1(id,name); #添加普通联合索引
2.删除索引
    drop index id on s1;
    drop index name on s1; #删除普通索引
    drop index age on s1; #删除唯一索引,就和普通索引一样,不用在index前加unique来删,直接就可以删了
    alter table s1 drop primary key; #删除主键(因为它添加的时候是按照alter来增加的,那么我们也用alter来删)
 
 
posted @ 2021-01-07 15:10  至疾  阅读(116)  评论(0)    收藏  举报