不会编程的小卜
人生没有白走的路,每一步都算数

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 ;
posted @ 2019-06-02 15:15  不会编程的小卜  阅读(443)  评论(0编辑  收藏  举报