首页 > 数据库 >MySQL使用--存储过程篇

MySQL使用--存储过程篇

时间:2022-12-20 11:06:04浏览次数:37  
标签:insert 存储 SET end -- into values MySQL


查看存储过程:

select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE'   
SHOW procedure status;


查看存储过程的创建代码:


SHOW create procedure proc_name;


调用存储过程:


CALL proc_name(参数名);


修改存储过程:


ALTER PROCEDURE pname newSQL;


删除存储过程:


DROP PROCEDURE pname;


注释:


--
/* */


创建存储过程:


格式:


CREATE PROCEDURE pname([[IN |OUT |INOUT ] 参数名 数据类形...])
IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
OUT 输出参数:该值可在存储过程内部被改变,并可返回
INOUT 输入输出参数:调用时指定,并且可被改变和返回


无参数


DELIMITER //  
CREATE PROCEDURE test()
begin
SELECT "hello world!";
end;
//
DELIMITER ;


IN参数例子


DELIMITER //  
CREATE PROCEDURE demo_in_parameter(IN p_in int)
BEGIN
SELECT p_in;
SET p_in=2;
SELECT p_in;
END;
//
DELIMITER ;


OUT参数例子


DELIMITER //  
CREATE PROCEDURE demo_in_parameter(OUT p_out int)
BEGIN
SELECT p_out;
SET p_out=2;
SELECT p_out;
END;
//
DELIMITER ;


INOUT参数例子


DELIMITER //  
CREATE PROCEDURE demo_in_parameter(INOUT p_inout int)
BEGIN
SELECT p_inout;
SET p_inout=2;
SELECT p_inout;
END;
//
DELIMITER ;


变量操作:


declare x1 varchar(5) default 'outer';   --声明变量
SET 变量名 = 表达式值 [,variable_name = expression ...]; --设置普通变量
SELECT 'Hello World' into 变量名; --设置普通变量
SET @变量名 = 表达式值 [,variable_name = expression ...]; --设置用户变量, 用户级的全局变量
SELECT 'Hello World' into @变量名; --设置用户变量


判断语句:


if var=0 then 
insert into t values(17);
else
insert into t values(18);
end if;


多分支语句:


case var  
when 0 then
insert into t values(17);
when 1 then
insert into t values(18);
else
insert into t values(19);
end case;


WHILE循环语句:


while var<6 do  
insert into t values(var);
set var=var+1;
end while;


repeat循环语句:【相当于do while】


repeat  
insert into t values(v);
set v=v+1;
until v>=5
end repeat;


LOOP循环:【无退出条件】


LOOP_LABLE:loop  
insert into t values(v);
set v=v+1;
if v >=5 then
leave LOOP_LABLE; --使用leave语句退出,相当于break或exit
end if;
end loop;


ITERATE迭代标签:

LOOP_LABLE:loop  
if v=3 then
set v=v+1;
ITERATE LOOP_LABLE; --直接跳至迭代开始处,相当于continue
end if;
insert into t values(v);
set v=v+1;
if v>=5 then
leave LOOP_LABLE;
end if;
end loop;


算术运算符:


+     加   SET var1=2+2;       4
- 减 SET var2=3-2; 1
* 乘 SET var3=3*2; 6
/ 除 SET var4=10/3; 3.3333
DIV 整除 SET var5=10 DIV 3; 3
% 取模 SET var6=10%3 ; 1


比较运算符:


>            大于 1>2 False
< 小于 2<1 False
<= 小于等于 2<=2 True
>= 大于等于 3>=2 True
BETWEEN 在两值之间 5 BETWEEN 1 AND 10 True
NOT BETWEEN 不在两值之间 5 NOT BETWEEN 1 AND 10 False
IN 在集合中 5 IN (1,2,3,4) False
NOT IN 不在集合中 5 NOT IN (1,2,3,4) True
= 等于 2=3 False
<>, != 不等于 2<>3 False
<=> 严格比较两个NULL值是否相等 NULL<=>NULL True
LIKE 简单模式匹配 "Guy Harrison" LIKE "Guy%" True
REGEXP 正则式匹配 "Guy Harrison" REGEXP "[Gg]reg" False
IS NULL 为空 0 IS NULL False
IS NOT NULL 不为空 0 IS NOT NULL True


逻辑运算符:


与 (AND)
或(OR)
异或(XOR)

 


位运算符:


|   位或
& 位与
<< 左移位
>> 右移位
~ 位非(单目运算,按位取反)



标签:insert,存储,SET,end,--,into,values,MySQL
From: https://blog.51cto.com/u_15918230/5954445

相关文章

  • python2.X编码问题梳理
    首先这些问题只有在python2.X版本出现,因为3.X版本中python环境就只有unicode类型的字符串了,即所有程序中处理的都会自动转换成unicode字符串。那么2.X......
  • MySQL使用--通用操作篇
    服务启动:netstartmysql(windows启动)"/etc/rc.d/init.d/mysqldstart"(linux启动)用户登录:mysql[mydb]-h127.0.0.1-uroot-ppassword;常用统计......
  • MySQL使用--表操作篇
    查看表描述:DESCRIBEMYTABLE;创建表:CREATETABLE[IFNOTEXISTS]表名称(列名称1数据类型[属性][索引],列名称2数据类型[属性][索引],列名称......
  • 有效软件测试 - 50条建议 - 需求阶段
    1、测试人员尽早介入尽量在需求阶段就开始介入,其好处不言而喻,尽早发现问题可以有效的降低项目风险和修复成本。让质量保障的工作贯穿整个软件开发的生命周期,有效的进行缺陷......
  • python抓网页资源小脚本
    #!/usr/bin/envpython#coding:utf-8importurllibdeffilter_src(file_name):resource_list=[]f_obj=open(file_name)forf_lineinf_obj:if'......
  • python中的编解码攻略
    正如其他语言一样,在Python的世界里也有有字符的编解码问题;有的在命令行回显时出现,有的在读取文件时出现,有的在执行命令时出现,有的在读取数据库时出现,不尽相同。注:如未特别申......
  • Jmeter获取Cookie并传递到下一个线程
    Jmeter是测试过程中会被用到的一个测试工具,我们即可用来进行压力的压测,也可以用来对接口进行功能检查,不仅仅是HTTP的结果,还有DB、TCP、FTP等等。当然它还有很多其它有用的功......
  • python PIL图片简单处理
    #!/usr/bin/envpython#-*-coding:utf-8-*-fromPILimportImagef=r'1.jpg'defresize(fn,width=None,height=None):printfnim=Image.open(fn)......
  • 通过FormData上传bolb/image/file对象
    FormData是HTML原生支持的对象,它主要用来提交表单信息,与其它表单提交不同的是,它可以提交二进制数据。比如:此前我们提交文件到服务器都需要通过form表单来完成,而现在我们就可......
  • python中telnetlib模块的使用
    python下能支持telnet的模块telnetlib是内置模块,直接import就可以了,其基本的使用方法也是比较简单的。 #encoding=utf-8defdo_telnet(Host,username,password,finish,......