DELIMITER && //使用"DELIMITER
&&"将SQL语句的结束符号变成&&
CREATE PROCEDURE teacher_info1 (IN teacher_id
INT,IN type INT, OUT info VARCHAR
(20) )
READS SQL DATA
BEGIN
CASE type
WHEN 1 THEN
SELECT name INTO info FROM teacher WHERE id=teacher_id;
WHEN 2 THEN
SELECT YEAR(NOW())-YEAR(birthday) INTO info
FROM teacher WHERE id=teacher_id;
ELSE
SELECT 'Error' INTO info;
END CASE;
END &&
DELIMITER ; //将SQL语句的结束符号变成";"
(3)调用存储过程,teacher_id为2,type为1。CALL语句的代码如下:
DROP PROCEDURE teacher_info1;
2.创建并使用存储函数teacher_info2
(1)按照11.5节的内容来创建teacher表,并插入记录。
(2)创建存储函数teacher_info2。代码如下:
DELIMITER && //使
用"DELIMITER &&"将SQL语句的结束符号变成&&
CREATE FUNCTION teacher_info2 (teacher_id INT,type INT)
RETURNS VARCHAR(20) READS SQL DATA
BEGIN
DECLARE temp VARCHAR(20);
SET @e= 'Error';
IF type=1 THEN
SELECT name INTO temp FROM teacher
WHERE id=teacher_id;
ELSEIF type=2 THEN
SELECT YEAR(NOW())-YEAR(birthday) INTO temp
FROM teacher WHERE id=teacher_id;
ELSE
SELECT @e INTO temp;
END IF;
RETURN temp;
END &&
DELIMITER ; //将SQL语句的结束符号变成";"
(3)使用SELECT语句调用存储函数。SELECT语句的代码如下: