一、数据库操作

1.1 创建数据库语法

创建名称为“testdb”数据库,并设定编码集为utf8

create database if not exists testdb default charset utf8 collate utf8_general_ci;

1.2 删除数据库语法

删除名称为“testdb”数据库

drop database testdb;

二、用户操作

2.1 新建用户

创建了一个名为:test 密码为:1234 的用户

create user 'test'@'localhost' identified by '1234';

注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

2.2 查询用户

查询用户

select user,host from mysql.user;

2.3 删除用户

删除用户“test”

drop user test@localhost ;

或者

delete from mysql.user where user='test';

若创建的用户允许任何电脑登陆,删除用户如下

drop user test@'%';

2.4 更改密码

方法1,密码实时更新;修改用户“test”的密码为“1122”

set password for test =password('1122');

方法2,需要刷新;修改用户“test”的密码为“1234”

update mysql.user set password=password('1234') where user='test'

方法3,服务器上访问改密码

set password = password('19920503');
alter user 'root'@'localhost' password expire never;
flush privileges;

2.5 查看用户权限

查看用户“test”

show grants for test;

2.6 用户分配权限

授予用户test通过外网IP对数据库“testdb”的全部权限

grant all privileges on 'testdb'.* to 'test'@'%' identified by '1234';

授予用户“test”通过外网IP对于该数据库“testdb”中表的创建、修改、删除权限,以及表数据的增删查改权限

grant create,alter,drop,select,insert,update,delete on testdb.* to test@'%';

2.7 取消用户权限

取消用户所有数据库(表)的所有权限

revoke all on . from tester;

2.8 快速脚本

创建数据、创建用户,并分配权限

create database fb_quartz default character set utf8 collate utf8_general_ci;
create user 'fb'@'%' identified by 'febs#123';
create user 'fb'@'localhost' identified by 'febs#123';
grant all privileges on fb_quartz.* to 'fb'@'%' identified by 'febs#123';
grant all privileges on fb_quartz.* to 'fb'@'localhost' identified by 'febs#123';
flush privileges;

三、其他

3.1 表空间回收

1、drop table table_name 立刻释放磁盘空间 ,不管是 InnoDB和MyISAM

2、truncate table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM 。
 truncate table其实有点类似于drop table 然后create。只不过这个create table 的过程做了优化,比如表结构文件之前已经有了等等,就不需要重新再搞一把。所以速度上应该是接近drop table的速度。

3、对于delete from table_name  删除表的全部数据
 对于MyISAM 会立刻释放磁盘空间 (应该是做了特别处理,也比较合理);     InnoDB 不会释放磁盘空间

4、对于delete from table_name where xxx带条件的删除
 不管是innodb还是MyISAM都不会释放磁盘空间。

5、delete操作以后 使用optimize table table_name 会立刻释放磁盘空间。不管是InnoDB还是MyISAM 。
 所以要想达到清理数据的目的,请delete以后执行optimize table 操作。

6、delete from表 以后虽然未释放磁盘空间,但是下次插入数据的时候,仍然可以使用这部分空间