读书频道 > 网站 > 网页设计 > MySQL入门很简单
14.7 上机实践
12-07-31    叶孤城
收藏    我要投稿   

本文所属图书 > MySQL入门很简单

本书从初学者的角度出发,由浅入深,循序渐进地介绍了MySQL数据库应用与开发的相关知识。书中提供了大量操作MySQL数据库的示例,还提供了大量实例和上机实践内容,供读者演练。本书共分5篇。第1篇介绍数据库的基...立即去当当网订购
题目要求:
 
本小节将在teacher表上创建名为teacher_info1的存储过程和名为teacher_info2的存储函数。按照11.5小节中表11.3和表11.4来创建teacher表。
 
(1)存储过程teacher_info1的要求:
 
存储过程teacher_info1有3个参数。输入参数为teacher_id和type,输出参数为info。存储过程的作用是根据编号(teacher_id)来查询teacher表中的记录。如果type的值为1时,将姓名(name)传给输出参数info;如果type的值为2时,将年龄传给输出参数info;如果type为其他值,则返回字符串"Error"。
 
(2)存储函数teacher_info2的要求:
 
存储过程teacher_info2有两个参数。这两个参数为teacher_id和type。存储函数的作用是根据编号(teacher_id)来查询teacher表中的记录。如果type的值是1时,则返回姓名(name)值;如果type的值是2时,则返回年龄;如果type为其他值,则返回字符串"Error"。
 
操作如下:
 
1.创建并使用存储过程teacher_info1
 
(1)按照11.5节的内容来创建teacher表,并插入记录。
 
(2)创建存储过程teacher_info1。代码如下:
 
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语句的代码如下:
 
CALL teacher_info1(2,1,@info);
代码执行以后,通过SELECT语句可以查询存储过程输出的值。SELECT语句的代码如下:
 
SELECT @info;
然后,分别测试type值为2和3时,存储过程的输出结果。
 
(4)使用DROP PRODECURE语句来删除存储过程。代码如下:
 
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语句的代码如下:
 
SELECT teacher_info1(2,1);
SELECT语句执行后,会显示执行结果。然后,分别测试type值为2和3时存储函数的返回值。
 
(4)使用DROP FUNCTION语句来删除存储函数。代码如下:
 
DROP FUNCTION teacher_info2;
通过本小节的上机实践,希望读者对创建存储过程和存储函数的方法能够熟练的掌握。同时,还可以掌握存储过程和存储函数中的条件判断语句、循环语句和光标等。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站