zoukankan      html  css  js  c++  java
  • 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 ;
  • 相关阅读:
    如何安装ArchLinux
    状态模式
    iOS设备的越狱方法
    浅析Windows安全相关的一些概念
    项目做成jar包
    JavaScript包装对象
    node.js系列笔记之node.js初识《一》
    使用Reactive Extensions(Rx),对短时间内多次发生的事件限流
    in和exists哪个效率高本人测试证明
    Asp.net MVC使用Filter解除Session, Cookie等依赖
  • 原文地址:https://www.cnblogs.com/xinjie123/p/10963046.html
Copyright © 2011-2022 走看看