MySQL提供了存儲(chǔ)過程可以幫助我們?cè)跀?shù)據(jù)庫中完成比較復(fù)雜的操作,其中存儲(chǔ)過程可以返回列表,這對(duì)于我們的數(shù)據(jù)處理來說非常有用。
CREATE PROCEDURE `get_users` () BEGIN SELECT * FROM `users`; END
在以上的代碼中,我們定義了一個(gè)名為get_users的存儲(chǔ)過程,其目的是返回所有的用戶數(shù)據(jù)。在存儲(chǔ)過程中,我們?cè)贐EGIN和END之間定義了具體的SQL查詢語句。由于我們需要返回多條數(shù)據(jù),所以在這里我們使用了SELECT *命令,以保證我們可以獲取到所有數(shù)據(jù)。
CALL `get_users` ();
在調(diào)用存儲(chǔ)過程的時(shí)候,我們需要使用CALL命令,并傳遞存儲(chǔ)過程名稱。由于我們?cè)谏弦徊街幸呀?jīng)定義了get_users,所以在這里我們只需要傳遞其名稱即可。注意,在調(diào)用存儲(chǔ)過程的時(shí)候,我們不需要加上SELECT命令,否則可能會(huì)造成語法錯(cuò)誤。
+----+--------+-------------+ | id | name | email | +----+--------+-------------+ | 1 | Alice | alice@foo.com | | 2 | Bob | bob@foo.com | | 3 | Charlie| charlie@foo.com | +----+--------+-------------+
在成功調(diào)用存儲(chǔ)過程之后,我們就可以得到像上面一樣的數(shù)據(jù)表,其中包含了id、name和email三個(gè)字段的數(shù)據(jù)。這些數(shù)據(jù)可以直接被其他程序調(diào)用并使用,非常方便。