mysql>alter table test add age tinyint(2)after> mysql> desc test;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
|> | name |varchar(16) | YES | | NULL | |
| shou |char(11) | YES | |NULL | |
| age |int(4) | YES | | NULL | |
| shouji | char(11) | YES | MUL | NULL | |
+--------+-------------+------+-----+---------+-------+ 1.25查看创建的索引及索引类型等信息
mysql>mysql> show index from test\G
*************************** 1. row ***************************
Table: test
Non_unique: 1
Key_name: name_idx
Seq_in_index: 1
Column_name:> Collation: A
Cardinality: 6
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
*************************** 2. row***************************
Table: test
Non_unique: 1
Key_name: index_shouji
Seq_in_index: 1
Column_name: shouji
Collation: A
Cardinality: 6
Sub_part: 8
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
2 rows in set (0.00 sec 1.26删除name,shouji列的索引
mysql>> mysql> show index from test\G
*************************** 1. row***************************
Table: test
Non_unique: 1
Key_name: name_idx
Seq_in_index: 1
Column_name:> Collation: A
Cardinality: 6
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.00 sec) 1.27对name列的前6个字符以及手机列的前8个字符组建联合索引
alter table test add indexindex_name_shouji(name(6),shouji(8));
mysql> show index from test\G
*************************** 1. row***************************
Table: test
Non_unique: 1
Key_name: name_idx
Seq_in_index: 1
Column_name:> Collation: A
Cardinality: 6
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
*************************** 2. row***************************
Table: test
Non_unique: 1
Key_name: index_name_shouji
Seq_in_index: 1
Column_name: name
Collation: A
Cardinality: 6
Sub_part: 6
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
*************************** 3. row***************************
Table: test
Non_unique: 1
Key_name: index_name_shouji
Seq_in_index: 2
Column_name: shouji
Collation: A
Cardinality: 6
Sub_part: 8
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
3 rows in set (0.00 sec) 1.28查询手机号以136开头的,名字为oldboy的记录(次记录要提前插入)
mysql> select * from test where name='mysql'and shouji like '179%';
+------+-------+------+------+------------+
|> +------+-------+------+------+------------+
| 6 |mysql | mei | 21 | 1794225527 |
+------+-------+------+------+------------+ 1.29查询上述语句的执行计划(是否使用联合索引等)
mysql> explain select * from test wherename='oldboy' and shouji like '1%';
+----+-------------+-------+-------+-------------------+-------------------+---------+------+------+-------------+
|> +----+-------------+-------+-------+-------------------+-------------------+---------+------+------+-------------+
| 1 |SIMPLE | test | range | index_name_shouji |index_name_shouji | 32 | NULL | 1 | Using where |
+----+-------------+-------+-------+-------------------+-------------------+---------+------+------+-------------+
mysql> explain select * from test where name='oldboy' and shouji like '1%'\G
*************************** 1. row***************************
id: 1
select_type: SIMPLE
table: test
type: range
possible_keys: index_name_shouji
key: index_name_shouji
key_len: 32
ref: NULL
rows: 1
Extra: Using where
1 row in set (0.00 sec) 1.30把test的引擎改成Mysql
mysql> show create table test\G
*************************** 1. row***************************
Table: test
Create Table: CREATE TABLE `test` (
`id`int(4) DEFAULT NULL,
`name`varchar(16) DEFAULT NULL,
`shou`char(11) DEFAULT NULL,
`age`int(4) DEFAULT NULL,
`shouji`char(11) DEFAULT NULL,
KEY`name_idx` (`id`),
KEY`index_name_shouji` (`name`(6),`shouji`(8))
) ENGINE=InnoDB DEFAULT CHARSET=gbk