首页 > 代码库 > mysql_12_索引的分类_创建_删除

mysql_12_索引的分类_创建_删除

 1 USE db_book;
 2 -- 第四节:索引分类
 3 -- 1.普通索引
 4 -- 这类索引可以创建在任何数据类型中;
 5 -- 2.唯一性索引
 6 -- 使用UNIQUE参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的;
 7 -- 3.全文索引
 8 -- 使用FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上;
 9 -- 主要作用就是提高查询较大字符串类型的速度;只有MyISAM引擎支持该索引,Mysql默认引擎不支持。
10 -- 4.单列索引
11 -- 在表中可以给出单个字段创建索引,单列索引可以是普通索引,也可以是唯一性,还可以是全文索引;
12 -- 5.多列索引
13 -- 多列索引是在表的多个字段上创建一个索引。
14 -- 6.空间索引
15 -- 使用SPATIAL参数可以设置空间索引;空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率;
16 -- 只有MyISAM引擎支持该索引,Mysql默认引擎不支持。
17 
18 
19 -- 第五节:创建索引
20 -- 5.1创建表的时候创建索引
21 -- 格式:
22 -- CREATE TABLE 表名(属性名 数据类型 [完整性约束条件],
23 --                  属性名 数据类型 [完整性约束条件],
24 --                  ...
25 --                  属性名 数据类型
26 --                  [UNIQUE | FULLTEXT | SPATIAL ]INDEX KEY 
27 --                  [别名](属性名1 [(长度)][ASC |DESC])
28 --                  );
29 
30 -- 1.创建普通索引
31 CREATE TABLE t_user1(id INT,
32                     userName VARCHAR(20),
33                     password VARCHAR(20),
34                     INDEX(userName)
35                     );
36 
37 -- 2.创建唯一性索引
38 CREATE TABLE t_user2(id INT,
39                     userName VARCHAR(20),
40                     password VARCHAR(20),
41                     UNIQUE INDEX index_userName(userName)
42                     );
43 
44 -- 3.创建全文索引
45 -- 默认引擎不支持
46 
47 -- 4.创建单列索引
48 -- 1和2都是单列索引
49 
50 -- 5.创建多列索引
51 CREATE TABLE t_user5(id INT,
52                     userName VARCHAR(20),
53                     password VARCHAR(20),
54                     UNIQUE INDEX index_userName_password(userName,password)
55                     );
56 
57 -- 6.创建空间索引
58 -- 默认引擎不支持
59 
60 -- 5.2在已存在的表上创建索引
61 -- 格式:
62 -- CREATE [UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名 ON 表名 (属性名[(长度)][ASC|DESC]);
63 CREATE TABLE t_user5_2(
64                        id int PRIMARY KEY auto_increment,
65                        userName VARCHAR(20),
66                        password VARCHAR(20)
67                        );
68 
69 CREATE INDEX index_userName ON t_user5_2 (userName);-- 普通索引
70 CREATE UNIQUE INDEX index_userName2 ON t_user5_2 (userName);-- 唯一性索引
71 CREATE INDEX index_userName_password ON t_user5_2 (userName,password);-- 多列索引
72 
73 -- 5.3用ALTER TABLE语句来创建索引
74 -- 格式:
75 -- ALTER TABLE 表名 ADD[UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名 (属性名[(长度)][ASC|DESC]);
76 CREATE TABLE t_user5_3(
77                        id int PRIMARY KEY auto_increment,
78                        userName VARCHAR(20),
79                        password VARCHAR(20)
80                        );
81 
82 ALTER TABLE t_user5_3 ADD INDEX index_user (userName);-- 普通索引
83 ALTER TABLE t_user5_3 ADD UNIQUE INDEX index_user2 (userName);-- 唯一性索引
84 ALTER TABLE t_user5_3 ADD INDEX index_user_password (userName,password);-- 多列索引
85 
86 -- 第六节:删除索引
87 -- 格式:
88 -- DROP INDEX 索引名 ON 表名;
89 DROP INDEX userName ON t_user1;
90 DROP INDEX index_userName ON t_user2;
91 DROP INDEX index_userName_password ON t_user5;
92 
93 -- 删除表
94 DROP TABLE t_user1;
95 DROP TABLE t_user2;
96 DROP TABLE t_user5;
97 DROP TABLE t_user5_2;
98 DROP TABLE t_user5_3;

 

mysql_12_索引的分类_创建_删除