SQl编程存储过程

过程化存储

  • 存储过程,一组为完成特定功能、经过编译后存储在数据库中的SQL语序集

    • 灵活性:存储过程中可以进行流程控制和循环操作来完成复杂的判断和运算

    • 一致性:通过存储过程可以使一些关联的操作一起发生,从而维护了数据库的完整性

    • 高效性:存储过程有效减少了数据库开发人员和程序员的工作量
  • 语法

CREATE PROCEDURE SP_NAME(IN PRAM TYPE, OUT PRAM TYPE); IN 表示传入参数 默认不写时表示传入 TYPE 表示类型 OUT 表示传出参数 TYPE表示类型 INOUT 可以使一个传入参数在存储过程中被修改 并传出 存储过程内部语句以”;”结尾,因此在定义存储过程中需要切换控制台的命令结束符号 以避免歧义,可以使用DELIMITER // 
  • 调用
调用存储过程使用 CALL SP_NAME()
删除存储过程 DROP PROCEDURE SP_NAME
查看已定义存储过程     SHOW PROCEDURE STATUS/SHOW CREATE PROCEDURE SP_NAME(详细信息) 
  • 创建数据库
create database if not exists demo1 default character set 'utf8'; 
  • 创建数据表
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 
  • 定义结束符号
-- 定义 结束符
DELIMETER $$
  • 函数无参数
CREATE PROCEDURE loop_insert_post()
BEGIN
DECLARE i INT;
SET i = 1;
WHILE i<1000 DO
INSERT INTO user(`name`,`addtime`)values(concat('JM',i),now());
SET i = i+1;
END WHILE;
END $$
  • 调用函数
-- 调用函数
CALL loop_insert_post //
  • 恢复mysql 默认结束符
DELIMETER ;

猜你喜欢

转载自www.cnblogs.com/xinjie123/p/10963046.html