系统变量
- 系统变量
查看系统变量:show variables 【like ‘version%’】;
查询系统变量:select @@变量名;
修改系统变量:分为两种修改方式
局部修改(会话级别):只针对当前自己客户端当次连接有效
基本语法:set变量名 = 新值 ;
全局修改:针对所有的客户端,永久有效(正在连接的客户端无效)
基本语法:set global 变量名 = 值;||set @@global.变量名 = 值;
- 会话变量(只针对当前用户有效)
- 定义用户变量(set @变量名 := 值;)——专用的赋值符号:=
- Mysql是专门存储数据的,允许将数据从表中去除存储到变量中,查询得到的数据必须只能是一行数据。
- 赋值且查看赋值过程:select @变量1 := 字段1,@变量2 := 字段2 from 数据表 where 条件;
- 只赋值,不看过程:select 字段1,字段2.. from 数据源 where条件 into@变量1,@变量2..
- 局部变量
- 作用范围:begin与end之间,在语句块里用declare语句进行局部变量的定义
- 局部变量declare 语句出现的位置一定是在begin和end之间(begin和end是在大型语句块中使用的:函数/存储过程/触发器)
- 声明语法:declare 变量名 数据类型 【属性】
- If分支
- 两种基本用法
- 放在select中,用作条件判断:if(条件,为真结果,为假结果)
- 用在复杂的语句块中(函数/存储过程/触发器)-使用较多
- 两种基本用法
If 条件表达式 then
满足条件要执行的语句;
end if;
-
-
- 复合语法:
- if
- 复合语法:
-
If 条件表达式 then满足条件要执行的语句;
Else 不满足条件要执行的语句;
If 条件表达式 then 满足条件要执行语句 end if
-
-
-
- Case ..when
-
-
Case 表达式
When 条件1 then 结果1
When 条件2 then 结果2
Else 结果
End
-
-
-
- While循环
-
-
基本语法:
While 条件 do
要循环的代码;
End while;
- 结构标识符:为某些特定的结构进行命名,然后为的时在某些地方使用
标识名:while 条件 do
循环体
End while 【标识名】;
- 结构标识符
Iterate:迭代,就是以下代码不执行,重新开始循环continue()
Leave:离开,整个循环终止(break)
标识名字:while 条件 do
IF 条件判断 then
循环控制;
Iterate/leave 标识名字;
End if;
循环体
End while【标识名字】
- 函数
- 字符串函数
- Char_length():判断字符串的字符数
- Length():判断字符串的字节数(与字符集)
- Concat():连接字符串
- Instr():判断目标字符串是否存在,存在就返回位置,不存在返回0
- Lcase():全部小写
- Left():从左开始截取,指导指定位置(如果位置超过长度,截取所有)
- Itrim():消除左边对应的空格
- Mid():从中间指定位置开始截取,如果长度不指定,直接到最后。
- 时间函数
- Now():韩慧当前时间,日期 时间
- Curdate():返回当前日期
- Curtime():返回当前时间
- Darediff():判断两份日期之间的天数差距,参数日期必须使用字符串格式(用引号)
- Date_add(日期,interval 时间数字 type):进行时间的增加——type:day/hour/minute/second
- Unix_timestamp():获取时间戳
- From_unixtime():将指定时间戳转换成对应的日期时间格式
- 数学函数
- Abs():绝对值
- Ceiling():向上取整
- Floor():向下取整
- Pow():求指数
- Rand():获取一个随机数(0-1之间)
- Round():四舍五入函数
- 其他函数
- Md5():对数据进行md5加密()
- Version():获取版本号
- Database():显示当前数据库
- UUID():生成一个唯一标识符(自增长):自增长是单表唯一,UUID是整库(数据唯一同时空间唯一)
- 自定义函数
- 包含的要素:function关键字,函数名,参数(形参和实参【可选】),确认函数返回值类型,函数体,返回值
- 基本语法:
- 字符串函数
--修改语句结束符
Create function 函数名(形参)return 返回值类型
Begin
--函数体
Return 返回值数据;
--数据必须与节后中定义的返回值类型一致
End
修改语句结束符(delimiter ;)
调用函数:select 函数名(实参列表);
删除函数:drop function 函数名;
注函数内部不能使用select指令
变量作用域: