• 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    --杀死指定连接;取消指定连接的查询操作







  • 相关阅读:
    10.13 新版本go on~
    9.30 总结一下九月呗
    9.25 学习下日期加减
    9.22 迎难而上不要怂!
    9.22 Sans-serif VS Serif
    9.22 keep studying
    【LeetCode刷题】最长同值路径:妙解
    【LeetCode刷题】机器人走路最大距离:妙解
    【LeetCode刷题】不使用+-的加减法:妙解
    【LeetCode刷题】NIM游戏:妙解
  • 原文地址:https://www.cnblogs.com/jinzhenshui/p/1498757.html
Copyright © 2020-2023  润新知