sql编程

基础

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) 返回前天的日期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值