标签:
过程:封装起来的若干条语句,调用时这些封装体运行。把此过程存储到数据库中即存储过程.
函数:是一个有返回值的“过程”。
过程:没有返回值的函数。
存储过程的长处:
(
存储过程要比批处理的运行速度快非常多,由于存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,而且给出终于被存储在系统表中的运行计划。而批处理的
Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。)存储过程被创建后。能够在程序中被多次调用。而不必又一次编写该存储过程的
SQL语句。并且数据库专业人员能够随时对存储过程进行改动,相应用程序源码毫无影响。
DELIMITER $$ //定义分隔符 CREATE PROCEDURE p() //p为过程名 BEGIN --sql语句 //封装语句体 END $$
CREATE PROCEDURE p1() BEGIN DECLARE age INT DEFAULT 18; DECLARE height INT DEFAULT 180; SET age := age +20; SELECT CONCAT('年龄是', age, '身高是', height); END$$
CREATE PROCEDURE p2() BEGIN DECLARE age INT DEFAULT 18; DECLARE height INT DEFAULT 180; IF age >= 18 THEN SELECT "已成年"; ELSE SELECT "未成年"; END IF; END$$
CREATE PROCEDURE p3() BEGIN DECLARE total INT DEFAULT 0; DECLARE num INT DEFAULT 0; WHILE num<=100 DO SET total := num + total; SET num := num + 1; END WHILE; SELECT total; END$$
CREATE PROCEDURE p4() BEGIN DECLARE num INT DEFAULT 0; SET num := FLOOR(4*RAND()); CASE num WHEN 1 THEN SELECT "cat"; WHEN 2 THEN SELECT "dog"; WHEN 3 THEN SELECT "sheep"; ELSE SELECT "pig"; END CASE; END$$
CREATE PROCEDURE p5() BEGIN DECLARE num INT DEFAULT 0; DECLARE total INT DEFAULT 0; REPEAT SET total = num + total; SET num := num + 1; UNTIL num>100 END REPEAT; SELECT total; END$$
版权声明:本文博主原创文章,博客,未经同意不得转载。
标签:
原文地址:http://www.cnblogs.com/gcczhongduan/p/4811202.html