天天看點

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

<code>#開山函數 hello world</code>

<code>delimiter $$</code>

<code>create</code> <code>function</code> <code>test() </code><code>returns</code> <code>varchar</code><code>(20)</code>

<code>begin</code>

<code>return</code> <code>'hello world!'</code><code>;</code>

<code>end</code>

<code>$$</code>

<code>delimiter ;</code>

<code>#小測試</code>

<code>create</code> <code>function</code> <code>func1() </code><code>returns</code> <code>varchar</code><code>(20)</code>

<code>if </code><code>hour</code><code>(now())&gt;=18 </code><code>then</code>

<code>return</code> <code>'late'</code><code>;</code>

<code>else</code>

<code>return</code> <code>'zao'</code><code>;</code>

<code>end</code> <code>if;</code>

<code>#全局變量</code>

<code>create</code> <code>function</code> <code>func2() </code><code>returns</code> <code>int</code>

<code>set</code> <code>@i = 1;</code>

<code>set</code> <code>@</code><code>sum</code> <code>= 0;</code>

<code>while @i&lt;=10 do</code>

<code>set</code> <code>@</code><code>sum</code> <code>= @</code><code>sum</code> <code>+ @i;</code>

<code>set</code> <code>@i = @i + 1;</code>

<code>end</code> <code>while;</code>

<code>return</code> <code>@</code><code>sum</code><code>;</code>

<code>create</code> <code>function</code> <code>func3() </code><code>returns</code> <code>int</code>

<code>w:while @i&lt;=10 do</code>

<code>if @i = 5 </code><code>then</code>

<code>leave w;</code>

<code>end</code> <code>while w;</code>

<code>create</code> <code>function</code> <code>func6() </code><code>returns</code> <code>int</code>

<code>set</code> <code>@i = 0;</code>

<code>w:while @i&lt;10 do</code>

<code>iterate w;</code>

<code>#參數方式,局部變量</code>

<code>create</code> <code>function</code> <code>hello(</code><code>name</code> <code>varchar</code><code>(10)) </code><code>returns</code> <code>varchar</code><code>(20)</code>

<code>return</code> <code>concat(</code><code>'hello'</code><code>,</code><code>name</code><code>);</code>

<code>#定義局部變量,注意mysql的跳出是需要指定循環的。</code>

<code>create</code> <code>function</code> <code>func8() </code><code>returns</code> <code>int</code>

<code>declare</code> <code>i </code><code>int</code> <code>default</code> <code>0;</code>

<code>declare</code> <code>total </code><code>int</code> <code>default</code> <code>0;</code>

<code>w:while i&lt;10 do</code>

<code>set</code> <code>i = i + 1;</code>

<code>if i = 5 </code><code>then</code>

<code>set</code> <code>total = total + i;</code>

<code>return</code> <code>total;</code>

<code>#以下寫一個存儲過程,生成一張任意條記錄的表。</code>

<code>#生成随機字元串</code>

<code>create</code> <code>function</code> <code>rand_string(n </code><code>int</code><code>) </code><code>returns</code> <code>varchar</code><code>(255)</code>

<code>declare</code> <code>chars_str </code><code>varchar</code><code>(100) </code><code>default</code> <code>'abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'</code><code>;</code>

<code>declare</code> <code>return_str </code><code>varchar</code><code>(255) </code><code>default</code> <code>''</code><code>;</code>

<code>while i&lt;n do</code>

<code>set</code> <code>return_str = concat(return_str,</code><code>substring</code><code>(chars_str,floor(1+rand()*52),1));</code>

<code>return</code> <code>return_str;</code>

<code>#生成随機數字</code>

<code>create</code> <code>function</code> <code>rand_num() </code><code>returns</code> <code>int</code><code>(5)</code>

<code>set</code> <code>i = floor(10+rand()*500);</code>

<code>return</code> <code>i;</code>

<code>#定義存儲過程</code>

<code>create</code> <code>procedure</code> <code>insert_emp(start </code><code>int</code><code>(10),max_num </code><code>int</code><code>(10))</code>

<code>set</code> <code>autocommit = 0;</code>

<code>repeat</code>

<code>set</code> <code>i = i+1;</code>

<code>insert</code> <code>into</code> <code>emp </code><code>values</code><code>((start+i),rand_string(6),</code><code>'SALESMAN'</code><code>,0001,2000,400,rand_num(),curdate());</code>

<code>until i = max_num</code>

<code>end</code> <code>repeat;</code>

本文轉自shayang8851CTO部落格,原文連結:http://blog.51cto.com/janephp/1288070,如需轉載請自行聯系原作者

繼續閱讀