mysql 存儲過程、視圖---創建、調用、刪除


之前一直用的是Sql Server數據庫,最近偶然機會接觸到mysql。這里總結了關於mysql 存儲過程、視圖的“創建、調用、刪除”示例

=================================存儲過程==================================

1、帶參數的存儲過程

/*創建存儲過程*/
DELIMITER $$      /*為了避免沖突,首先用"DELIMITER &&"將MySQL的結束符設置為&&*/
USE `DataName`$$   /*DataName-->數據庫名*/
DROP PROCEDURE IF EXISTS `aa`$$   /*判斷存儲過程是否存在(存在則刪除)*/
CREATE DEFINER=`root`@`%` PROCEDURE `aa`(str_id VARCHAR(34))/*str_id VARCHAR(34)-->參數*/

BEGIN
SELECT * FROM tj_archive WHERE id=str_id; /*執行的Sql腳本*/
END$$
DELIMITER; /*最后再用"DELIMITER ;"來將結束符恢復成分號*/

/*查看存儲過程*/
CALL `aa`('D1608220023')

/*刪除存儲過程*/
DROP PROCEDURE `aa`

 

2、帶IF條件判斷的存儲過程

DELIMITER $$
USE `iu`$$
DROP PROCEDURE IF EXISTS `bb`$$
CREATE DEFINER=`root`@`%` PROCEDURE `bb`(Xb VARCHAR(6)) -- 創建
BEGIN
IF (Xb='男') THEN SET Xb='1';END IF;
IF (Xb='女') THEN SET Xb='0';END IF;
SELECT * FROM tj_archive WHERE sex=Xb;
END$$
DELIMITER;

CALL `bb`('女')  -- 調用

DROP PROCEDURE `bb` -- 刪除

 

3、使用 SELECT... INTO 給變量賦值

DELIMITER $$
USE `iu`$$
DROP PROCEDURE IF EXISTS `cc`$$
CREATE DEFINER=`root`@`%` PROCEDURE `cc`()
BEGIN
DECLARE RYDAID VARCHAR(34);
SELECT CONCAT('D',CAST((CAST(SUBSTRING(MAX(id),2) AS UNSIGNED)) AS CHAR)) INTO RYDAID FROM tj_archive;
SELECT * FROM tj_archive WHERE id=RYDAID;
END$$
DELIMITER;

CALL `cc`(); -- 調用
DROP PROCEDURE `cc`; -- 刪除

=======================================視圖==================================

-- 創建視圖
CREATE VIEW MyView AS
SELECT
CASE sex                -- 適用性別 0:男女通用 1:男 2:女
WHEN sex='男' THEN 1        -- 適用 男
WHEN sex='女' THEN 2          -- 適用 女
WHEN sex='通用' THEN 0       -- 男女通用
END AS XB
FROM MyTable                 -- 表
-- where                    -- 過濾條件

select * from MyView                       -- 查看視圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM