------为表中的字段增加默认值语法--
alter table account modify income int(10) not null default '0';
------mysql哪些语句使用了索引呢?
mysql> explain select * from account where income between 6000000 and 7000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income>6000000 and income<7000000;
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| 1 | SIMPLE | account | range | income | income | 4 | NULL | 1 | Using index condition |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income>6000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income>=6000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income<6000000;
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| 1 | SIMPLE | account | range | income | income | 4 | NULL | 2 | Using index condition |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income<=6000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
可以看出,使用<号使用了索引,
< and > 也使用了索引
=号用了索引
alter table account modify income int(10) not null default '0';
------mysql哪些语句使用了索引呢?
mysql> explain select * from account where income between 6000000 and 7000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income>6000000 and income<7000000;
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| 1 | SIMPLE | account | range | income | income | 4 | NULL | 1 | Using index condition |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income>6000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income>=6000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income<6000000;
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
| 1 | SIMPLE | account | range | income | income | 4 | NULL | 2 | Using index condition |
+----+-------------+---------+-------+---------------+--------+---------+------+------+-----------------------+
1 row in set (0.00 sec)
mysql> explain select * from account where income<=6000000;
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | account | ALL | income | NULL | NULL | NULL | 6 | Using where |
+----+-------------+---------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
可以看出,使用<号使用了索引,
< and > 也使用了索引
=号用了索引