第15章_存储函数

芳华梦落 2022-10-21 59 10/21

#存储函数练习

#0. 准备工作
USE test15_pro_func;
CREATE TABLE employees
AS
SELECT * FROM atguigudb.`employees`;
CREATE TABLE departments
AS
SELECT * FROM atguigudb.`departments`;

#无参有返回
#1. 创建函数get_count(),返回公司的员工个数

SET GLOBAL log_bin_trust_function_creators = 1;
DELIMITER //
CREATE FUNCTION get_count() RETURNS INT
BEGIN
RETURN (SELECT COUNT(*) FROM employees);
END //
DELIMITER ;
#调用
SELECT get_count();

#有参有返回
#2. 创建函数ename_salary(),根据员工姓名,返回它的工资

DELIMITER //
CREATE FUNCTION ename_salary(emp_name VARCHAR(25)) RETURNS DOUBLE
BEGIN
RETURN (SELECT salary FROM employees WHERE last_name=emp_name);
END //
DELIMITER ;
#调用
SELECT ename_salary('Abel');

#3. 创建函数dept_sal() ,根据部门名,返回该部门的平均工资

DELIMITER //
CREATE FUNCTION dept_sal(dept_name VARCHAR(30)) RETURNS DOUBLE
BEGIN
RETURN(SELECT AVG(salary)
FROM employees e JOIN departments d
ON e.department_id=d.department_id
WHERE d.department_name=dept_name
);
END //
DELIMITER ;
#调用
SELECT dept_sal('Marketing');

#4. 创建函数add_float(),实现传入两个float,返回二者之和

DELIMITER //
CREATE FUNCTION add_float(float1 FLOAT,float2 FLOAT) RETURNS FLOAT
BEGIN
RETURN(SELECT float1+float2);
END //
DELIMITER ;
#调用
SELECT add_float(10,20);
- THE END -

芳华梦落

10月21日17:20

最后修改:2022年10月21日
0

非特殊说明,本博所有文章均为博主原创。