sql存儲(chǔ)過程實(shí)例詳解 存儲(chǔ)過程含有動(dòng)態(tài)SQL,與靜態(tài)SQL有什么差別?
存儲(chǔ)過程含有動(dòng)態(tài)SQL,與靜態(tài)SQL有什么差別?靜態(tài)SQL是一種內(nèi)容是固定和確定的SQL。例如,選擇*from EMP where empno=1。動(dòng)態(tài)SQL主要有兩種,一種是帶參數(shù)的SQL。例如,選
存儲(chǔ)過程含有動(dòng)態(tài)SQL,與靜態(tài)SQL有什么差別?
靜態(tài)SQL是一種內(nèi)容是固定和確定的SQL。例如,選擇*from EMP where empno=1。動(dòng)態(tài)SQL主要有兩種,一種是帶參數(shù)的SQL。例如,選擇*from EMP where empno=“一個(gè)變量或輸入值”,也就是說,這個(gè)參數(shù)是一個(gè)變量,而不是一個(gè)固定數(shù)量,即動(dòng)態(tài)SQL。另一種動(dòng)態(tài)SQL是組裝語(yǔ)句的動(dòng)態(tài)SQL,即組裝語(yǔ)句。這種現(xiàn)象經(jīng)常發(fā)生在存儲(chǔ)過程中。例如,如果頁(yè)面上有一個(gè)輸入頁(yè)面有八個(gè)空格,需要三個(gè)空格,其他空格是可選的,那么這是一個(gè)拼接語(yǔ)句。最簡(jiǎn)單的是所有其他字段都為空。也可以根據(jù)輸入的位置判斷語(yǔ)句的具體內(nèi)容。這是一個(gè)拼接語(yǔ)句。
存儲(chǔ)過程和sql語(yǔ)句有什么區(qū)別?
存儲(chǔ)過程是在大型數(shù)據(jù)庫(kù)系統(tǒng)中完成特定功能的一組SQL語(yǔ)句。編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶可以通過指定存儲(chǔ)過程的名稱并給出參數(shù)(如果存儲(chǔ)過程有參數(shù))來執(zhí)行存儲(chǔ)過程。
在再次運(yùn)行存儲(chǔ)過程之前,數(shù)據(jù)庫(kù)已分析了其語(yǔ)法和語(yǔ)法,并給出了優(yōu)化的執(zhí)行方案。
此編譯過程可以大大提高SQL語(yǔ)句的性能。
由于執(zhí)行SQL語(yǔ)句的大部分工作已經(jīng)完成,因此存儲(chǔ)過程的執(zhí)行速度非常快。