mysql delimiter
delimiter:分隔符
escape character:转义符
刚才试图搞mysql的存储过程,被郁闷了一回,最简单的存储过程,只要加上begin 和end就有莫名其妙的错误。
比如
比如
CREATE PROCEDURE p()
BEGIN
SELECT * FROM T;
END;
够简单了吧?就是报错,其实是分号的问题,说的正规点叫分隔符。
应该这样
应该这样
1. delimiter // 2. CREATE PROCEDURE p() 3. BEGIN 4. SELECT * FROM T; 5. END// 6. 7. delimiter ;
第一行把分隔符改成双杠,这样到中间 FROM T的时候mysql不会认为SQL命令已经结束了;
第七行把分隔符再改回来,不然以后不习惯。
特别提示
某一些MYSQL中的特殊字符需要用转义字符才能插入数据库,否则产生意料之外的结果。
下面的特殊字符需要在输入时加反斜线符号开头
输入单引号需要:\'
输入双引号需要:\''
输入反斜杠:\\
输入回车符:\r
输入换行符:\n
输入制表符:\tab
输入退格符:\b
在插入这些特殊字符到数据库之前一定要进行转义处理
最近看了看mysql的procedure的编写,记录一下:
先说delimiter:
delimiter是定界符的意思,表示一条语句的中介,或一个命令的终结,在默认情况下是“;”——分号。
一般在编写procedure之前需要将delimiter设置成其他符号,例如:“//”,这是因为在procedure中一般都不止一条语句,而语句后需要用“;”结束,所以先设置成其他符号。记住,在编写完procedure之后重新设回来。
用法:
delimiter //
查看procedure的信息:
show procedure status:用来查看整个mysql中的存储过程的信息;
show create procedure procedureName;来查看名字为procedureName的存储过程的详细信息(需选中数据库);
创建简单的procedure:(已经将delimiter设置成了“//”)
create procedure procedureName()
begin
select * from youTableName;
end//
这样就创建好了一个procedure,现在就可以通过call procedureName();来调用这个存储过程了。
进一步学习procedure之前先要稍微了解一些procedure的一些简单语法:
在正式编写procedure之前需要熟悉一下procedure的一些简单语法:
1.区块定义,常用
begin
......
end;
也可以给区块起别名,如:
lable:begin
...........
end lable;
可以用leave lable;跳出区块,执行区块以后的代码
2.条件语句
if 条件 then
statement
else
statement
end if;
3.循环语句
(1).while循环
[label:] WHILE expression DO
statements
END WHILE [label] ;
begin
......
end;
也可以给区块起别名,如:
lable:begin
...........
end lable;
可以用leave lable;跳出区块,执行区块以后的代码
2.条件语句
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
3.循环语句
(1).while循环
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
(2).loop循环
[label:] LOOP
statements
END LOOP [label];
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
(3).repeat until循环
[label:] REPEAT
statements
UNTIL expression
END REPEAT [label] ;
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![mysql <wbr>编写 <wbr>procedure学习 mysql <wbr>编写 <wbr>procedure学习](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)