解答:select user,host from mysql.user where password=…,索引一定要创建在where后的条件上,而不是select后的选择数据的列上,另外,我们要尽量选择在唯一值多的大表上的列建立索引,例如,男女性别列唯一值少,不适合建立索引。
创建索引的基本知识小结:
1、索引类似书籍的目录,会加快查询数据的速度。
2、要在表的列(字段)上创建索引。
3、索引会加快查询的速度,但是也会影响更新的速度,因为更新要维护索引数据。
4、索引列并不是越多越好,要在频繁查询的表语句where后的条件列上创建索引。
5、小表或重复值很多的列上可以不创建索引。要在大表以及重复值少的条件列上创建索引。
6、多个联合索引有前缀生效特性。
7、当字段内容前N个字符已经接近唯一时,可以对字段的前N个字符创建索引。
8、索引从工作方式区分,有主键,唯一,普通索引。
9、索引类型会有BTREE(默认)和hash(适合做缓存(内蕴数据库))等、
创建索引相关命令小结:
1、创建主键索引: alter table student change id id intprimary key auto_increment; 2、删除主键索引(主键列不能自增): alter table student drop primary key; 3、创建普通索引: alter table student add indexindex_dept(dept); 4、根据列的前n个字符创建普通索引: create index index_dept onstudent(dept(8)); 5、根据多个列创建联合普通索引: create index ind_name_dept onstudent(name,dept); 6、根据多个列的前n个字符创建联合普通索引: create index ind_name_dept onstudent(name(8),dept(10)); 7、创建唯一索引: create unique index uni_ind_name onstudent(name); 8、查看索引: desc student; show index from student; 9、删除普通索引与唯一索引: alter table student drop index index_dept; drop index index_dept on student; 10、查看表记录唯一值的数量: select count(distinct user) frommysql.user; select count(distinct (user,host)) frommysql.user;
1、增加字段语法:alter table 表名 add字段类型 其他;
练习:
首先创建一个新表
查看:
增加一个字段: mysql> alter table test add sex char(4);
查看:
在name后面增加一个age字段: mysql> alter table test add age int(4)after name;
查看:
在第一行插入字段qq: mysql> alter table test add qq varchar(15)first;
查看:
2、修改字段类型语法:alter table 表名 modify字段类型 其他;
把age字段的类型改为char(4) mysql> alter table test modify agechar(4) after name;
查看:
3、修改字段名语法:alter table 表名 change 源字段名修改后的字段名 类型 其它;
将字段age改为testage: mysql> alter table test change age testagechar(4) after name;
查看:
表中插数据
语法:insert into [( [,.. ])] values ( 值1 )[, ( 值n )]
添加id为1,名字为zzgx的数据到test表中
查看:
批量插入多条数据 mysql> insert into test(id,name) values(3,'zuma'),(4,'kaka');
查看:
删除表中内容 mysql> delete from test where id=2;
查看:
命令总结: