Mysql:SQL语句:用户、权限、信息、状态、设置、复制、会话、prepare sql 等


{describe|desc} table_name [col_name --支持通配符%_]:<=> show columns from;该语句是为了兼容oracle而提供的

explain table_name:<=>describe table_name|show columns from table_name。

explain [extended|partions] select clause;    --获取语句的执行计划

use db_name;更换当前数据库



prepare prepared_statement_name from {'文本常量'|文本变量};

  • 文本可以是很多很多的单个sql语句,而不仅仅是select、insert、delete、update。
  • 文本不能是多个语句!
  • 文本可以包含以"?"表示的替换参数,注意即使替换参数可能是文本类型,也无须再文本里加入“'”括起“?”处理
  • 替换参数只能是 data_value,而不能是其他的东西


execute prepared_statement_name [using @val1 [,@var2] [,...]];

{deallocate|drop} prepare prepared_statement_name;



create {user user_name [identified by {'plain_password'| password 'hash_password'}]} [,....]

  • 新建用户本质上是向mysql.user表里插入一条记录
  • 新用户没有任何权限的
  • 用户的完全格式为:'user_name'@'host'


drop user user1 [,user2] [,...]

grant {权限类型[列_列表]}_列表
on [对象类型    --{table、procedure、function}]  对象范围--{*|*.*|db_name.*|db_name.table_name|table_name|db_name.routine_name}
to {用户[可以指定新密码]}_列表
[with {各种选项--{grant option|max_{queries|updates|connections}_per_hour count|max_user_connections count}}_列表]

  • grant可以替代create user ,而且他能够新建用户的同时,赋予权限!当grant指定了不存在的user时,根据no_auto_create_user系统变量的设置来决定当没有指定identified by 子句或子句所提供的密码为空时是否创建新的用户
  • 权限类型有一个比较庞大的集合,参考手册。特殊的:all [privileges]、super、usage、shutdown。mysql对references权限的设置尚未实现
  • 权限类型从功能上:表对象权限、其他对象权限、系统权限、辅助实用语句权限;
  • 权限类型从权限的是否隐含具有其他权限:隐含类权限、明确权限
  • 权限类型从适用的范围可分为:全局权限*.*、数据库权限db.*、表级权限db.tb.*、列级权限、存储程序权限
  • 在mysql版本5.1.6之前管理trigger需要super权限;之后只要trigger权限就可以了!
  • user_name@host_name:其中"user_name"、"hostname" 如果没有特殊字符的情况不用括起来,否则必须使用{`|'|"}括起来
  • grant指定user_name@host_name:host_name部分可以使用[%]通配符指定主机范围
  • grant指定db_name时:可以通过"\_"指定"_"通配符,也可以指定"%"通配符




rename user old_user_name to new_user_name [,....]

revoke {权限类型 [表列_列表]}_列表 on [对象类型] 对象范围 from user [,....]
revoke all privileges,grant option from user [,....]


set password [for user] = {'hash_password'|password('plain_password')|old password('plain_password')}

set    不同的场合有不同功能的set
set character set
set names
set password
set transaction isolation level
set { { local | session | @@local. | @@session. | @@ }system_var | { global | @@global. }system_var    } | user_var} = {newvalue|default}
[,.....]

  • 注意 set 变量赋值,可以使用" := "操作符,以便和其他系统postgresql、oracle等兼容
  • 使用set进行系统变量的设置 只应响新的连接、当前会话
  • mysql很多系统变量可以使用set var = default 设置到编译时的默认值,但并不总是这样!
  • 在表达式里使用系统变量时,不可以指定 全局或会话,mysql会自动从获取,会话变量优先
  • show variables总能显示系统变量,但select @@var 却不一定!
  • 当然,并不是所有的系统变量都可以在运行时进行set




show    不同的场合有不同的功能    真是太丰富了!

  1. --显示基本对象类
  2. show character set []    --显示字符集
  3. show collation []    --显示排序规则
  4. show {databases|schemas} []
  5. show tables [from db_name] []    --是"show table status [from db_name]"的简化形式
  6. show triggers [from db_name] []
  7. show profiles
  8. show privileges        --显示所有的系统权限信息
  9. show [storage] engines    --显示存储引擎
  10. show plugins
  11. show [full] events
  12. show [full] columns from table_name [from db_nmae] []
  13. show {index|indexes|keys} from table_name [from db_name]
  14. --显示定义类
  15. show create database db_name
  16. show create event event_name
  17. show create function fun_name
  18. show create procedure proc_name
  19. show create table table_name
  20. show create view view_name
  21. show create trigger trigger_name
  22. show grants for user    --显示用户权限定义
  23. show function code fun_name
  24. show procedure code proc_name
  25. --显示对象状态类
  26. show engine engine_name {status|mutex}
  27. show innodb status
  28. show procedure status []
  29. show function status []
  30. show table status [from db_name] []
  31. show scheduler status    --显示所有计划调度的状态
  32. show profile [types] [for query n] [offset n] [limit n]
  33. --显示其他信息
  34. show open tables [from db_name] []
  35. show [full] processlist    --显示服务器的连接进程
  36. show [global|session] status []
  37. show [global|session] variales []
  38. show errors [limit [offset,] row_count]        --显示错误
  39. show warnings [limit [offset,] row_count]        --显示错误
  • show中的from 可以使用in代替
  • show中的[]通常为 like '含通配符字符串' 或者 where '字符串'



flush [no_write_to_binlog|local] flush_options[,....]

  • flush主要是指示mysql情况已有cache
  • flush的选项有:logs、privileges、hosts、query cache、status、{table|tables} [table_name] [,...]、user_resources、...



reset query cache    --清除所有的结果cache


kill {connection(默认)|query} thread_id    --杀死指定连接;取消指定连接的查询操作







原文地址:https://www.cnblogs.com/jinzhenshui/p/1498757.html