什么是存储过程,我们如何创建 MySQL 存储过程?

mysqlmysqli database更新于 2024/3/14 9:36:00

在常规计算语言的上下文中,存储过程可以定义为存储在数据库中的子例程(如子程序)。在 MySQL 的上下文中,它是存储在数据库目录中的一段声明性 SQL 语句。在 MySQL 中编写存储过程之前,我们必须检查版本,因为 MySQL 5 引入了存储过程。以下是创建存储过程的语法 −

语法

CREATE [DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter: [ IN | OUT | INOUT ] param_name type
type:
Any valid MySQL data type
characteristic:
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA
| MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body:
Valid SQL routine statement

示例

以下是一个例子,我们创建了一个简单的过程来从表‘student_info’中获取包含以下数据的所有记录 −

mysql> select * from student_info;
+-----+---------+------------+------------+
| id  | Name    | Address    | Subject    |
+-----+---------+------------+------------+
| 100 | Aarav   | Delhi      | Computers  |
| 101 | YashPal | Amritsar   | History    |
| 105 | Gaurav  | Jaipur     | Literature |
| 110 | Rahul   | Chandigarh | History    |
+------+--------+------------+------------+
4 rows in set (0.00 sec)

现在,借助以下查询,我们创建了名为 allrecords() 的存储过程

mysql> Delimiter //
mysql> Create Procedure allrecords()
    -> BEGIN
    -> Select * from Student_info;
    -> END//
Query OK, 0 rows affected (0.02 sec)
mysql> DELIMITER ;

相关文章