一、簡答題
1.請解釋什麼是存儲過程?
2.請列舉使用存儲過程的益處。
3.請簡述遊標在存儲過程中的作用。
4.請簡述存儲過程與存儲函數的區別。
二、編程題
在數據庫db_test中創建一個存儲過程,用於實現給定表content中一個留言人的姓名即可修改表content中該留言人的`電子郵件地址爲一個給定的值。
【參考答案】
一、簡答題
1.存儲過程是一組爲了完成某特定功能的SQL語句集,其實質上就是一段存放在數據庫中的代碼,它可以由聲明式的SQL語句(如CREATE、UPDATE和SELECT等語句)和過程式SQL語句(如IF-THEN-ELSE控制結構語句)組成。
2.略。可參考第11章11.1節內容。
3.遊標是一個被SELECT語句檢索出來的結果集。在存儲了遊標後,應用程序或用戶就可以根據需要滾動或瀏覽其中的數據。
4.存儲函數與存儲過程之間存在這樣幾點區別:
(1)存儲函數不能擁有輸出參數,這是因爲存儲函數自身就是輸出參數;而存儲過程可以擁有輸出參數。
(2)可以直接對存儲函數進行調用,且不需要使用CALL語句;而對存儲過程的調用,需要使用CALL語句。
(3)存儲函數中必須包含一條RETURN語句,而這條特殊的SQL語句不允許包含於存儲過程中。
二、編程題
在MySQL命令行客戶端輸入如下SQL語句即可實現:
mysql>USE db_test;
Database changed
mysql>DELIMITER$$
mysql>CREATE PROCEDURE sp_update email(IN USer_name VARCHAR(50),IN e_mail VARCHAR(50))
一>BEGIN
一> UPDATE content SET email=e_mail WHERE username=user_name;
一>END$$
Query OK,0 rows affected(0.06 SeC)