启动服务
service mysql start
重启服务
service mysql restart
关闭服务
service mysql stop
查看所有数据库
show databases;
选择数据库
use {dbname}
查看表
show tables;
删除数据库
drop database {dbname};
查看表结构
desc {tablename}
删除表
drop table {tablename}
更改表名
alter table {tablename-before} rename {tablename-after};
排序和限制
select * from tablename [where conditon] [order by field1 [desc|asc], field2 [desc|asc], ...] [limit offset_start, row_count]
先按照field1排序,如果存在相同的记录,那么在相同的记录中按照field2排序,依此类推。显示一部分就可以用limit,offset_start表示起始偏移量,从0开始;row_count表示显示的行数。
聚合
select [field1,...,fieldn] fun_name
from tablename
[where condition]
[group by field1,...,fieldn [with rollup]]
[having condition]
- fun_name:聚合函数
- group by 进行聚合的字段
- with rollup:是否对分类聚合后的结果进行再汇总
- having:对分类后的结果再进行条件的过滤
外连接
http://blog.csdn.net/hellowheat/article/details/4207467
- 左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
- 右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
子查询
关键字有in, not in, =, !=, exists, not exists
union vs union all
union all是直接合并,union是对union all后的结果 distinct
赋予权限grant
grant select on databasename.* to 'user1'@'localhost' identified by '123';
回收权限revoke
revoke select on databasename.* from 'user1'@'localhost';
将数据库test1下的所有”表名”前缀为tmp的表都删除
select concat('drop table test1.', table_name,';') from tables where table_schema='test1' and table_name like 'tmp%';
将数据库test1下的所有存储引擎为myisam的表改为innodb
select concat('alter table test1.', table_name, ' engine=innodb;') from tables where table_schema='test1' and engine='MyISAM';
查看表t的物理文件大小
du -sh t.*