第十六章 变量,流程控制与游标课后练习
准备工作:创建emloyees表和department as select atguigudb中的两个表
创建函数get_count(),返回公司的员工个数
有参有返回
创建函数ename_salary(),根据员工姓名,返回它的工资
创建函数dept_sal() ,根据部门名,返回该部门的平均工资
创建函数add_float(),实现传入两个float,返回二者之和
准备工作
1. 创建函数get_count(),返回公司的员工个数
DELIMITER //
CREATE FUNCTION get_count() RETURNS INT
BEGIN
RETURN (SELECT COUNT(*) FROM employees);
END //
DELIMITER ;
调用
SELECT get_count();
有参有返回
7. 创建函数ename_salary(),根据员工姓名,返回它的工资
DELIMITER //
CREATE FUNCTION ename_salary(emp_name VARCHAR(20)) RETURNS DOUBLE
BEGIN
RETURN (
SELECT salary
FROM employees
WHERE last_name = emp_name
);
END //
DELIMITER ;
调用
SELECT ename_salary(‘Abel’);
8. 创建函数dept_sal() ,根据部门名,返回该部门的平均工资
DELIMITER //
CREATE FUNCTION dept_sal(dept_name VARCHAR(20)) 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’);
9. 创建函数add_float(),实现传入两个float,返回二者之和
DELIMITER //
CREATE FUNCTION add_float(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
BEGIN
RETURN (SELECT num1 + num2 );
END //
DELIMITER ;
调用
SET @num1 := 1.2,@num2 = 3.2;
SELECT add_float(@num1,@num2)
查看触发器方法
SELECT * FROM test_trigger_log;