sql創建視圖表和存盤程序
- 視圖表跟存盤程序是干什么的?
- Mysql創建視圖表
- mysql創建存盤程序
- 結尾: 路漫漫其修遠兮,吾將上下而求索,
宣告:我是一只小菜鳥,這是寫的第一篇下面如果有錯誤的地方請多多包含,煩請指出并更正
視圖表跟存盤程序是干什么的?
我們平時為什么要用到視圖表?
比如一個系統需要呼叫我們自己的資料,我們可以把他需要的所有表欄位提取出來組成一個視圖表給他觀看,
我們為什么要創建存盤程序?
如果一個很復雜的業務邏輯,用一個sql完成不了,就得用存盤程序來完成,存盤程序里可以有多個sql,還可以有執行控制,它的用途你可以認為它是把多個sql組合到一起,通過一些程序控制,完成一些復雜的業務邏輯,
(簡單理解就跟我們寫的邏輯代碼一樣)
Mysql創建視圖表
其實創建視圖表跟我們創建普通的表類似是有固定的語法
我做一個簡單的 提取出兩個表中所需要的欄位
舉例:
CREATE VIEW view_test
AS
SELECT ss_card.cardType,ss_card.cardnum,ss_user_info.*
FROM ss_card
LEFT JOIN ss_user_info ON ss_card.paitentid = ss_user_info.patientid,
個人理解
CREATE VIEW +視圖表名
as
select +表中所需要的欄位
from +表名
left join +表名
on +關聯兩個表
mysql創建存盤程序
存盤程序用create procedure 創建,業務邏輯和sql寫在begin和end之間,mysql中可用call <程序名稱>();來呼叫程序,
固定語法
carate PROCEDURE + 程序名 (具體引數)
begin
寫具體邏輯
end
in是入參 out是出參 inout(即是入參也是出參 )后面要跟型別
舉例:
DELIMITER $
CREATE PROCEDURE GetPatientID(IN cardtype VARCHAR(5),IN cardNum VARCHAR(50),OUT pid VARCHAR(50))
BEGIN
SELECT patientid into pid FROM view_test WHERE cardType = cardtype AND cardNum = cardNum limit 1;
END $
個人理解:
DELIMITER $ --告訴他結束符是 $
CREATE PROCEDURE --創建存盤程序
GetPatientID(IN cardtype VARCHAR(5),IN cardNum VARCHAR(50),OUT patientid VARCHAR(50)) – 名稱是GetPatientID in是入參(后面要跟型別) out是出參 inout(即是入參也是出參)
BEGIN (begin開始)
SELECT patientid FROM view_test WHERE cardType = cardtype AND cardNum = cardNum limit 1; (具體的邏輯)
END $ (結束)
洗掉
DROP PROCEDURE + 程序名稱; – 沒有括號()
結尾: 路漫漫其修遠兮,吾將上下而求索,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/229938.html
標籤:其他
