mysql总结(2)-索引

mysql命令学习总结(数据库版本:8.0.21)

在mysql客户端工具中打开mysql命令:以navicat15为例, 新建查询执行以下语句

索引注意:
在索引列上使用函数,会使索引失效

1、创建查看普通索引
-- 创建表时创建普通索引
CREATE TABLE t_dept(
    deptno INT auto_increment COMMENT '部门编号',
    dname VARCHAR(20) COMMENT '部门名称',
    loc VARCHAR(40) COMMENT '部门所在地',
    INDEX indx_deptno(deptno)
)ENGINE=INNODB DEFAULT charset=utf8 COMMENT '部门表'

-- 添加测试数据
INSERT INTO t_dept(dname, loc)VALUES('市场部','建材城东里森林大第小区居委会');
INSERT INTO t_dept(dname, loc)VALUES('技术部','建材城东里森林大第小区南区居委会');
INSERT INTO t_dept(dname, loc)VALUES('质量部','建材城东里森林大第小区北区居委会');

-- 给表t_dept增加主键
ALTER TABLE t_dept MODIFY COLUMN deptno INT PRIMARY KEY auto_increment COMMENT '部门编号'

-- 查看索引是否创建成功
SHOW CREATE TABLE t_dept;

-- 检查索引是否被使用
EXPLAIN
    SELECT * FROM t_dept WHERE deptno = 1;
    
-- 删除索引
DROP INDEX indx_deptno ON t_dept;


-- 在已存在的表上创建普通索引
create index idx_deptno on t_dept(deptno);

-- 通过sql语句Alter table 创建普通索引
ALTER TABLE t_dept 
ADD INDEX idx_deptno(deptno);

2、创建查看唯一索引
-- 创建表时创建唯一索引
CREATE TABLE t_dept(
    deptno int auto_increment PRIMARY KEY COMMENT '部门编号',
    dname VARCHAR(20) COMMENT '部门名称',
    loc VARCHAR(40) COMMENT '部门地址',
    UNIQUE INDEX idx_deptno(deptno)
)ENGINE=INNODB DEFAULT charset=utf8 COMMENT '部门表'

-- 在已存在的表上创建唯一索引
CREATE UNIQUE INDEX idx_deptno ON t_dept(deptno);

-- 通过sql语句Alter table创建唯一索引
ALTER TABLE t_dept 
ADD UNIQUE INDEX idx_deptno(deptno);


3、创建查看全文索引
-- 创建表时创建全文索引
CREATE TABLE t_dept(
    deptno INT auto_increment PRIMARY KEY COMMENT '部门编号',
    dname VARCHAR(20) COMMENT '部门名称',
    loc VARCHAR(40) COMMENT '部门位置',
    FULLTEXT INDEX idx_full_loc(loc)
)ENGINE=INNODB DEFAULT charset=utf8 COMMENT '部门表'

-- 在已存在的表上创建全文索引
CREATE FULLTEXT INDEX idx_ful_loc
ON t_dept(loc);

-- 通过sql语句Alter table创建全文索引
ALTER TABLE t_dept 
ADD FULLTEXT INDEX idx_ful_loc(loc);

4、创建和查看多列索引
--创建表时创建多列索引
CREATE TABLE t_dept(
    deptno INT auto_increment PRIMARY KEY COMMENT '部门编号',
    dname VARCHAR(20) COMMENT '部门名称',
    loc VARCHAR(40) COMMENT '部门位置',
    KEY idx_dname_loc(dname, loc)
)ENGINE=INNODB DEFAULT charset=utf8 COMMENT '部门表'

-- 在已存在的表上创建多列索引
CREATE INDEX idx_dname_loc ON t_dept(dname, loc);

-- 通过sql语句Alter table创建多列索引
ALTER TABLE t_dept
ADD INDEX idx_dname_loc(dname,loc);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值