文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

lyt经典版MySQL基础——流程控制结构

2019-07-20 01:51

关注


	lyt经典版MySQL基础——流程控制结构
[数据库教程]

  1 #流程控制结构
  2 
  8 
  9 #一、分支结构
 10 #1.if函数
 11 
 20 
 21 #2.case结构
 22 
 53 
 54 #案例
 55 #创建存储过程,根据传入的成绩,来显示等级,比如传入的成绩:90-100,显示A;80-90,显示B;
 56 #60-80,显示C;否则显示D
 57 DELIMITER $
 58 CREATE PROCEDURE test_case1(IN score INT)
 59 BEGIN
 60     CASE
 61     WHEN score>=90 AND score<=100 THEN SELECT A;
 62     WHEN score>=80 THEN SELECT B;
 63     WHEN score>=60 THEN SELECT C;
 64     ELSE SELECT D;
 65     END CASE; 
 66 END $
 67 
 68 CALL test_case1(55)$
 69 
 70 #3.if结构
 71 
 83 
 84 #案例1:根据传入的成绩,来显示等级,比如传入的成绩:90-100,返回A;80-90,显示B;
 85 #60-80,显示C;否则显示D
 86 DELIMITER $
 87 CREATE FUNCTION test_if(score INT) RETURNS CHAR
 88 BEGIN
 89     IF score>=90 AND score<=100 THEN RETURN A;
 90     ELSEIF score>=80 THEN RETURN B;
 91     ELSEIF score>=60 THEN RETURN C;
 92     ELSE RETURN D;
 93     END IF;
 94 END$
 95 
 96 SELECT test_if(79)$
 97 
 98 #二、循环结构
 99 
107 
108 #1.while
109 
120 
121 #2.loop
122 
130 
131 #3.repeat
132 
139 
140 #没有添加循环控制语句
141 #案例:批量插入,根据次数插入到admin表中多条记录
142 DELIMITER $
143 CREATE PROCEDURE pro_while1(IN insertCount INT)
144 BEGIN
145     DECLARE i INT DEFAULT 1;
146     WHILE i<=insertCount DO
147         INSERT INTO admin(username,PASSWORD) VALUES(CONCAT(Rose,i),666);
148         SET i=i+1;
149     END WHILE;
150 END$
151 
152 CALL pro_while1(100)$
153 
154 
161 
162 #2.添加leave语句
163 #案例1:批量插入,根据次数插入到admin表中多条记录,如果次数>20则停止
164 TRUNCATE TABLE admin$
165 DROP PROCEDURE IF EXISTS test_while1$
166 DELIMITER $
167 CREATE PROCEDURE test_while1(IN insertCount INT)
168 BEGIN
169     DECLARE i INT DEFAULT 1;
170     a:WHILE i<=insertCount DO
171         INSERT INTO admin(username,PASSWORD) VALUES(CONCAT(xiaohua,i),0000);
172         IF i>=20 THEN LEAVE a;
173         END IF;
174         SET i=i+1;
175     END WHILE a;
176 END$
177 
178 CALL test_while1(100)$
179 
180 #案例2:批量插入,根据次数插入到admin表中多条记录,只插入偶数次
181 DELIMITER $
182 CREATE PROCEDURE test_while1(IN insertCount INT)
183 BEGIN
184     DECLARE i INT DEFAULT 0;
185     a:WHILE i<=insertCount DO
186         SET i=i+1;
187         IF MOD(i,2)!=0 THEN ITERATE a;
188         END IF;
189         INSERT INTO admin(username,PASSWORD) VALUES(CONCAT(xiaohua,i),0000);
190     END WHILE a;
191 END$
192 
193 CALL test_while1(100)$
194 
204 
205 #经典案例面试题
206 
212 DROP TABLE IF EXISTS stringcontent;
213 CREATE TABLE IF NOT EXISTS stringcontent(
214     id INT PRIMARY KEY AUTO_INCREMENT,
215     content VARCHAR(20));
216 DESC stringcontent;
217 DELIMITER $
218 CREATE PROCEDURE test_randstr_insert(IN insertcount INT)
219 BEGIN
220     DECLARE i INT DEFAULT 1; #定义一个循环变量i,表示插入次数
221     DECLARE str VARCHAR(26) DEFAULT abcdefghijklmnopqrstuvwxyz;
222     DECLARE startIndex INT DEFAULT 1; #代表起始索引
223     DECLARE len INT DEFAULT 0; #代表截取的字符的长度
224     WHILE(i<=insertcount)DO
225         SET startIndex=FLOOR(RAND()*26+1); #产生一个随机的整数,代表起始索引1 ~ 26
226         SET len=FLOOR(RAND()*(26-startIndex+1)+1); #产生一个随机的整数,代表 截取长度,1 ~ 26-startIndex+1
227         INSERT INTO stringcontent(content) VALUES(SUBSTR(str,startIndex,len));
228         SET i=i+1; #循环变量更新
229     END WHILE;
230 END$
231 
232 CALL test_randstr_insert(10)$

 

lyt经典版MySQL基础——流程控制结构

原文地址:https://www.cnblogs.com/yanwuliu/p/13406214.html

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯