一、show
show databases; #显示所有数据库 select database(); 显示当前数据库
show tables; #显示所有表 必须use一个数据库后
show variables like '%..%'; #查询某变量值 %为通配符,_可替代一个字符 也可用select @@变量名查看;
status; #显示系统登录情况,可以知道本次是什么登录,tcp/ip还是socket
show indexes from emp; #显示某表所有索引
show keys from emp\G #与indexes相同
desc emp; #显示表结构(DESCRIBE)
show fields from emp; #与上面desc效果相同
SHOW COLUMNS FROM emp; #与上面desc效果相同
explain emp; #与上面desc效果相同
explain select * from emp; #显示了mysql如何使用索引来处理select语句以及连接表,分区等信息。
show events from testdb; #显示数据库testdb的所有事件
show triggers; #显示所有触发器
show create table sudent; #查看create table的建表语句
show procedure status like 'total_tax';#查看存储过程所属用户,创建时间等信息
select routine_name,routine_type from routines; #查看有哪些过程和函数
select routine_definition from routines where routine_name='total_tax'; #可以查看过程内容
show processlist; #查看目前mysql执行线程情况
kill id号; 如:kill 9; 可踢掉id为9的用户,收回全局权限后可踢掉该用户,保证用户不能再使用权限
show engines; #查看数据库引擎 8.0默认innoDB,支持Transactions
show binary logs; #查看日志列表
show master logs; #也能查看日志列表
show master status; #查看当前日志状态 flush logs; 会新打开一个日志,reset master;清空所有日志
show plugins; #查看已加载的插件情况
show warnings; #查询警告信息
show errors; #查询错误信息
当前登录状态参数查看
show status like 'comections' #查询登录次数
show status like 'Aborted_connects' #查询客户端登录失败次数
show status like 'Com_create_db'; #查询当前会话使用create database创建表的数量
查询表信息
show table status like 'city'; #查看city表的信息,注意要先use该表所属的数据库
global和session变量查看:
show variables; #查看所有变量
show session variables; #查看当前会话所有变量
show global variables; #查看所有全局变量
show variables like 'autocommit'; #查看自动提交设置,ON为自动,OFF手动
show variables like "event_scheduler"; #查看此变量值,如果为on开机就会启动event线程
show variables like "datadir"; #查mysql数据库存储目录
show variables like "socket"; #查socket目录及文件名
show variables like "port"; #查看mysql数据库端口
show variables like 'hostname'; #查看当前主机
配置变量
show variables like 'sort_buffer_size';
show variables like '%innodb_page_size%';
show variables like 'innodb%';
show variables like '%connect%';
show variables like 'innodb_buffer_pool_size'; #buffer pool设置
show variables like 'innodb_buffer_pool_chunk_size';
show variables like 'log_bin'; #查二进制log是否打开
二、select
select user(); #当前用户
select database(); #当前数据库
select now(); #当前时间
select sysdate(); #系统时间
select version(); #服务器版本
select 3+5; #显示计算结果
select 7/4; #显示计算结果
set @i=1; #设置变量@i值为1
select @i; #结果显示一列值1
select @i,(@i:=3); #结果为两列值为1,3
用户与权限相关查询:
select user,host from mysql.user; #查mysql建了哪些用户
select * from mysql.user where user='eue' and host='192.168.1.13'\G #查用户的全局权限情况
select * from mysql.db where user='eue' and host='%'\G #看用户对哪个数据库有哪些权根
select * from mysql.tables_priv where user='eue' and host='%'\G #看用户对哪个数据库哪个表有哪些权根
select * from mysql.scolumns_priv where user='eue' and host='%'\G #查用户有哪些行级权限
过程和函数查询:
select routine_name,routine_type from routines; 查看有哪些过程和函数
select routine_definition from routines where routine_name='total_tax'; 可以查看过程内容
show procedure status like 'total_tax'; 可以查看所属用户,创建时间等信息
变量查询
select @@global.sort_buffer_size; 查看全局变量,变量名必须准确,要模糊查使用:show variables like "datadir";
select @@session.sort_buffer_size; 查看当前会话变量(有的变量是全局的,查session会报错)
select @@local.sort_buffer_size; 同上
select @@sort_buffer_size; 同上
修改Global变量两种方法
SET GLOBAL sort_buffer_size=value;
SET @@global.sort_buffer_size=value;
修改session变量三种方法:(local与session同义)
SET SESSION sort_buffer_size=value;
SET @@session.sort_buffer_size=value;
SET sort_buffer_size=value;
三、其他非查询重要命令
start transaction #开启一个事务,直到commit或rollback结束
commit #提交事务
rollback #回滚事务
flush logs; #会新打开一个日志,
reset master; #清空所有日志
delimiter // #修改语句结束符
flush privileges; #刷新权限