# MySQL 中文速查表
# 连接服务器
使用 mysql 客户端工具连接 MySQL 服务器的命令行如下:
mysql [-h host_name] [-P port_num] [-u user_name] [-p] [-D db_name]
- host_name 表示服务器主机名,默认为本机;
- port_num 表示 MySQL 服务端口,默认为 3306;
- user_name 表示用户名,默认为当前操作系统用户;
- -p 提示输入密码;db_name 表示要连接的数据库。
# 创建用户
使用CREATE USER语句创建一个用户:
CREATE USER [IF NOT EXISTS] user_name@host IDENTIFIED BY 'auth_string';
# 导入导出数据
mysqldump -h hostname -u username -p database_name -P port > file.sql # 导出数据库
mysql -u username -p database_name < file.sql # 导入数据库
SHOW PROCESSLIST; # 显示当前正在运行的查询
# 用户权限
CREATE USER 'user'@'host'; # 创建用户
DROP USER 'user'@'host'; # 删除用户
GRANT ALL PRIVILEGES ON base.* TO 'user'@'host' IDENTIFIED BY 'password'; # 授予使用密码访问base数据库下所有表的所有权限
GRANT SELECT, INSERT, DELETE ON base.* TO 'user'@'host' IDENTIFIED BY 'password'; # 授予使用密码访问base数据库下所有表的查询,插入,删除权限
GRANT ALL PRIVILEGES ON base.* TO 'user'@'host' WITH GRANT OPTION; # 授予数据库的**所有**权限
REVOKE ALL PRIVILEGES ON base.* FROM 'user'@'host'; # 删除base数据库的所有权限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host'; # 删除**所有**数据库的权限
FLUSH PRIVILEGES; # 刷新权限
# 如果您直接使用INSERT,UPDATE或DELETE之类的语句修改授权表,请使用** only **。
# 清空数据库
获取所有清空表数据sql语句 drop table 删除 delete from table
# 生成清空所有表的SQL
select concat('truncate table ',table_name,';') from information_schema.TABLES where table_schema='database';
# 生成删除所有表的SQL
select concat('drop table ',table_name,';') from information_schema.TABLES where table_schema='database';
# delete , drop 和truncate 区别
- delete 每次删除一行,都在事务日志中为所删除的每行记录一项。产生rollback,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发,如果删除大数据量的表速度会很慢。
- delete 删除表中数据而不删除表的结构(定义),同时也不释放空间。
- truncate 只能操作表,将表中数据全部删除,在功能上和不带where子句的delete语句相同
- delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除
- delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚