其他方法
| bin(x) | 返回 x 的二进制编码 | 
| binary(s) | 将字符串 s 转换为二进制字符串 | 
| cast(x AS type) | 转换数据类型 | 
| coalesce(expr1, expr2, ...., expr_n) | 返回参数中的第一个非空表达式(从左向右) | 
| connection_id() | 返回唯一的连接 id | 
| conv(x,f1,f2) | 返回 f1 进制数变成 f2 进制数 | 
| convert(s USING cs) | 函数将字符串 s 的字符集变成 cs | 
| current_user() | 返回当前用户 | 
| database() | 返回当前数据库名 | 
| if(expr,v1,v2) | 如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2 | 
| isNull(expression) | 判断表达式是否为 NULL | 
| last_insert_id() | 返回最近生成的 auto_increment 值 | 
| nullIf(expr1, expr2) | 比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL ,否则返回 expr1 | 
| session_user() | 返回当前用户 | 
| system_user() | 返回当前用户 | 
| user() | 返回当前用户 | 
| version() | 返回数据库的版本号 | 
| json_object() | 将键值对转换为 json 对象 | 
| json_array() | 将值转换为 json 数组 | 
| json_extract() | 从 json 字符串中提取指定的值 | 
| json_contains() | 检查一个 json 字符串是否包含指定的值 | 
| row_number() | 为查询结果中的每一行分配一个唯一的数字 | 
| rank() | 为查询结果中的每一行分配一个排名 | 
数据操作语句| any | 任何(用于子查询) |
| call | 储存以前创建的过程(具体没看懂) | 
| delete | 删除并返回删除的行 | 
| do | 执行表达式,但没有返回值。也就会快一点而已,用于 release_lock 比较爽 | 
| except | 除去后面的。包含在前且不存在于后面表中 | 
| handler | 对表储存引擎接口 | 
| import | 从别处导入表 | 
| insert | 插入数据 | 
| into | select.. into .. 储存为变量或写入文件 | 
| intersect | 包含在两个表中相同的数据 | 
| load | 加载数据 | 
| replace | 替换数据 | 
| some | 一些(用于子查询) | 
| update | 更新 | 
| union | 将多个查询块合并到一个集合中去 | 
| values | 返回一组或多行座位表格 | 
| with | 子句包含。每一个子句可以是饮用以访问相应的结果集 | 
复杂语句
begin end
用于编写复杂语句、可以嵌套。
语句标签
在用 begin 、 loop 、 repeat 、 while 时可以使用 label1 来标记以在 end 的时候不会出现嵌套混乱。
声明变量 declare
生命语句仅允许出现在 begin .. end 语句,且必须在最前面。
条目陈列
使用 case () when .. then .. end case;
判断
使用 if .. then .. elseif .. then .. else .. end if ;
迭代
iterate ,仅用于 loop 、 repeat 、 while 中。
离开循环
leave 用于推出流结构。
循环结构
loop .. end loop;
重复语句
repeat ... until ...end repeat;
返回语句
return ;
while 循环
while .. do ... end while; 仅当条件为 true 时执行
游标
游标声明必须在处理程序之前,并且在变量和条件声明之后。