存储例程(stored routines)可以理解为一组特定的SQL语句集合,存储例程包括存储过程(stored procedures)和存储函数(store functions)。使用存储例程具有以下优点:

    1. 避免相同操作因不同平台导致的重复开发,后续维护更加方便
    2. 避免sql注入的带来的安全问题

    存储过程示例:

    1. DELIMITER //
    2. DROP PROCEDURE IF EXISTS details.read_recordById //
    3. CREATE PROCEDURE details.read_recordById (IN emp_id INT)
    4. BEGIN
    5. SELECT * FROM STUDENT WHERE ID = emp_id;
    6. END//
    7. DELIMITER ;

    DELIMITER 声明结束符,一般使用 DELIMITER // 或者 DELIMITER 声明 // 为结束符;
    DROP PROCEDURE IF EXISTS details.read_recordById // 删除details数据库中名为read_recordById的存储过程,如果有则删除。
    CREATE PROCEDURE details.read_recordById (IN emp_id INT) 在details数据库中创建名为read_recordById的存储过程,IN表示输入参数,调用者向过程传入值。除此以外,OUT 表示输出参数,过程向调用者传出值;INOUT表示输入输出参数,调用者既可以向过程传入值,过程也可以向调用者传出值。emp_id表示传入参数的变量名,INT表示传入参数的类型。
    存储过程开始和结束分别用 BEGINEND ,最后输入 // 表示存储过程结束,最后再次声明结束符为; DELIMITER ;
    调用存储过程:call read_recordById(2)
    删除存储过程:drop procedure read_recordById