首页 > 数据库 > MySQL > 正文

MySQL存储步骤

2024-07-24 12:36:24
字体:
来源:转载
供稿:网友
  定义
  一个复杂逻辑对SQL语句的批量处理,
  通过一个名字存储
  创建
  delimiter // 修改终止符
  -- 存储过程没有返回值
  delimiter //    ---- 把终止符;修改成//
  create procedure porc2()
  begin
  -- 可执行语句
  insert into mm_users values (0,'xiaownag','xxx');
  select * from mm_users;
  end
  //       ---- 填写终止符
  delimiter ;   ---- 还原原来的终止符以执行
  查看
  -- 查看 mysql.proc
     select db,name,type from mysql.proc;
  调用
  -- 调用 如果存储过程没有参数 小括号可以省略
  call proc();
  --在pymysql中执行存储过程
      cursor.callproc('存储对象名')
  删除
  -- 删除
  drop procedure proc_stu;
  delete from mysql.proc where name = 'porc1';
  - 存储过程和函数的区别
  - 课件
  -- 函数在使用时候有哪些限制
  -- select 语句不能够在函数中执行
  -- 函数中除 select into之外其他的 select 语句都不能够执行
  -- select into 是将查询的结果赋值给某一个变量
  delimiter //
  create function f4(in a int,in b int) returns int
  begin
  -- 定义一个变量 res
  declare res int default 0;
  -- 将 a + b的结果赋值给 res
  select count(*) from mm_users into res;
  -- set res = a + b;
  -- 返回 res
  return res;
  end
  //
  delimiter ;
  -- 通过存储过程来实现函数中不能够调用 select 语句的弊端
  -- 但是存储过程没有返回值
  -- 可以通过 out 类型的参数来给存储过程实现多个返回值的功能
  - 相同点
  相同点
  存储过程和函数都是为了可重复的执行操作数据库的 sql 语句的集合.
  存储过程和函数都是一次编译,就会被缓存起来,
  下次使用就直接命中缓存中已经编译好的 sql,
  不需要重复编译
  减少网络交互,减少网络访问流量
  - 不同点
  不同点
 
  # @il 引用
  call p1(1, @i1, @i2)  # @设置一个变量@i1= null

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表