什么是储存过程?
存储和管理sql代码,相当与把这些sql代码保存在一个文件中,方便使用
创建一个储存过程
delimiter $$create procedure get_invoice_with_balance()beginselect*,(invoice_total - payment_total) AS balanceFROM invoiceswhere (invoice_total - payment_total) > 0 ;end $$delimiter ;
delimiter—定界符
为了将代码打包给mysql,而不是一句一句的执行,需要在END上一句末加上 ; 分割符
同时在CREATE PROCEDURE上加上delimiter ,同时END后也需要加上
PROCEDURE——程序,相当于创建一个函数
当要引用这个procedure时,使用语句
call sql_invoicing.get_invoice_with_balance();
使用mysql控制台创建储存过程
在导航面板,点击store procedure →create· procedure
这个不用担心分隔符的问题
反引号的目的时防止与SQL关键字的冲突
删除储存过程
drop procedure get_balance;
便于后续的更改
drop procedure get_balance;delimiter $$create procedure get_balance()beginenddelimiter ;
参数Parameters
在储存过程后的括号中添加参数,第一个代表参数名,第二个代表餐宿类型
delimiter $$CREATE PROCEDURE get_invoice_by_client(p_client_id int)BEGINSELECT*FROM invoices iWHERE client_id = p_client_id;END $$delimiter ;
未完待续
这章有点小难,我先跳过了,先给自己留个印象,后面遇到了再来补吧

