Mysql:SQL語句:使用者、許可權、資訊、狀態、設定、複製、會話、prepare sql 等

來源:互聯網
上載者:User

{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    --殺死指定串連;取消指定串連的查詢操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.