您的位置:首页 > 数据库 > MySQL

mysql编程的入门案例

2013-09-03 22:59 302 查看
#开山函数 hello world
delimiter $$
create function test() returns varchar(20)
begin
return 'hello world!';
end
$$
delimiter ;
#小测试
delimiter $$
create function func1() returns varchar(20)
begin
if hour(now())>=18 then
return 'late';
else
return 'zao';
end if;
end
$$
delimiter ;
#全局变量
delimiter $$
create function func2() returns int
begin
set @i = 1;
set @sum = 0;
while @i<=10 do
set @sum = @sum + @i;
set @i = @i + 1;
end while;
return @sum;
end
$$
delimiter ;
delimiter $$
create function func3() returns int
begin
set @i = 1;
set @sum = 0;
w:while @i<=10 do
if @i = 5 then
leave w;
end if;
set @sum = @sum + @i;
set @i = @i + 1;
end while w;
return @sum;
end
$$
delimiter ;
delimiter $$
create function func6() returns int
begin
set @i = 0;
set @sum = 0;
w:while @i<10 do
set @i = @i + 1;
if @i = 5 then
iterate w;
end if;
set @sum = @sum + @i;
end while w;
return @sum;
end
$$
delimiter ;
#参数方式,局部变量
delimiter $$
create function hello(name varchar(10)) returns varchar(20)
begin
return concat('hello',name);
end
$$
delimiter ;
#定义局部变量,注意mysql的跳出是需要指定循环的。
delimiter $$
create function func8() returns int
begin
declare i int default 0;
declare total int default 0;
w:while i<10 do
set i = i + 1;
if i = 5 then
iterate w;
end if;
set total = total + i;
end while w;
return total;
end
$$
delimiter ;
#以下写一个存储过程,生成一张任意条记录的表。
#生成随机字符串
delimiter $$
create function rand_string(n int) returns varchar(255)
begin
declare chars_str varchar(100) default 'abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
declare return_str varchar(255) default '';
declare i int default 0;
while i<n do
set return_str = concat(return_str,substring(chars_str,floor(1+rand()*52),1));
set i = i + 1;
end while;
return return_str;
end
delimiter ;
#生成随机数字
delimiter $$
create function rand_num() returns int(5)
begin
declare i int default 0;
set i = floor(10+rand()*500);
return i;
end
$$
delimiter ;
#定义存储过程
delimiter $$
create procedure insert_emp(start int(10),max_num int(10))
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i+1;
insert into emp values((start+i),rand_string(6),'SALESMAN',0001,2000,400,rand_num(),curdate());
until i = max_num
end repeat;
end
$$

本文出自 “phper-每天一点点~” 博客,请务必保留此出处http://janephp.blog.51cto.com/4439680/1288070
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: