存储过程是子例程,是SQL语句的一部分,存储在SQL目录中。所有可以访问关系数据库的应用程序(Java,Python,PHP等)都可以访问存储过程。
存储过程包含IN和OUT参数或两者。如果您使用SELECT语句,它们可能会返回结果集。存储过程可以返回多个结果集。
假设我们在MySQL数据库中创建了一个名为Employee的表,如下所示:
String createTable = "CREATE TABLE Employee(" + "Name VARCHAR(255), " + "Salary INT NOT NULL, " + "Location VARCHAR(255))";
以下是MySQL存储过程的示例。在这里,我们在Employee表中插入一列,以获取用户的值。(通过输入参数)
mysql> DELIMITER // ; mysql> Create procedure myProcedure (IN name VARCHAR(30), IN sal INT, IN locVARCHAR(45)) -> BEGIN -> INSERT INTO Employee(Name, Salary, Location) VALUES (name, sal, loc); -> END //
以下语句调用上面创建的存储过程。
CALL myProcedure ('Raman', 35000, 'Bangalore')//
如果检索表的内容,则可以观察到新插入的行为
mysql> select * from employee; +---------+--------+----------------+ | Name | Salary | Location | +---------+--------+----------------+ || Raman | 35000 | Bangalore | +---------+--------+----------------+ 1 rows in set (0.00 sec)