Mysql索引的新增與刪除總結

2021-09-10 23:03:37 字數 3524 閱讀 2019

對索引的操作做了點總結,基本手打,沒有去驗證,

如果發現錯誤,幫忙驗證一下,

或者使用時發現錯誤的地方可以指出一下,我好改正!謝謝

索引主鍵索引

外來鍵索引

唯一索引

普通索引

全文索引

多列索引,聯合索引

主鍵索引:

新增主鍵索引

1 : 

create table `user`(

`id` int not null auto_increment ,

primary key (`id`)

)engine innodb charset utf8 comment '使用者表';

或:create table `user`(

`id` int not null primary key  auto_increment 

)engine innodb charset utf8 comment '使用者表';

2 :alter table `user` add primary key ( `id` );

刪除主鍵索引

alter table `user` drop primary key (`id`);

外來鍵索引:

新增外來鍵索引

1 模擬乙個中間表, 外來鍵指向兩個表的id欄位

create table `user_pc` (

`user_id` int not null,

`pc_id` int not null,

foreign key (`user_id`) references `user`(`id`),

foreign key (`pc_id`) references `pc`(`id`)

)engine innodb charset utf8 comment '使用者與pc中間表';

2alter table `user_pc` add foreign key (`user_id`) references `user`(`id`);

alter table `user_pc` add foreign key (`pc_id`) references `pc`(`id`);

刪除外來鍵: 

alter table `tb_active` drop foreign key `fk_id`

唯一索引:

新增唯一索引

1 create table `user`(

`id` int not null primary key auto_increment ,

`id_card` varchar(18) not null,

unique key('id_card')

)engine innodb charset utf8 comment '使用者表';

2alter table `user` add unique key (`id_card`);

刪除唯一索引

alter table `user` drop unique key (`id_card`);

普通索引:

新增普通索引

1create table `user` (

`id` int not null primary key auto_increment,

`name` varchar(16) not null comment '姓名',

index(`name`)

)engine innodb charset utf8 comment '使用者表';

或create table `user` (

`id` int not null primary key auto_increment,

`name` varchar(16) not null comment '姓名',

index `index_name` (`name`)

)engine innodb charset utf8 comment '使用者表';

或create table `user` (

`id` int not null primary key auto_increment,

`name` varchar(16) not null comment '姓名',

key (`name`)

)engine innodb charset utf8 comment '使用者表';

或create table `user` (

`id` int not null primary key auto_increment,

`name` varchar(16) not null comment '姓名',

key `index_name` (`name`)

)engine innodb charset utf8 comment '使用者表';

2alter table `user` add index(`name`);

或alter table `user` add index `index_name` (`name`);

或alter table `user` add key `index_name` (`name`);

或alter table `user` add key `index_name` (`name`);

刪除普通索引:

alter table `user` drop index(`name`);

全文索引:

新增全文索引

1create table `user`(

`id` int not null primary key auto_increment,

`description` varchar(512) null default null comment '備註',

fulltext ( `description`)

)engine innodb charset utf8 comment '使用者表';

2alter table `user` add fulltext ( `description`) 

刪除全文索引:

alter table `user` drop fulltext(`description`);

多列索引(聯合索引):

新增多列索引索引

1create table `user_item`(

`id` int not null primary key auto_incremtn,

`user_id` int not null comment  '使用者id',

`item_id` int not null comment '元素id',

key `userid_itemid` (`user_id`,`item_id`) using btree

)engine innodb charset utf8 comment '使用者表';

2alter table `user_item` add index `index_name` ( `column1`, `column2`, `column3` )

刪除多列索引

alter table `user_item` drop key (`userid_itemid`); 

mysql新增刪除索引 mysql新增刪除索引

mysql show create table table test table create table table test create table table test id bigint 20 not null auto increment comment 涓婚敭 activity id ...

MySQL新增 刪除索引

應用於表建立完畢之後再新增 alter table 表名 add 索引型別 unique,primary key,fulltext,index 索引名 欄位名 普通索引 alter table table name add index index name column list 唯一索引 alte...

mysql 取消索引設定 mysql新增刪除索引

mysql show create table table test table create table table test create table table test id bigint 20 not null auto increment comment 涓婚敭 activity id ...