MySQL之视图,存储

 

1.
CREATE VIEW v_emp_dept_id_1 AS
SELECT e.emp_name, e.address
FROM emp e
JOIN dept d ON e.dept_id = d.dept_id
WHERE e.dept_id = 1;

2.
CREATE VIEW v_emp_dept AS
SELECT e.emp_name, e.address, d.dept_name
FROM emp  e 
JOIN dept d ON e.dept_id = d.dept_id
WHERE e.dept_id = 1;

3.
CREATE VIEW v_dept_emp_count AS
SELECT d.dept_name, COUNT(e.emp_id) AS emp_count, AVG(e.salary) AS avg_salary
FROM dept d
LEFT JOIN emp e ON d.dept_id = e.dept_id
GROUP BY d.dept_id;

4.
ALTER VIEW v_emp_dept AS 
SELECT e.emp_name, e.address,d.dept_name,e.salary
FROM emp e  
JOIN dept d ON e.dept_id = d.dept_id
WHERE e.dept_id = 1;

 

5.
SHOW TABLES LIKE 'v_emp_dept_id_1';
SHOW TABLES LIKE 'v_emp_dept';
SHOW TABLES LIKE 'v_dept_emp_count';

6.
SHOW CREATE VIEW v_emp_dept_id_1;
SHOW CREATE VIEW v_emp_dept;
SHOW CREATE VIEW v_dept_emp_count;

7.
DROP VIEW IF EXISTS v_emp_dept_id_1;
DROP VIEW IF EXISTS v_emp_dept;
DROP VIEW IF EXISTS v_dept_emp_count;

DELIMITER //
CREATE PROCEDURE s1()
BEGIN
  SELECT SUM(salary) as total_salary FROM emp;
END; //
DELIMITER ;

CALL s1();
DELIMITER //
CREATE PROCEDURE s2(IN emp_name_param VARCHAR(255))
BEGIN
  SELECT address FROM emp WHERE emp_name = emp_name_param;
END; //
DELIMITER ;

CALL s2('张晓红');
DELIMITER //
CREATE PROCEDURE avg_sai(IN dept_id_param INT, IN gender_param CHAR(1), OUT avg_salary_param DECIMAL(10, 2))
BEGIN
  SELECT AVG(salary) INTO avg_salary_param FROM your_employee_table
  WHERE dept_id = dept_id_param AND gender = gender_param;
END; //
DELIMITER ;

DECLARE @avg_salary DECIMAL(10, 2);
CALL avg_sai(1, '男', @avg_salary);
SELECT @avg_salary;
DROP PROCEDURE IF EXISTS s1;
DROP PROCEDURE IF EXISTS s2;
DROP PROCEDURE IF EXISTS avg_sai;

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 14:10:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 14:10:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 14:10:02       58 阅读
  4. Python语言-面向对象

    2024-07-12 14:10:02       69 阅读

热门阅读

  1. 推荐系统名词解释

    2024-07-12 14:10:02       25 阅读
  2. 顺序表的应用之通讯录专题

    2024-07-12 14:10:02       21 阅读
  3. 自动驾驶决策和控制系统的研究

    2024-07-12 14:10:02       24 阅读
  4. 【史上最全面ESP32教程】http通信

    2024-07-12 14:10:02       21 阅读
  5. C++ STL常用容器之vector(顺序容器)

    2024-07-12 14:10:02       21 阅读
  6. SQL注入:时间盲注

    2024-07-12 14:10:02       24 阅读
  7. Mybatis插件:IDEA中MyBatisCodeHelperPro插件下载安装

    2024-07-12 14:10:02       17 阅读
  8. spark中的floor函数

    2024-07-12 14:10:02       21 阅读