IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL学习总结(十)——存储过程和流程控制案例 -> 正文阅读

[大数据]MySQL学习总结(十)——存储过程和流程控制案例

存储过程和流程控制案例

所有数据库学习总结文章均是根据B站尚硅谷视频总结而来,视频链接如下:
[https://www.bilibili.com/video/BV12b411K7Zu]

本文内容均需要在命令行执行

一、存储过程

案例1:创建存储过程实现传入用户名和密码,插入到admin表中。

DELIMITER $
CREATE PROCEDURE 
t_pro(IN userna VARCHAR(20),IN passwo VARCHAR(20))
BEGIN	
	INSERT INTO 
	admin(username,PASSWORD) VALUES(userna,passwo);
END$

CALL t_pro('xixi','01010')$
SELECT * FROM admin;

案例2:创建存储过程或函数实现传入女神编号,返回女神名称和女神电话。

CREATE PROCEDURE b_id(IN bId INT,OUT bName VARCHAR(20),OUT bPhone VARCHAR(20))
BEGIN
	SELECT NAME,phone INTO bName,bPhone
	FROM beauty
	WHERE id = bId;
END $

CALL b_id(3,@bna,@bpho)$
SELECT @bna,@bpho$

案例3:创建存储存储过程或函数实现传人两个女神生日,返回大小

CREATE PROCEDURE b_test(IN born1 DATETIME,IN born2 DATETIME,OUT result INT)
BEGIN
	SELECT DATEDIFF(born1,born2) INTO result;
END $

案例4:创建存储过程或函数实现传入一个日期,格式化为XX年XX月XX日并返回。

CREATE PROCEDURE t_form(IN da DATETIME,OUT strDate VARCHAR(50))
BEGIN
    SELECT DATE_FORMAT(da,'%y年%m月%d日') INTO strDate; 
END $

CALL t_form(NOW(),@str)$
SELECT @str 日期;

案例5:创建存储过程或函数实现传入女生名称,返回 女生AND男生 格式的字符串。例如:传入: 小昭,返回:小昭 and 张无忌。

DROP PROCEDURE t_boy$
CREATE PROCEDURE t_boy(IN beName VARCHAR(20),OUT str VARCHAR(50))
BEGIN
	SELECT CONCAT(beName,'and',IFNULL(boyName,'单身')) INTO str
	FROM boys bo
	RIGHT JOIN beauty b 
	ON b.boyfriend_id=bo.id
	WHERE b.name = beName;
END $

CALL t_boy('柳岩',@str)$
SELECT @str 信息显示$

案例6:创建存储过程或函数,根据传入的条目数或起始索引,查询beauty表的记录。

DROP PROCEDURE t_beauty$
CREATE PROCEDURE t_beauty(IN startindex INT,IN sizenum INT)
BEGIN
     SELECT * FROM beauty LIMIT startindex,sizenum;
END $
CALL t_beauty(3,5)$

二、流程控制

案例:
已知表stringcontent其中字段: id 自增长,content varchar (20),向该表插入指定个数的,随机的字符串 。

DROP TABLE IF EXISTS stringcontent; #排除数据库中有同名的表
CREATE TABLE stringcontent(     #创建表
	id INT PRIMARY KEY AUTO_INCREMENT,
	content VARCHAR (20)
);
/*
TRUNCATE stringcontent$ #删除表中数据
DROP PROCEDURE str$ #删除存储过程
*/
DELIMITER $  #定义结束符
CREATE PROCEDURE str(IN insertcount INT)
BEGIN 
	DECLARE i INT DEFAULT 1;#定义一个循环变量,表示插入次数
	DECLARE st VARCHAR(26) DEFAULT 'abcdefghigklmnopqrstuvwxyz';
	DECLARE stindex INT DEFAULT 1; #代表起始索引
	DECLARE len INT DEFAULT 1;  #代表截取的长度 
	WHILE i <= insertcount DO

 SET len = FLOOR(RAND()*(26-stindex+1)+1) ; #产生一个随机整数,代表截取长度,范围是1-(26-stindex+1) 
	  SET stindex = FLOOR(RAND()*26+1); #产生一个随机整数,代表起始索引,范围是1-26
	  INSERT INTO stringcontent(content) VALUES (SUBSTR(st,stindex,len));
	  SET i=i+1;
        END WHILE;
END$

CALL str(10)$
SELECT * FROM stringcontent$
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:35:16  更:2021-10-11 17:36:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:13:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码