存款和储蓄进度与存款和储蓄函数

在MySQL中,使用While语句循环与SQL Server中有所不相同,代码测试通过。

先是节:存款和储蓄进程和函数的引进

MSSQL中应用while语句循环生成多少的办法:

积攒进度和函数是在数据库中定义一些SQL
语句的集合,然后径直调用这几个囤积进度和函数来施行已经定义好
的SQL 语句。存款和储蓄进程和函数可避防止开采职员重复的编写制定一样的SQL
语句。而且,存款和储蓄进程和函数是在MySQL
服务器中积累和实施的,能够减去客户端和劳动器端的数量传输;

演示代码:

 

复制代码 代码如下:


declare @a int
set @a = 1
while @a<25
begin
INSERT INTO demotable (id,item1,item2) VALUES (@a,”abc”,”123″)
set @a = @a + 1
end

 

MySQL中,使用while循环管理多少格局:须要新建为存款和储蓄进程,直接调用实践存款和储蓄进度。

其次节:制造存款和储蓄进度和函数

示范代码:

二.1 创造存储进度

复制代码 代码如下:

CREATE PROCEDURE sp_name([proc_parameter[,…]])
[characteristic…] routine_body
sp_name 参数是积存进度的称号;
proc_parameter 代表存款和储蓄进度的参数列表;
characteristic 参数钦赐期存款款和储蓄进程的个性;
routine_body 参数是SQL 代码的源委,能够用BEGIN…END 来注明SQL
代码的发轫和甘休。
proc_parameter 中的每一个参数由三 部分构成。那3部分各自是输入输出类型、参数名称和参数类型。
[ IN | OUT | INOUT ] param_name type
当中,IN 表示输入参数;OUT 表示输出参数;INOUT
表示既能够是输入,也得以是出口;param_name 参数是
积累进程的参数名称;type 参数钦点期存款款和储蓄进度的参数类型,该品种能够是MySQL
数据库的自由数据类型;
Characteristic 参数有四个取值。其取值表明如下:
LANGUAGE SQL:说明routine_body 部分是由SQL
语言的口舌组成,那也是数据库系统暗中同意的言语。
[ NOT ] DETE途睿欧MINISTIC
:指明存款和储蓄过程的实施结果是还是不是是显著的。DETELacrosseMINISTIC
代表结果是明确的。每
次实行存款和储蓄进度时,一样的输入会获得平等的输出。NOT DETEPRADOMINISTIC
表示结果是非明确的,同样的输入
或然获得不一致的输出。暗许情状下,结果是非鲜明的。
{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
:指明子程序行使SQL 语句的限量;
CONTAINS SQL 表示子程序包涵SQL 语句,但不含有读或写多少的口舌;NO SQL
表示子程序中不分包SQL
话语;READS SQL DATA 表示子程序中含有读数据的话语;MODIFIES SQL DATA
表示子程序中蕴藏写多少的
讲话。默认处境下,系统会钦点为CONTAINS SQL;
SQL SECU奔驰G级ITY { DEFINEWrangler | INVOKE卡宴 };指明什么人有权力来实施。DEFINEHaval表示除非定义者自个儿能力够施行;
INVOKEHaval 代表调用者能够实行。私下认可处境下,系统钦定的权杖是DEFINE中华V。
COMMENT ‘string’ :注释音讯;

CREATE DEFINER=`root`@`localhost` PROCEDURE `NewProcedure`()
BEGIN
DECLARE i INT;
SET i=1;
WHILE i<100 DO
INSERT INTO demotable (id,item1,item贰) VALUES (i,”测试试题”,”0″);
SET i = i + 1;
END WHILE;
END;

 

您只怕感兴趣的篇章:

  • for语句中的二种分隔符方式计算
  • SQL
    Server调控语句的主干使用
  • Oracle查看逻辑读、物理读财富占用排名的SQL语句
  • 详解Oracle数据库各种调控语句的应用

DELIMITER &&
CREATE PROCEDURE pro_book ( IN bT INT,OUT count_num INT)
   READS SQL DATA
   BEGIN
     SELECT COUNT(*) FROM t_book WHERE bookTypeId=bT;
   END
   &&
DELIMITER ;

CALL pro_book(1,@total);

 

二.二 创立存款和储蓄函数

CREATE FUNCTION sp_name ( [func_parameter[,…]] )
RETURNS type
[ characteristic… ] routine_body
sp_name 参数是积累函数的称呼;func_parameter
表示存款和储蓄函数的参数列表;RETU凯雷德NS type 钦定再次来到值的
项目;characteristic
参数钦赐期存款款和储蓄进程的特色,该参数的取值与仓库储存进度中的取值是一致的;routine_body
参数
是SQL 代码的开始和结果,能够用BEGIN…END 来评释SQL 代码的先导和竣事;
func_parameter
能够由三个参数组成,在那之中各类参数由参数名称和参数类型组成,其格局如下:
param_name type 其中,param_name 参数是积存函数的参数名称;type
参数钦定期存款款和储蓄函数的参数类型,
该品种能够是MySQL 数据库的轻松数据类型;

DELIMITER &&
CREATE FUNCTION func_book (bookId INT)
 RETURNS VARCHAR(20)
 BEGIN
  RETURN ( SELECT bookName FROM t_book WHERE id=bookId );
 END
    &&
DELIMITER ;
SELECT func_book(2);

 

贰.3 变量的行使

一,定义变量

DECLARE var_name [,…] type [ DEFAULT value ]

如:

DELIMITER &&
CREATE PROCEDURE pro_user()
    BEGIN
     DECLARE a,b VARCHAR(20) ;
     INSERT INTO t_user VALUES(NULL,a,b);
    END
&&
DELIMITER ;

二,为变量赋值

SET var_name = expr [,var_name=expr] …

如:

DELIMITER &&
CREATE PROCEDURE pro_user2()
    BEGIN
     DECLARE a,b VARCHAR(20) ;
     SET a=’java1234′,b=’123456′;
     INSERT INTO t_user VALUES(NULL,a,b);
    END
&&
DELIMITER ;

SELECT col_name[,…] INTO var_name[,…] FROM table_name WHERE
condition

如:

DELIMITER &&
CREATE PROCEDURE pro_user3()
    BEGIN
     DECLARE a,b VARCHAR(20) ;
     SELECT userName2,password2 INTO a,b FROM t_user2 WHERE id2=1;
     INSERT INTO t_user VALUES(NULL,a,b);
    END
&&
DELIMITER ;

二.四 游标的选择

查询语句恐怕查询出多条记下,在蕴藏进度和函数中选取游标来所有人家读取查询结果集中的记录。游标的使
用席卷申明游标、打开游标、使用游标和停业游标。游标必须证明在管理程序在此以前,并且证明在变量和条
件之后。

一,证明游标

DECLARE cursor_name CURSOR FOR select_statement ;

二,展开游标

OPEN cursor_name;

三,使用游标

FETCH cursor_name INTO var_name [,var_name … ];

四,关闭游标

CLOSE cursor_name;

如:

DELIMITER &&
CREATE PROCEDURE pro_user4()
    BEGIN
     DECLARE a,b VARCHAR(20) ;
     DECLARE cur_t_user2 CURSOR FOR SELECT userName2,password2 FROM
t_user2;
     OPEN cur_t_user2;
     FETCH cur_t_user2 INTO a,b;
     INSERT INTO t_user VALUES(NULL,a,b);
     CLOSE cur_t_user2;
    END
&&
DELIMITER ;

二.五 流程序调节制的行使

储存进度和函数中得以应用流程序调整制来调整语句的进行。MySQL 中得以接纳IF
语句、CASE 语句、LOOP
言辞、LEAVE 语句、ITERATE 语句、REPEAT 语句和WHILE 语句来开始展览流程序调整制。

1,IF 语句

IF search_condition THEN statement_list
[ ELSEIF search_condition THEN statement_list ]…
[ ELSE statement_list ]
END IF

如:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图