Skip to content

索引

sh
#若数据库emp_mgr存在则删除
DROP DATABASE IF EXISTS emp_mgr;

#创建数据库emp_mgr的数据
CREATE DATABASE emp_mgr CHARACTER SET utf8;

SHOW DATABASES;

#选择当前数据库为emp_mgr
USE emp_mgr;

/*6.1.2索引的创建  */
# 创建数据表dept_index时,创建单列的普通索引、唯一性索引、主键索引、全文索引
#-------------------------------------------
#字段    		类型    	索引
#-------------------------------------------
# id		 	int		primary key
# deptno		int		unique key
# dname 		varchar(20)	index
# introduction		varchar(200)	fulltext index
# ------------------------------------------

CREATE TABLE dept_index(
id INT,
deptno INT,
dname VARCHAR(20),
introduction VARCHAR(200),
PRIMARY KEY(id), #主键索引不允许起名字
UNIQUE KEY(deptno),
INDEX (dname),
FULLTEXT INDEX(introduction)
);

# 查看创建数据表dept_index的语句
SHOW CREATE TABLE dept_index;

# 创建数据表index_multi,在数据表中的id和name字段上建立索引名为multi的普通索引
#---------------------------------------
#字段    	类型    	属性
#---------------------------------------
# id		int		不为空
# name	 	varchar(20)	不为空
# score 	float
# --------------------------------------
CREATE TABLE index_multi(
id INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
score FLOAT
);


ALTER TABLE index_multi ADD INDEX multi(id, NAME);

# 查看数据表index_multi的创建信息
SHOW CREATE TABLE index_multi;

# 创建新数据表dept_index02
#-----------------------------
#字段    	类型
#-----------------------------
# id		int
# deptno	int
# dname		varchar(20)
# introduction  varchar(200)
#-----------------------------
CREATE TABLE dept_index02(
id INT,
deptno INT,
dname VARCHAR(20),
introduction VARCHAR(200)
);



# 在数据表dept_index02中的id字段上,建立一个名称为unique_id的唯一性索引
ALTER TABLE dept_index02 ADD UNIQUE KEY unique_id(id);

# 查看数据表dept_index02的创建信息
SHOW CREATE TABLE dept_index02;

# 在dept_index02表中的deptno字段和dname字段上,创建一个名称为multi_index的复合索引

ALTER TABLE dept_index02 ADD UNIQUE KEY multi_index(deptno, dname);

# 查看数据表dept_index02的创建信息
SHOW CREATE TABLE dept_index02;

# 创建数据表dept_index03
#----------------------------
#字段    	类型
#----------------------------
# id		int
# deptno	int
# dname		varchar(20)
#----------------------------
CREATE TABLE dept_index03(
id INT,
deptno INT,
dname VARCHAR(20)
);

# 在数据表dept_index03中的id字段上,创建名称为index_id的唯一性索引
ALTER TABLE dept_index03 ADD UNIQUE KEY index_id(id);

# 查看数据表dept_index03的创建信息
SHOW CREATE TABLE dept_index03;

# 在dept_index03表中的deptno字段和dname字段上,创建一个名称为multi_index的复合唯一性索引
ALTER TABLE dept_index03 ADD UNIQUE KEY multi_index(deptno, dname);

# 查看数据表dept_index03的创建信息
SHOW CREATE TABLE dept_index03;

/*6.1.3索引的查看  */
# 查看数据表dept_index 中的索引
SHOW INDEX FROM dept_index;

# 往数据表dept_index中插入数据
DESC dept_index;

INSERT INTO dept_index VALUES(1, 10, '组织部', '这是一个政府部门');

SELECT * FROM dept_index;

/*6.1.4索引的删除  */
# 查看数据表dept_index的建表语句
SHOW CREATE TABLE dept_index;

# 删除索引introduction
ALTER TABLE dept_index DROP INDEX introduction;

# 删除数据表dept_index中名称为dname的索引
ALTER TABLE dept_index DROP INDEX dname;

# 删除数据表dept_index中名称为deptno的索引
ALTER TABLE dept_index DROP INDEX deptno;

# 删除数据表dept_index中的主键索引
ALTER TABLE dept_index DROP PRIMARY KEY;

# 查看数据表dept_index的建表语句
SHOW CREATE TABLE dept_index;