连接数据库
>mysql -u用户名 -p密码
或者:
>mysql -u用户名 -p
Enter password: ******
用户管理
创建用户
create user 'username'@'localhost' identified by 'password';
用户授权
grant privileges on database_name.table_name to 'username'@'localhost' identified by 'password';
grant all privileges on *.* to 'username'@'localhost' identified by 'password';
flush privileges;
grant select,insert,update,delete on database_xxx.* to 'username'@'localhost' identified by 'password';
flush privileges;
修改密码
使用mysqladmin命令:
mysqladmin -u用户名 -p旧密码 password 新密码
或者,首先使用root 帐户登入MySQL, 然后执行以下命令:
UPDATE mysql.user SET password=PASSWORD('新密码') WHERE user='用户名';
FLUSH PRIVILEGES;
数据库管理
- 查看所有数据库
mysql> show databases;
- 创建数据库
mysql> create database 数据库名称;
- 创建指定字符集数据库
mysql> create database 数据库名称;
-> default character set gbk;
- 查看数据库的字符集
mysql> show create database 数据库名称;
- 删除数据库
mysql> drop database 数据库名称;
表管理
- 切换使用的数据库
mysql> use 数据库名称;
- 查看所有表
mysql> show tables;
- 创建表
mysql> create table 表名(列 列的类型,列 列的类型);
- 查看表结构
mysql> desc 表名;
- 查看表内容
SELECT * FROM table_name;
- 删除表
mysql> drop table 表名;
- 修改表的列
mysql> alter table 表名 add column 列 列的类型;
mysql> alter table 表名 drop column 列名;
mysql> alter table 表名 modify column 列名 新的类型;
mysql> alter table 表名 change column 列名 新的列名 新的类型;
增删改数据
- 插入数据
mysql> insert into 表名(列名,列名) values(值,值);
- 开启事务的情况下,delete删除的数据可以恢复,truncate删除的数据不能恢复
- 删除表中全部数据
mysql> delete from 表名;
- 删除所有满足条件的数据
mysql> delete from 表名 where 列名=值 and|or 列名=值;
- 修改表中数据
mysql> update 表名 set 列=值 where 列=值;
查询数据
- 查询指定列数据
mysql> select 列名 from 表名;
- 指定常量列(别名)
mysql> select 列名 as 别名 from 表名;
- 去重查询
mysql> select distinct 列名 from 表名;
- 按条件查询
mysql> select * from 表名 where 列名=值;
mysql> select * from 表名 where 列名=值 and 列名=值;
mysql> select * from 表名 where 列名 is null;
mysql> select * from 表名 where 列名 is not null;
>、<、>=、<=、=、<>、between and
- 查询时合并
mysql> select 列名+列名 from 表名;
mysql> select 列名+列名 as 别名 from 表名;
- 模糊查询
mysql> select * from 表名 where 列名 like '%模糊字段%';
mysql> select * from 表名 where 列名 like '模糊字段_';
通过聚合函数查询
- 查询表中数据条数
mysql> select count(*) from 表名;
- 如果列没有数据不计算
mysql> select count(列名) from 表名;
- 求平均值
mysql> select avg(列名) from 表名;
- 求最极值
mysql> select max(列名) from 表名;
mysql> select min(列名) from 表名;
- 求和
mysql> select sum(列名) from 表名;
- 排序
mysql> select * from 表名 order by 列名;
mysql> select * from 表名 where 列名=值 order by 列名;
- 指定排序格式
mysql> select * from 表名 order by 列名 asc;
mysql> select * from 表名 order by 列名 desc;
- 指定多个排序标准
mysql> select * from 表名 order by 列名 asc,列名 desc;
- 分组查询
mysql> select 列名,count(*) from 表名 group by 列名;
- 筛选分组后排序
mysql> select 列名,count(*) from 表名 where 筛选条件 group by 列名 order 列名;
- 对分组后的数据筛选
mysql> select 列名,count(*) from 表名 where 列名=值 group by 列名 having count(*)>1 order by 列名;
- 分页查询
mysql> select * from 表名 limit 开始位置,数据条数;
备份数据库
mysqldump database > backup-file.sql;
恢复数据库
mysql database < backup-file.sql;
参考