基础
1.变量声明
(1)会话变量
定义形式: set @变量名 = 值;
和php类似,第一次给其赋值,就算定义了;可以在编程环境(存储过程/函数/触发器)和非编程环境中使用;使用的任何场合也都带该“@”符号
set @name = 'lili';
select @name;

(2)普通变量
定义形式:declare 变量名 类型 【default 默认值】
它必须先声明(即定义),此时也可以赋值;
赋值跟会话变量一样: set 变量名 = 值;
它只能在编程环境中使用!!!
select @age:=56+78; #变量赋值并输出
2.语句块包含
mysql编程中的语句块包含符是begin end结构
[begin_label:] BEGIN
[statement_list]
END [end_label]
3.流程控制
if
if 条件 then
//代码
elseif 条件 then
//代码
else
//代码
end if
case
begin
case num
when 1 then ...
when 2 then ...
when 3 then ...
else ...
end case;
end
loop
标签名:loop
//
leave 标签名
end loop
如计算1加到n的和
create procedure getSum(IN num int)
begin
declare i int default 1;
declare s int default 0;
acc:loop
set s = s + i;
set i = i + 1;
if i > num then
leave acc;
end if;
end loop;
select s;
end$
while
while 条件 do
//代码
end while
存储过程
概念:类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现。
查看现有的存储过程
show procedure status;
语法 (delimiter 命令更改语句结束符)create procedure procedure_name (参数1,参数2,...) begin //代码 end执行: call procedure_name(var1,var2…)
参数类型 IN | OUT | INOUT
OUT类型变量用于接收数据,IN类型变量只用于传值使用,INOUT类型兼具两者特点
如:
自定义函数
create function function_name (num1 int, num2 int) returns int
begin
return num1 + num2;
end
调用 select function_name(var1,var2);
部分系统函数
coalesce(var1,var2) 如果var1的值为Null,则返回var2的值,否则返回var1的值
char_length() 返回字符的个数
length 返回字节的个数
unix_timestamp() 返回时间戳
from_unixtime(timestamp, “%Y-%m-%d”) 将时间戳转换成日期格式
curdate 返回当前日期
now 返回当前时间
date_sub(curdate(), interval 1 day) 返回前天的日期


被折叠的 条评论
为什么被折叠?



