※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!)
【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.1007.0.0&vd_source=b287f1f4a1fa54cc438e31a0f87ef4e2
第八章:存储过程
1、WHAT ARE STORED PROCEDURES——什么是存储过程
不建议在应用代码里写语句:会让应用代码很混乱且难以维护
①在使用C#、Java或者Python开发应用
如果把Java代码和SQL混在一起,那么SQL代码介入会让应用代码很混乱和难以维护
②一些C#、Java这样的编程语言需要编译工作
在这类应用代码里写SQL查询,一旦发现需要修改其中的查询,就必须重新编译应用代码才能生效。所以每次修改SQL代码都需要重新编译或者可能重新部署应用代码
解决方法:将SQL代码储存在它应属的数据库里——存储过程或函数中
存储过程Stored Procedure:一个包含一堆SQL代码的数据库对象
存储过程Stored Procedure的优势:
①Store and organize SQL(存储和管理SQL)
在应用代码里,调用这些过程来获取或保存数据,使用存储过程来存储和管理SQL代码
②Faster execution(更快速执行)
大多数DBMS可以对存储过程里的代码做一些优化,因此存储过程里的SQL代码有时执行起来更快
③Data security(数据安全性)
取消对所有表的直接访问权限,让很多操作如插入、更新和删除数据由存储过程来完成,然后可以指定能够执行特定存储过程的某一人,从而限制用户对我们数据的操作范围(防止一些用户删除数据)
2、CREATING A STORED PROCEDURE——创建一个存储过程
把这个查询存在存储过程里
①get_clients,使用小写字母并用下划线分隔,是MySQL开发者通用的
②BEING和END关键字之间的内容成为存储过程的主体(body)
③通常创建的存储过程有好几条语句(SELECT部分),每条(包含一条)语句都需要分号终结
其他的DBMS,如SQL Server可能就不需要
DELIMITER重新定义分割符:让存储过程不会到clients时报错
$$视为新的分隔号,把所有的语句当成一个整体;
最后再用DELIMITER ;把符号还回分号
标签:数据分析,语句,存储,进阶,MySQL,参数,SQL,过程,变量 From: https://blog.csdn.net/2401_86505958/article/details/140859127