文档章节

MySQL存储过程+自定义函数 简单示例

Izecson
 Izecson
发布于 2016/07/15 15:53
字数 327
阅读 15
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>

drop table if exists students;
CREATE TABLE `students` (
`stu_id` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '学号',
`stu_name` VARCHAR(50) NULL DEFAULT '' COMMENT '姓名',
`stu_sex` INT(11) NULL DEFAULT '0' COMMENT '性别',
`cla_id` BIGINT(20) NULL DEFAULT '0' COMMENT '班级ID',
`stu_phone` BIGINT(20) NULL DEFAULT '0' COMMENT '手机号',
PRIMARY KEY (`stu_id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;


delimiter //
drop function if exists print //

create function print (str varchar(100)) returns varchar(100)
begin
declare x varchar(100) default '';
set x = str;
return x;
end
/
delimiter ;
select print('hhehehe');


delimiter //
drop function if exists rand_string //

create function rand_string(n int) returns varchar(100)
begin
declare low_str varchar(255) default 'abcdefghijklmnopqrstuvwxyz';
declare up_str varchar(255) default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
declare i int default 0;
declare return_str varchar(255) default '';
while i < n do
if i = 0 then
set return_str = concat(return_str, substring(up_str, floor(1 + 26 * rand()), 1));
else
set return_str = concat(return_str, substring(low_str, floor(1 +26 * rand()), 1));
end if;
set i = i + 1;
end while;
return return_str;
end
/
delimiter ;
select rand_string(5);


delimiter //
drop function if exists rand_sex //
create function rand_sex() returns int
begin
declare sex int default 0;
set sex = round(rand());
return sex;
end
/
delimiter ;

select rand_sex();

delimiter //
drop procedure if exists stu_inserts;
create procedure stu_inserts(in n int)
begin
declare stu_id bigint default 10001;
declare stu_name varchar(50) default '';
declare stu_sex int default 1;
declare cla_id bigint default 1;
declare i int default 0;
while i < n do
set stu_name = rand_string(5);
set stu_sex = rand_sex();
if stu_id % 100 = 0 then
set cla_id = cla_id + 1;
end if;
insert into students(stu_id, stu_name, stu_sex, cla_id) values(stu_id, stu_name, stu_sex, cla_id);
set stu_id = stu_id + 1;
end while;
end
/
delimiter ;

call stu_inserts(2000);

set @ss = 'abcdefghijklmnopqrstuvwxyz';
select length(@ss);
select substring(@ss, 28, 1);

© 著作权归作者所有

Izecson

Izecson

粉丝 8
博文 68
码字总数 135216
作品 0
程序员
私信 提问
加载中
请先登录后再评论。
MySQL自定义函数与存储过程

1、前置条件 MySQL数据库中存在表user_info,其结构和数据如下: 2、自定义函数 函数:可以完成特定功能的一段SQL集合。MySQL支持自定义函数来完成特定的业务功能。创建自定义函数(User De...

osc_xgk2otgu
04/16
3
0
MySQL(7)---存储过程

<center>Mysql(7)---存储过程</center> 存储过程接下来会有三篇相关博客 第一篇存储过程常用语法。 第二篇存储过程中的游标。 第三篇单独讲一个实际开发过程中复杂的真实的案例。 ##<font ...

osc_8vgjpfw9
2019/05/05
3
0
MySQL ---存储过程和触发器

MySQL存储过程和触发器 存储过程 一、一个简单的存储过程 1,一个简单的存储过程 delimiter $$create procedure testa()beginSelect * from emp;Select * from dept;End;$$;delimiter ;-- 调用...

osc_j173qep8
2019/08/03
2
0
spring中的JdbcTemplate简单记录

JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句; update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate...

刘谱_smile
2015/07/15
171
0
Spring JdbcTemplate方法详解

qldbFunctionSql); String createHsqldbProcedureSql = "CREATE PROCEDURE PROCEDURE_TEST" + "(INOUT inOutName VARCHAR(100), OUT outId INT) " + "MODIFIES SQL DATA " + "BEGIN ATOMIC "......

The-Start
2013/12/18
144
0

没有更多内容

加载失败,请刷新页面

加载更多

idea 启动命令行的时候提示不能创建PTY

问题描述: 昨天上午,凯哥还在好好的使用idea,中午的时候,360扫描,好像要升级还是要干嘛的,没细看,然后凯哥就点击确定。结果到下午使用idea的Terminal 命令行的时候提示,如下图错误: ...

中凯_凯哥java
27分钟前
9
0
常用计数技巧和方法(理论篇)

常用计数技巧和方法(理论篇) 文章较长且大量使用 \(\LaTeX\) 导致渲染较慢,因此分为两个部分 由于组合方面的知识非常的繁细,容易忘记,使用时不够熟练,这里总结一下 以下内容有所借鉴百...

osc_tq5hz9vv
28分钟前
11
0
WinForm 工作流设计 1

从事软件行业那么多年,一直很少写博。很多技术,长时间不用都慢慢淡忘。 把自己学到的用笔记下来,可以巩固和发现不足,也可以把自己对技术的一些 理解,分享出来供大家批评指正。 废话不多...

osc_4p2c0ecc
29分钟前
15
0
vnc中文版客户端,vnc中文版客户端下载,使用教程。

vnc客户端简介 iis7远程桌面管理软件,是一款绿色小巧,功能实用的vnc客户端软件,其界面简洁,操作方便,可以同时远程查看多台主机,并且支持多台服务器间的来回切换,支持分屏,群控操作。...

知殴粥
30分钟前
7
0
K-Means聚类算法原理

    K-Means算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛。K-Means算法有大量的变体,本文就从最传统的K-Means算法讲起,在其基础上讲述K-Means的优化变...

osc_u20gxst6
31分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部