{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 不同的场合有不同的功能 真是太丰富了!
- --显示基本对象类
- show character set [] --显示字符集
- show collation [] --显示排序规则
- show {databases|schemas} []
- show tables [from db_name] [] --是"show table status [from db_name]"的简化形式
- show triggers [from db_name] []
- show profiles
- show privileges --显示所有的系统权限信息
- show [storage] engines --显示存储引擎
- show plugins
- show [full] events
- show [full] columns from table_name [from db_nmae] []
- show {index|indexes|keys} from table_name [from db_name]
- --显示定义类
- show create database db_name
- show create event event_name
- show create function fun_name
- show create procedure proc_name
- show create table table_name
- show create view view_name
- show create trigger trigger_name
- show grants for user --显示用户权限定义
- show function code fun_name
- show procedure code proc_name
- --显示对象状态类
- show engine engine_name {status|mutex}
- show innodb status
- show procedure status []
- show function status []
- show table status [from db_name] []
- show scheduler status --显示所有计划调度的状态
- show profile [types] [for query n] [offset n] [limit n]
- --显示其他信息
- show open tables [from db_name] []
- show [full] processlist --显示服务器的连接进程
- show [global|session] status []
- show [global|session] variales []
- show errors [limit [offset,] row_count] --显示错误
- 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 --杀死指定连接;取消指定连接的查询操作