运维必会之MySQL篇 (4)

解答: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> CREATE TABLE `test` ( ->   `id` int(4) NOT NULLAUTO_INCREMENT, ->   `name` char(20) NOT NULL, ->   PRIMARY KEY (`id`) -> ) ENGINE=InnoDBDEFAULT CHARSET=latin1;

查看:

运维必会之MySQL篇


运维必会之MySQL篇


增加一个字段:

mysql> alter table test add sex char(4);

查看:

运维必会之MySQL篇


在name后面增加一个age字段:

mysql> alter table test add age int(4)after name;

查看:

运维必会之MySQL篇


在第一行插入字段qq:

mysql> alter table test add qq varchar(15)first;

查看:

运维必会之MySQL篇


2、修改字段类型语法:alter table 表名 modify字段类型 其他;
把age字段的类型改为char(4)

mysql> alter table test modify agechar(4) after name;

查看:

运维必会之MySQL篇


3、修改字段名语法:alter table 表名 change 源字段名修改后的字段名 类型 其它;
将字段age改为testage:

mysql> alter table test change age testagechar(4) after name;

查看:

运维必会之MySQL篇


表中插数据

语法:insert into [( [,.. ])] values ( 值1 )[, ( 值n )]
添加id为1,名字为zzgx的数据到test表中

mysql> insert into test(id,name)values(1,'zzgx');

查看:

运维必会之MySQL篇


批量插入多条数据

mysql> insert into test(id,name) values(3,'zuma'),(4,'kaka');

查看:

运维必会之MySQL篇


删除表中内容

mysql> delete from test where id=2;

查看:

运维必会之MySQL篇


命令总结:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzyzj.html