Mysql索引的添加与删除总结
对索引的操作做了点总结,基本手打,我基本没有去验证,
如何发现错误,帮忙验证一下,
或者使用时发现错误的地方可以指出一下,我好改正!谢谢
索引
主键索引
外键索引
唯一索引
普通索引
全文索引
多列索引,联合索引
主键索引:
添加主键索引
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中间表';
2
ALTER 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 '用户表';
2
ALTER TABLE `user` ADD UNIQUE KEY (`id_card`);
删除唯一索引
ALTER TABLE `user` DROP UNIQUE KEY (`id_card`);
普通索引:
添加普通索引
1
CREATE 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 '用户表';
2
ALTER 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`);
全文索引:
添加全文索引
1
CREATE TABLE `user`(
`id` int NOT NULL PRIMARY KEY AUTO_INCREMENT,
`description` VARCHAR(512) NULL DEFAULT NULL COMMENT '备注',
FULLTEXT ( `description`)
)engine innodb charset utf8 comment '用户表';
2
ALTER TABLE `user` ADD FULLTEXT ( `description`)
删除全文索引:
ALTER TABLE `user` DROP FULLTEXT(`description`);
多列索引(联合索引):
添加多列索引索引
1
CREATE 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 '用户表';
2
ALTER TABLE `user_item` ADD INDEX `index_name` ( `column1`, `column2`, `column3` )
删除多列索引
ALTER TABLE `user_item` DROP KEY (`userId_itemId`);
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解