赞
踩
CREATE PROCEDURE 存储过程名 [ ( IN | OUT | INOUT 参数名 参数类型) ]
BEGIN
存储过程体;
END
IN:有参数无返回值,OUT:无参数有返回值,IN | OUT:有参数有返回值,INOUT:有参数有返回值。
- #创建存储过程,用来查看Student表中的平均年龄
- DELIMITER // #默认是以 ; 结束,由于BEGIN——END 中的SELECT语句需要;结束,因此没有办法执行到END,所以使用DELIMITER将结束符改为//
- CREATE PROCEDURE Avg_Age()
- BEGIN
- SELECT AVG(Sage)
- FROM Student;
- END //
- DELIMITER ;
-
- CALL Avg_Age(); #调用存储过程
- #创建存储过程,用来查看Student表中的最小年龄,并将最小年龄通过参数ma输出
- DELIMITER //
- CREATE PROCEDURE Min_Age(OUT ma INT)
- BEGIN
- SELECT MIN(Sage) INTO ma
- FROM Student;
- END //
- DELIMITER ;
-
- CALL Min_Age(@ma); #调用
-
- SELECT @ma; #查看变量的值
- #创建存储过程,用来查看Student表中某个学生的年龄,并用参数S_name来输入学生姓名
- DELIMITER //
- CREATE PROCEDURE Show_Age(IN S_name VARCHAR(45))
- BEGIN
- SELECT Sage
- FROM Student
- WHERE Sname = S_name;
- END //
- DELIMITER ;
-
- SET @S_name = '张三';
- CALL Show_Age(@S_name); #调用
- #创建存储过程,用来查看Student表中某个学生的年龄,并用参数S_name来输入学生姓名,用S_age输出年龄
- DELIMITER //
- CREATE PROCEDURE Show_Age(IN S_name VARCHAR(45), OUT S_age INT)
- BEGIN
- SELECT Sage INTO S_age
- FROM Student
- WHERE Sname = S_name;
- END //
- DELIMITER ;
-
- SET @S_name = '张三';
- CALL Show_Age(@S_name,@S_age); #调用
- SELECT @S_age;
- #创建存储过程,用来查看Student表中某个学生的专业,并用参数Sn来输入学生姓名,用Sn输出专业名
- DELIMITER //
- CREATE PROCEDURE Show_Sdept(INOUT Sn VARCHAR(45))
- BEGIN
- SELECT Sdept INTO Sn
- FROM Student
- WHERE Sname = Sn;
- END //
- DELIMITER ;
-
- SET @Sn = '张三';
- CALL Show_Sdept(@Sn); #调用
- SELECT @Sn;
查看存储过程的创建信息:SHOW CREATE PROCEDURE 存储过程名;
查看存储过程的状态信息:SHOW PROCEDURE STATUS LIKE '存储过程名';
DROP PROCEDURE 存储过程名;
CREATE FUNCTION 函数名 (参数名 参数类型,....)
RETURNS 返回值类型
BEGIN
函数体;
END
函数体中必须要有RETURN语句
- #创建存储过程,该函数查询“张三”的年龄并返回
- DELIMITER //
- CREATE FUNCTION Show_Age()
- RETURNS INT DETERMINISTIC #DETERMINISTIC(确定的)
- BEGIN
- RETURN(
- SELECT Sage
- FROM Student
- WHERE Sname = '张三');
- END //
-
- DELIMITER ;
-
- SELECT Show_Age(); #调用
- #创建存储函数,该函数查询某个学生的年龄并返回
- DELIMITER //
- CREATE FUNCTION Show_Age(Sn VARCHAR(45))
- RETURNS INT DETERMINISTIC
- BEGIN
- RETURN(
- SELECT Sage
- FROM Student
- WHERE Sname = Sn);
- END //
- DELIMITER ;
-
- SELECT Show_Age('张三');
- #创建存储函数,该函数查询某个学生所在的专业人数并返回
- DELIMITER //
- CREATE FUNCTION Show_num(Sn VARCHAR(45))
- RETURNS INT DETERMINISTIC
- BEGIN
- RETURN(
- SELECT COUNT(*)
- FROM Student
- WHERE Sdept = (SELECT Sdept
- FROM Student
- WHERE Sname = Sn));
- END //
- DELIMITER ;
-
- SET @Sn = '张三';
- SELECT Show_num(@Sn);

查看存储函数的创建信息:SHOW CREATE FUCTION 函数名;
查看存储函数的状态信息:SHOW FUCTION STATUS LIKE '函数名';
DROP FUCTION 函数名;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。