lyt经典版MySQL基础——函数
生活随笔
收集整理的這篇文章主要介紹了
lyt经典版MySQL基础——函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 #函數
2 /*
3 函數:類似于java中的方法
4 好處:
5 1、提高代碼的重用性
6 2、簡化操作
7
8 含義:一組預先編譯好的SQL語句的集合,理解成批處理語句
9 1、提高代碼的重用性
10 2、簡化操作
11 3、減少了編譯次數并且減少了和數據庫服務器的連接次數,提高了效率
12
13 區別:
14 存儲過程:可以有0個返回,也可以有多個返回,適合做批量插入、批量更新
15 函數:有且僅有1個返回,適合做處理數據后返回一個結果
16 */
17
18 #一、創建語法
19 CREATE FUNCTION 函數名(參數列表) RETURNS 返回類型
20 BEGIN
21 函數體
22 END
23 /*
24 注意:
25 1.參數列表 包含兩部分:
26 參數名 參數類型
27
28 2.函數體:肯定會有return語句,如果沒有會報錯
29 如果return語句沒有放在函數體的最后也不報錯,但不建議
30
31 return 值;
32
33 3.函數體中僅有一句話,則可以省略begin end
34 4.使用delimiter語句設置結束標記
35 */
36
37 #二、調用語法
38 SELECT 函數名(參數列表)
39
40 #---------------------案例演示------------------------
41 #1.無參有返回
42 #案例:返回公司的員工個數
43 DELIMITER $
44 CREATE FUNCTION myf1() RETURNS INT
45 BEGIN
46 DECLARE c INT DEFAULT 0; #定義局部變量
47 SELECT COUNT(*) INTO c #賦值
48 FROM employees;
49 RETURN c;
50 END $
51
52 SELECT myf1()$
53
54 #2.有參有返回
55 #案例1:根據員工名,返回他的工資
56 DELIMITER $
57 CREATE FUNCTION myf2(empName VARCHAR(20)) RETURNS DOUBLE
58 BEGIN
59 SET @sal=0; #定義用戶變量
60 SELECT salary INTO @sal #賦值
61 FROM employees
62 WHERE last_name=empName;
63 RETURN @sal;
64 END $
65
66 SELECT myf2('kochhar') $
67
68 #案例2:根據部門名,返回該部門的平均工資
69 DELIMITER $
70 CREATE FUNCTION myf3(deptName VARCHAR(20)) RETURNS DOUBLE
71 BEGIN
72 DECLARE sal DOUBLE;
73 SELECT AVG(salary) INTO sal
74 FROM employees e JOIN departments d ON e.department_id=d.department_id
75 WHERE department_name=deptName;
76 RETURN sal;
77 END $
78
79 SELECT myf3('IT')$
80
81 #三、查看函數
82 SHOW CREATE FUNCTION myf3;
83
84 #四、刪除函數
85 DROP FUNCTION myf3;
86
87 #案例
88 #1、創建函數,實現傳入兩個float,返回二者之和
89 DELIMITER $
90 CREATE FUNCTION myef1(a FLOAT,b FLOAT) RETURNS FLOAT
91 BEGIN
92 DECLARE c FLOAT DEFAULT 0;
93 SET c=a+b;
94 RETURN c;
95 END $
96
97 SELECT myef1(1.1,1.2)$
98 #2、創建函數,實現傳入工種名,返回該工種的員工人數
99 DELIMITER $
100 CREATE FUNCTION myef2(jobName VARCHAR(20)) RETURNS INT
101 BEGIN
102 DECLARE c INT DEFAULT 0;
103 SELECT COUNT(*) INTO c
104 FROM employees e JOIN jobs j ON e.job_id=j.job_id
105 WHERE job_title=jobName;
106 RETURN c;
107 END $
108
109 SELECT myef2('Programmer')$
110 #3、創建函數,實現傳入員工名,返回該員工的領導名
111 DELIMITER $
112 CREATE FUNCTION myef3(empName VARCHAR(30)) RETURNS VARCHAR
113 BEGIN
114 SET @mname='abc';
115 SELECT m.last_name INTO @mname
116 FROM employees m JOIN employees e
117 ON e.manager_id=m.employee_id
118 WHERE e.last_name=empName;
119 RETURN @mname;
120 END $
121
122 SELECT myef3('K_ing')$
每天進步一點點,快樂生活多一點。
總結
以上是生活随笔為你收集整理的lyt经典版MySQL基础——函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrcpy使用入门
- 下一篇: 关于python程序设计流程(未完结)