网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 2014-12-06 15:23:39

admin
管理员

mysql 索引的创建

索引的创建,可以在三个地方,创建。

第一: 创建表的时候,指定。

第二: 修改表

第三: 表创建好后,增加索引。

实例

创建表的时候创建索引

创建一个唯一索引

mysql> create table tb1 ( age int, name char(20) , index(name));
Query OK, 0 rows affected (0.46 sec)

查看一下表的结构

mysql> desc tb1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| age   | int(11)  | YES  |     | NULL    |       |
| name  | char(20) | YES  | MUL | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.03 sec)

可以看到,key 是  MUL. 创建成功。

查看一下创建的语句

mysql> show create table tb1;
+-------+--------------------------------
| Table | Create Table
+-------+--------------------------------
| tb1   | CREATE TABLE `tb1` (
  `age` int(11) DEFAULT NULL,
  `name` char(20) DEFAULT NULL,
  KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------------------------
1 row in set (0.00 sec)

这里可以看到 有个 key `name` (`name`)

第一个name是索引的名字, 第二个是表中字段。 

可以看下面的例子

mysql> create table  tb1_1 (age int , name char(20) , key `tname` (`name`));
Query OK, 0 rows affected (0.47 sec)

mysql> desc tb1_1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| age   | int(11)  | YES  |     | NULL    |       |
| name  | char(20) | YES  | MUL | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.02 sec)

可以看看创建表的语句是什么

mysql> show create table tb1_1;
+-------+--------------------------------
| Table | Create Table
+-------+--------------------------------
| tb1_1 | CREATE TABLE `tb1_1` (
  `age` int(11) DEFAULT NULL,
  `name` char(20) DEFAULT NULL,
  KEY `tname` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------------------------
1 row in set (0.00 sec)

当然这样可以创建普通的索引

mysql> create table tb1_2( age int , name char(20), key (`name`) );

给索引起个名字

 create table tb1_3( age int , name char(20), key `namex` (`name`) );


创建唯一索引: 可以使用 unique ,或者 unique index 

mysql> create table tb_2 ( age int , name char(20), unique index (name));
Query OK, 0 rows affected (0.33 sec)

mysql> create table tb_21 ( age int , name char(20), unique (name));
Query OK, 0 rows affected (0.42 sec)

mysql> create table tb_22 ( age int , name char(20), unique `xxx_name` (name));
Query OK, 0 rows affected (0.40 sec)


创建主键索引:

mysql> create table tb_3 (age int primary key );
Query OK, 0 rows affected (0.31 sec)

mysql> desc tb_3;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| age   | int(11) | NO   | PRI | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

创建全文索引

mysql> create table tb_4 ( name varchar(20) , fulltext index (name));
Query OK, 0 rows affected (0.77 sec)




ipbbs.net

离线

页脚

Powered by FluxBB