且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

mysql编程的入门案例

更新时间:2022-09-15 20:25:17

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 intreturns 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,如需转载请自行联系原作者