DELIMITER $$ CREATE PROCEDURE `demo`.`demo1`() -- 存储过程体 BEGIN -- DECLARE声明 用来声明变量的 DECLARE de_name VARCHAR(10) DEFAULT ''; SET de_name = "jim"; -- 测试输出语句(不同的数据库,测试语句都不太一样。 SELECT de_name; END$$ DELIMITER ;
时间: 2024-03-28 20:41:07 浏览: 14
这是一个 MySQL 存储过程的示例代码,它声明了一个名为 `demo1` 的存储过程,该存储过程定义了一个变量 `de_name`,并将其初始化为一个空字符串。然后将其赋值为字符串 "jim",最后通过 SELECT 语句输出变量的值。
在存储过程中,可以使用 DECLARE 语句来声明变量,并使用 SET 语句来对变量赋值。最后,可以使用 SELECT、INSERT、UPDATE、DELETE 等 SQL 命令来操作数据库中的数据。
需要注意的是,存储过程语法可能因数据库类型而异,上述代码示例针对 MySQL 数据库。
相关问题
DELIMITER $$ CREATE PROCEDURE demo.demo1() -- 存储过程体 BEGIN -- DECLARE声明 用来声明变量的 DECLARE de_name VARCHAR(10) DEFAULT ''; SET de_name = "jim"; -- 测试输出语句(不同的数据库,测试语句都不太一样。 SELECT de_name; END$$ DELIMITER ;里面的 $$是干啥的这个是在mysql中还是在sql sveice
这段代码是在MySQL中使用的,DELIMITER是MySQL中的一条指令,用于设置SQL语句的分隔符。$$是在设置DELIMITER时所使用的分隔符,用于指定存储过程体的开始和结束位置。
在MySQL中,存储过程由BEGIN和END语句包裹,使用DELIMITER可以将分号(;)替换为其他符号,例如$$,以免分号在存储过程体中造成解析错误。
因此,在这段代码中,DELIMITER $$指定了使用$$作为SQL语句的分隔符,CREATE PROCEDURE定义了名为demo1的存储过程,存储过程体即BEGIN和END之间的部分,使用DECLARE可以声明变量,SET用于赋值,SELECT用于输出变量的值。最后,DELIMITER ;将分隔符恢复为默认值分号(;)。
mysql8.0 存储过程 使用游标
MySQL 8.0 存储过程使用游标的方法如下所示:
```mysql
-- 定义存储过程
DELIMITER $$
CREATE PROCEDURE cursor_demo()
BEGIN
-- 声明变量
DECLARE done INT DEFAULT FALSE;
DECLARE name VARCHAR(20); DECLARE age INT;
DECLARE gender VARCHAR(10);
-- 声明游标
DECLARE cur CURSOR FOR SELECT name, age, gender FROM excel;
-- 定义异常处理
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 打开游标
OPEN cur;
-- 循环读取游标数据
read_loop: LOOP
-- 读取游标数据
FETCH cur INTO name, age, gender;
-- 判断是否读取完毕
IF done THEN
LEAVE read_loop; END IF;
-- 处理游标数据
SELECT CONCAT(name, ' is a ', age, ' years old ', gender, '.') AS info;
END LOOP;
-- 关闭游标
CLOSE cur;
END$$
DELIMITER ;
-- 调用存储过程
CALL cursor_demo();
```
上述代码中,我们首先定义了一个名为 `cursor_demo` 的存储过程,其中声明了一个名为 `cur` 的游标,用于查询 `excel` 表中的数据。接着,我们打开游标,并通过循环读取游标数据,最后关闭游标。在循环中,我们可以对游标数据进行处理,例如将其输出到控制台。