我们在处理资料时,很常遇到一个情况:每天要捞差不多的东西!
每天要下的指令其实大同小异,只是输入日期不同,
像这种重复性很高的事情,
通常会写一支预存程序处理,
除了可以节省我们语法贴来贴去的时间,还能加快一点处理速度。
建立预存程序的时候,MYSQL会先把我们下的语法编译一次,
之後每次呼叫预存程序,MYSQL都不用再编译,
就像是我们看外文书,
我们第一次看的时候,好好做中文笔记(编译),之後再看就可以对照笔记,
不用每次看时都要重新用GOOGLE翻译。
写预存程序会提到下面几个概念:
我们一步步认识这些概念,写出输入身高和体重後,可以计算出BMI的小程序。
我们之前有提到「;」对MYSQL而言,相当於逗号,
也就是MYSQL看到「;」,便会认为「这个句子结束了」,
然而,有时後我们可能需要一个段落一起执行,
而不是单句、单句分别执行。
例如我们如果写一个小段落:
「今天天气很好,很适合出去玩;但正要出门的时候就下雨了,所以待在家看电视;」
MYSQL可能读取到 「今天天气很好,很适合出去玩;」 便以为语法结束了,
於是理解成今天适合出去玩,
但事实上我们的结论是「下雨了,待在家看电视」。
防止这种状况的方法便是使用分隔符号 DELIMITER。
MYSQL会在读取到DELIMITER时,才结束读取语法。
DELIMITER使用方法是
DELIMITER $$
像这样设定之後,我们可以把文章改成
「今天天气很好,很适合出去玩;但正要出门的时候就下雨了,所以待在家看电视$$」
MYSQL就会把整段读取完。
STORED PROCEDURE预存程序通常会是一整段语法,
我们会先设定分隔符号,确保预存程序整段被执行。
DELIMITER $$
接下来加上建立预存程序的语法,预存程序语法会CREATE PROCEDURE开始,
帮预存程序命名後,会填入参数,以及参数的型别,
再用BEGIN和END把中间的语法包起来,
最後输入刚刚设定的分隔符号,
告诉MYSQL要从第一行执行到分隔符号这里。
DELIMITER $$
CREATE PROCEDURE [SP名称] ([参数名称1] [型别1],[参数名称2] [型别2])
BEGIN
[程序逻辑放这里]
END
$$
明天再解释参数是什麽,程序逻辑部分可以先想想,
之前介绍的IF写法要怎麽写,试着先用中文出来,
例如:
BMI=体重/(身高乘身高)
IF BMI小於18 显示过轻
写出来後再翻成语法看看,明天介绍罗!
<<: [知识篇]WebRTC - ICE(STUN/TURN)
>>: Day27 语法改革!零基础新手也能读懂的JS - JS30-01 Drum Kit
《30天带你上完 Google Data Analytics Certificate 课程》系列将...
Agenda 资安宣言 测试环境与工具 学习目标 技术原理与程序码 References 下期预告 ...
前言 昨天我们介绍了 undefined、null、NaN,也带到了如何将这些特别的值判断出来。 今...
这次练习的题目是做出商城中上架商品的功能 功能主要需求:谁上架了什麽商品、上架数量多少,如果商品没有...
基本的表格构成 在HTML中的表格结构是以列及栏位定义出来的。 表格会用到以下三个元素:table、...