mysql编程的入门案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#开山函数 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  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  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  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  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





















本文转自shayang8851CTO博客,原文链接:http://blog.51cto.com/janephp/1288070,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值