fetch关键字

博客提及了fetch join,fetch join是信息技术领域相关内容,常用于数据库查询优化等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 fetch join


 

第4关:单循环游标 100 学习内容 记录 评论 任务描述 基础知识 游标的使用 注意事项 任务描述 编写一个单循环游标的存储过程,并调用它,打印表Student中所有学生的名字(Sname)和年龄(Sage)两个字段的信息。 并将所有学生的信息使用","连接为一个字符串。 其中每个学生的信息格式如下: 姓名:Sname 年龄:Sage 如学生“张三”年龄为28,该学生的信息为 学生:张三 年龄:28 将信息存入result时可以使用concat函数,如果要将'我是字符串'和数字28连接到result的尾部,可使用以下语句: set result = concat(result, '我是字符串', 28) 在具体使用过程中可以将对应的常量替换为变量名。 注意:每个学生的信息中姓名和年龄之间用空格隔开,学生信息之间用英文逗号隔开 基础知识 在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。游标在部分资料中也被称为光标。 关系数据库管理系统实质是面向集合的,在 MySQL 中并没有一种描述表中单一记录的表达形式,除非使用关键字来限制只有一条记录被选中。所以有时我们必须借助于游标来进行单条记录的数据处理。 游标的使用 下列语句是游标的声明语句,其中sql_select_statement的内容为查找的内容 DECLARE cursor_name CURSOR FOR sql_select_statement; 声明游标后,在使用游标逐行取数据之前需要打开游标,语法如下: open cursor_name; 然后使用fetch关键字取数据: fetch cursor_name into attri1, attr2...attrn; 每取一条数据,可以按照需求使用一定的语句处理数据了。在处理完成后,需要关闭游标: close cursor_name; 注意事项 在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。如输入下面的语句: select * from table_name; 然后回车,那么MySQL将立即执行该语句。但比如存储过程、触发器、函数等很多场合下,根据需要不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。我们期望把它们作为一个整体,这时候可以使用关键字delimiter。这种情况下,就需要事先把delimiter换成其它符号,如//或。这样只有当//或出现之后,mysql解释器才会执行这段语句。 如下图的例子,在使用该关键字后,sql语句并不会马上进行解释执行。即便是语句内容,甚至语法不正确,系统也不会有任何反馈。当遇到终止符号后,系统马上执行封装好的多条语句,这是才报数据错误。 delimiter use StuDB; -- 编写一个单循环游标的存储过程,并调用它,打印表Student中所有学生的名字(Sname)和年龄(Sage)两个字段的信息。 -- 并将所有学生的信息使用","连接为一个字符串。 -- 其中每个学生的信息格式如下: -- 姓名:Sname 年龄:Sage -- 如学生“张三”年龄为128,该学生的信息为 -- 学生:张三 年龄:128 -- 将信息存入result时可以使用concat函数,如果要将'我是字符串'和数字128连接到result的尾部,可使用以下语句: -- set result = concat(result, '我是字符串', 128) -- 在具体使用过程中可以将对应的常量替换为变量名。 -- 注意:每个学生的信息中姓名和年龄之间用空格隔开,学生信息之间用英文逗号隔开 drop procedure if exists proc_cursor; delimiter $$ create procedure proc_cursor() begin declare stdname varchar(100); declare stdage int; declare result varchar(4000) default ''; #将打印内容存入result中 #实现游标 #TODO end $$ call proc_cursor();
最新发布
06-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值