与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实际案例的业务流程图: