MySQL 索引(上)


##普通索引

# 创建表时创建索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    dprice VARCHAR(60),
    INDEX index_deptno (deptno)

);

SHOW CREATE TABLE t_dept  ;

EXPLAIN SELECT * FROM t_dept WHERE deptno=1;

DROP TABLE t_dept;


# 在现有的表上创建索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    dprice VARCHAR(60)
);

CREATE INDEX index_deptno ON t_dept (deptno);


# alter table 创建索引
ALTER TABLE t_dept  ADD INDEX index_deptno (deptno);


SHOW CREATE TABLE t_dept ;

DROP TABLE t_dept;


## 唯一索引


#创建表时唯一索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    dprice VARCHAR(60),
    UNIQUE INDEX index_deptno (deptno)
);
EXPLAIN SELECT * FROM t_dept WHERE deptno=1;

DROP TABLE t_dept;

#在现有的表中创建唯一索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    dprice VARCHAR(60)
);

CREATE UNIQUE INDEX index_deptno ON t_dept (deptno);

DROP TABLE t_dept;

# alter table 创建唯一索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    dprice VARCHAR(60)
);


ALTER TABLE t_dept ADD UNIQUE INDEX index_deptno (deptno);

DROP TABLE t_dept;


##全文索引


#创建是创建全文索引     全文索引只能在存储引擎为MyISAM的数据库表上创建
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(60),
    FULLTEXT INDEX index_loc(loc)
) ENGINE = MYISAM;

EXPLAIN SELECT * FROM t_dept WHERE deptno = 10;

DROP TABLE t_dept;


#在已存的表上创建全文索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(60)
)ENGINE = MYISAM;

CREATE FULLTEXT INDEX index_loc ON t_dept (loc);

DROP TABLE t_dept;


# ALTER TABLE 创建全文索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(60)
)ENGINE = MYISAM;

ALTER TABLE t_dept ADD FULLTEXT INDEX index_loc (loc);

SHOW CREATE TABLE t_dept;

DROP TABLE t_dept;

 

 

##多列索引


#创建表时创建多列索引

CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(60),
    INDEX index_dname_loc (dname,loc)
);

EXPLAIN SELECT * FROM t_dept WHERE dname = 'tanghui';

DROP TABLE t_dept;
COMMIT;


# 已经存在的表上创建多列索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(60)
);

CREATE INDEX index_dname_loc ON t_dept (dname,loc);

DROP TABLE t_dept;

# alter table 创建多列索引
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(60)
);

ALTER TABLE t_dept ADD INDEX index_dname_loc (dname,loc);

 

## 删除索引

DROP INDEX index_name  ON  table_name;

如:  DROP INDEX index_dname_loc ON t_dept;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值