使用者變數給使用者儲存一些簡單的資料例如數值換字串。這些變數可以用於後續的資料庫操作中。
公式:set @變數名稱 = 值
範例:
變數名稱為i
設定好的變數可以用select查詢變數內容。
查詢結果
也可以用","分開設定很多變數。
或是用select直接設定變數但是"="必須替換成":="
執行結果
在敘述中使用變數,以下範例使用此表格:
範例:將Aom + 剛剛設定的 i 變數。
執行結果
Aom成功變成98分。
Prepared Statement
一般使用者常常用的敘述中很多都是重複很多次差不多的指令。這時可以將重複的部分儲存成Prepared Statement,讓伺服器直接準備好提供使用。
建立,執行與刪除Prepared Statement
公式:prepare 名稱 from "敘述"
範例:藉由自己挑名稱查詢該學生成績。
問號代表要代的變數。
建立好之後順便建立一下等一下要查的目標變數,這裡選擇找Bom。
都建立好之後可以用Execute來執行Prepared Statement。
公式:Execute Prepare名稱 using 變數名稱
執行結果
成功用此方法找到Bom成績,若是想找別人只需要將目標學生換成別人。
當Prepared Statement不需要時可使用drop刪除
公式:drop prepare prepare名稱
Prepared Statement可以設定的問號數不限定一個,但是要注意配對的變數必須和Prepared Statement中的問號數量一致,否則將發生錯誤。
如上一題範例:Prepared Statement裡面只有一個問號,所以對應using也是只需要一個變數。
若是真的沒有該變數(如:100人中有1人少填了其中一個資料),少的變數可以隨意設定一個不存在的變數,執行時系統會自動填入null。
範例:
執行結果
因為@哈哈哈變數並不存在所以系統填入null去做查找,但是並沒有名稱欄位是null的學生,所以甚麼都沒找到。
Prepared Statement與使用者變數都是設定者本身專屬的,使用者離線後所有設定的變數與Prepared Statement都會自動刪除,所以建立Prepared Statement時無法指定資料庫名稱。
指定資料庫時會出錯。