-
在使用过程中,SQLyog正常语句出现报错情况
解决方式如下
DELIMITER C R E A T E P R O C E D U R E h e l l o ( t a b l e n a m e V A R C H A R ( 20 ) ) B E G I N S E L E C T ∗ F R O M t a b l e n a m e ; E N D CREATE PROCEDURE hello(tablename VARCHAR(20)) BEGIN SELECT * FROM tablename; END CREATEPROCEDUREhello(tablenameVARCHAR(20))BEGINSELECT∗FROMtablename;END
DELIMITER;删除存储过程
drop procedure 存储过程;
查看存储过程
show create procedure 存储过程名;
使用存储过程
call 存储过程名();
函数
与存储过程相似
好处:
提高代码重用性
简化操作
减少编译次数和服务器的连接次数提高效率
区别存储过程:
存储过程:可以有0个返回,也可以有多个返回,适合批量插入,批量更新
函数:有且仅有有1个返回,适合处理数据后返回一个结果
创建语法
create function 函数名(参数列表)returns 返回类型
begin
函数体
end
注意
参数列表,包含两个部分
参数名 参数类型
函数体:肯定会有return语句,如果没有报错
如果没有return语句没有在函数体也不会报错,但不建议
return值:
函数体仅有一句话时可以省略begin end
使用delimiter语句设置结束标记
调用语法
select 函数名(参数列表)
无参有返回
create function myf1() returns int
begin
declare c int default 0;
select count(*) into c
from employees;
return c;
end
不行的话就如下写法
delimiter $$
create function myf1() returns int
begin
declare c int default 0;
select count(*) into c
from employees;
return c;
end $$
有参数类似上面
使用函数
select 函数(【参数列表】);
删除函数
drop function 函数名;
-
流程控制结构
流程控制结构
顺序结构:从上往下依次执行
分支结构:程序从两条或多条路径中选择一条去执行
循环结构:程序满足一定条件,重复执行一段代码
分支结构:
语法
if(表达式1,表达式2,表达式3)
如果表达式1成立,则函数返回表达2,否则返回表达3的值
应用:任何地方
case结构
类似与switch语句
语句
case 变量|表达式|字段
where 要判断的值 then 返回的值1;
.。。。。。。。
else 返回的值
end
情况2,类似于java的if语句
case
when 条件1 then 返回值1
when 条件2 then 返回值2
when 条件3 then 返回值3
else 返回值
end
if语句
if 条件1 then 语句;
elseif 条件 then 语句;
。。。。。。。。
end if;
应用在begin end中
循环结构
分类
while,loop,repeat
循环控制
iterate类似于 continue继续结束本次循环
leave类似于break结束于当前循环
while
【标签】while 循环条件 do
循环体;
end while【标签】
loop:
死循环,没有判断条件
语法:
loop 循环体
end loop 【标签】
repeat
先执行后判断
语法:
【标签】repeat
循环体;
until 结束循环的条件
end repeat;
-
高级MySQL
mysql内核
sql优化攻城狮
mysql服务器的优化
各种参数常量设定
查询语句优化
主从复制
软硬件升级
容灾备份
sql编程
MySQL学习笔记续完以及后续将学习
最新推荐文章于 2024-08-31 00:07:03 发布