與sql有什么關系嗎?
我做了3年多的plsql開發和sql開發,這個問題很典型,我從通俗理解角度說下,以便能快速理解應用吧:
1、PL/SQL是一堆各種各樣sql的集合,把他們打成一個程序包,這個程序包運行在服務器上,所以你就知道了,運行在服務器上的數據庫后端程序(PL/SQL)運行效率很高。
plsql舉例(通俗理解:包含了一堆邏輯的一堆sql,運行在服務器端):
if (day_count = 0) and (day_count_charge = 0) then
select seq_s_checkout_log.nextval into checkoutlog_id from dual;
insert into T_S_CHECKOUT_LOG
values(checkoutlog_id,
substr(to_char(systimestamp(6),'yyyymmddHH24missff6'),0,18),
0,0,1);
select seq_s_checkout_log.nextval into checkoutlog_id from dual;
insert into T_S_CHECKOUT_LOG
values(checkoutlog_id,
substr(to_char(systimestamp(6),'yyyymmddHH24missff6'),0,18),
0,0,2);
end if;
2、sql相對plsql功能單一,比如只執行查詢,就執行更新等等。而plsql是一個程序塊,里面包含了邏輯判斷,比如:如果滿足什么條件就執行查詢操作,把查詢結果賦予一個變量,當變量值達到100后將日志計入日志表等等。
sql舉例(通俗理解:只執行插入或者更新,需要傳輸到服務器端后才能運行):
select max(nextval) from dual;
以上是從通俗案例方面的解釋,方便快速理解,感興趣加關注哦,有很多案例代碼可送。也歡迎吐槽拍磚。以下是一個plsql實際案例的業務流程圖: