文档章节

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

Izecson
 Izecson
发布于 2016/07/15 15:53
字数 327
阅读 10
收藏 0
点赞 0
评论 0
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

粉丝 5
博文 63
码字总数 128528
作品 0
程序员
MySQL之函数、存储过程和触发器

MySQL中函数、存储过程和触发器现在用得不多了,做了解就可以,因为现在数据库性能是很多系统的瓶颈了,这些操作都可以在数据库外由专业的编程语言如java等来完成,以减轻数据库负担,数据库...

化澄风
06/30
0
0
spring中的JdbcTemplate简单记录

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

刘谱_smile
2015/07/15
0
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
0
0
mysql存储过程 in out inout

存储过程的好处 存储过程是一组预编译好的sql语句,用来执行某个特定的功能。这样可以省去sql解析、编译、优化的过程,提高了执行效率,同时,在调用的时候只传一个存储过程的名称,而不用传...

梧桐深院
06/22
0
0
【原创】MySQL 5.7 SYS系统SCHEMA

在说明系统数据库之前,先来看下MySQL在数据字典方面的演变历史: MySQL4.1 提供了information_schema 数据字典。从此可以很简单的用SQL语句来检索需要的系统元数据了。 MySQL5.5 提供了per...

david_yeung
2015/11/25
0
0
Spring JdbcTemplate方法详解

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

zqcju
2014/06/13
0
6
对JDBC的支持 之 7.2 JDBC模板类

JDBC模板类 概述 Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式。 JdbcTemplate类通过模...

heroShane
2014/02/27
0
0
Oracle自定义函数与存储过程

一、Oracle自定义函数 1、语法 2、示例1 3、示例2 4、示例3 二、Oracle存储过程 1、语法 2、示例 三、自定义函数与存储过程 1、函数和存储过程的优点 2、函数和存储过程的区别 3、适用场合 ...

HarleyZhuge
2017/11/22
5
0
MySQL 存储过程 自定义函数

一. 定义 存储过程 Procedure 是一组为了完成特定功能的 SQL 语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。存储过程中可以包含逻辑控制语句和数据操纵语...

千里明月
06/10
0
0
九、MySQL存储过程和函数

存储过程就是一条或者多条SQL语句的集合,可视为批文件,但是其作用不仅限于批处理。 9.1、创建存储过程和函数 存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别是...

运维菜鸟丶
2017/08/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
5
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
1
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
165
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部